| *Does this version...?* | |
|:--------------------------------------------------------------- |:-------:|
-| Fix security vulnerabilities? | |
-| Change the database schema? | |
-| Alter the API? | |
-| Require attention to configuration options? | |
-| Fix problems installing or upgrading to a previous version? | |
-| Introduce features? | |
-| Fix bugs? | |
+| Fix security vulnerabilities? | no |
+| **Change the database schema?** | **yes** |
+| **Alter the API?** | **yes** |
+| Require attention to configuration options? | no |
+| **Fix problems installing or upgrading to a previous version?** | **yes** |
+| **Introduce features?** | **yes** |
+| **Fix bugs?** | **yes** |
## <a name="features"></a>Features
-## <a name="bugs"></a>Bugs resolved
+### CiviCRM Core
-### Core CiviCRM
+- **Feature Request: Ability to enable SSL for database connection. (Work
+ Towards [dev/core#1137](https://lab.civicrm.org/dev/core/-/issues/1137):
+ [298](https://github.com/civicrm/civicrm-packages/pull/298))**
-- **[NFC] Update flexmailer to be PHP7.4 compatible ([17779](https://github.com/civicrm/civicrm-core/pull/17779))**
+ Makes ssl database connections without client certificates work in php7.
-- **dev/core#1860 Fix installing on PHP7.3 Ubuntu 20.04 and MariaDB 10.3 ([17772](https://github.com/civicrm/civicrm-core/pull/17772))**
+- **Investigate php currency library
+ ([dev/translation#48](https://lab.civicrm.org/dev/translation/-/issues/48):
+ [17608](https://github.com/civicrm/civicrm-core/pull/17608))**
-- **Ensure that when normal routing trackable urls and opens in Joomla go… ([17760](https://github.com/civicrm/civicrm-core/pull/17760))**
+ Implements the PHP library [brick/money](https://github.com/brick/money) to
+ better handle currency amounts.
-- **[NFC] Include flexmailer in distmaker ([17768](https://github.com/civicrm/civicrm-core/pull/17768))**
+- **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
+ (Work Towards [dev/core#560](https://lab.civicrm.org/dev/core/-/issues/560):
+ [17555](https://github.com/civicrm/civicrm-core/pull/17555),
+ [295](https://github.com/civicrm/civicrm-packages/pull/295),
+ [602](https://github.com/civicrm/civicrm-drupal/pull/602),
+ [17550](https://github.com/civicrm/civicrm-core/pull/17550),
+ [17534](https://github.com/civicrm/civicrm-core/pull/17534),
+ [17541](https://github.com/civicrm/civicrm-core/pull/17541),
+ [17545](https://github.com/civicrm/civicrm-core/pull/17545) and
+ [17539](https://github.com/civicrm/civicrm-core/pull/17539))**
-- **Pre-upgrade message for php-intl shows twice ([17748](https://github.com/civicrm/civicrm-core/pull/17748))**
+ Work towards throwing exceptions instead of fatal errors.
-- **Set locales for all domains when enabling multilingual ([17733](https://github.com/civicrm/civicrm-core/pull/17733))**
+- **End of life planning for MySQL server 5.0 - 5.6 (Work Towards
+ [dev/core#1681](https://lab.civicrm.org/dev/core/-/issues/1681):
+ [17558](https://github.com/civicrm/civicrm-core/pull/17558))**
-- **Add permission metadata to contact is_deleted field ([17721](https://github.com/civicrm/civicrm-core/pull/17721))**
+ Block sites from upgrading if on a MySQL version less than 5.6.5.
-- **dev/core#1852 Ensure all domains have the same value for locales ([17738](https://github.com/civicrm/civicrm-core/pull/17738))**
+- **Create new customPre hook
+ ([dev/core#1716](https://lab.civicrm.org/dev/core/-/issues/1716):
+ [17144](https://github.com/civicrm/civicrm-core/pull/17144))**
-- **[NFC] Fix some outdated wiki links ([17739](https://github.com/civicrm/civicrm-core/pull/17739))**
+ Creates a new hook customPre which makes it so one can impact or observe
+ custom data before it is saved.
-- **Fix saving of State/Province Multi-select values ([17737](https://github.com/civicrm/civicrm-core/pull/17737))**
+ - **V4 activity api has no default for activity_date_time
+ ([dev/core#1782](https://lab.civicrm.org/dev/core/-/issues/1782):
+ [17450](https://github.com/civicrm/civicrm-core/pull/17450))**
-- **5.27 ([17736](https://github.com/civicrm/civicrm-core/pull/17736))**
+ Sets the default for `activity_date_time` and `created_date` as the current
+ date when using the APIv4 Activity.
-- **API/DAO Metadata - Retain versioning metadata for possible usage in runtime+tooling ([17735](https://github.com/civicrm/civicrm-core/pull/17735))**
+ - **Update guzzle to d8 latest
+ ([dev/core#1803](https://lab.civicrm.org/dev/core/-/issues/1803):
+ [17551](https://github.com/civicrm/civicrm-core/pull/17551))**
-- **5.27 ([17732](https://github.com/civicrm/civicrm-core/pull/17732))**
+ This updates guzzle to version 6.5.4, civicrm/civicrm-cxn-rpc to "version"
+ "v0.19.01.00", guzzlehttp/psr7 to version 1.6.1 and psr/log to version 1.1.3
-- **[REF] Ship Flexmailer extension with Core ([17669](https://github.com/civicrm/civicrm-core/pull/17669))**
+ - **APIv4 - Improve row_count to work with HAVING, GROUP BY, and SELECT
+ ([17704](https://github.com/civicrm/civicrm-core/pull/17704))**
-- **[NFC] Fix contributor key for Lighthouse Consulting and Design ([17727](https://github.com/civicrm/civicrm-core/pull/17727))**
+ This changes the meaning of $result->count(), to give a total count of
+ filtered items, ignoring limit and offset.
-- **Remove obsolete function formatWikiURL ([17726](https://github.com/civicrm/civicrm-core/pull/17726))**
+ - **APIv4 - Add more SQL functions
+ ([17692](https://github.com/civicrm/civicrm-core/pull/17692))**
-- **dev/wordpress#61 - Financial Account by Relationship lookup is incorrectly using label not name ([17701](https://github.com/civicrm/civicrm-core/pull/17701))**
+ Adds support for additional SQL functions in APIv4. Also categorizes them and
+ adds translated titles for the new Search Builder.
-- **REF Access the method not the property directly to check if a payment processor supports recurring ([17602](https://github.com/civicrm/civicrm-core/pull/17602))**
+- **APIv4 - Add titles and icons to entities
+ ([17527](https://github.com/civicrm/civicrm-core/pull/17527) and
+ [17685](https://github.com/civicrm/civicrm-core/pull/17685))**
-- **5.27 ([17719](https://github.com/civicrm/civicrm-core/pull/17719))**
+ Adds titles and icons to DAO entities and expose them to APIv4 Entity::get and
+ adds meta-metadata.
-- **Connect to database using SET NAMES utf8mb4 ([17716](https://github.com/civicrm/civicrm-core/pull/17716))**
+- **APIv4 Explorer - UI support for join ON clause
+ ([17682](https://github.com/civicrm/civicrm-core/pull/17682))**
-- **Fix CRM_Utils_JS::dedupeClosures to ignore comments ([17717](https://github.com/civicrm/civicrm-core/pull/17717))**
+ Improves the APIv4 explorer to give selectable clauses when adding a JOIN.
-- **NFC cleanup docblocks in CRM_Utils_JS ([17714](https://github.com/civicrm/civicrm-core/pull/17714))**
+- **Add permission metadata to contact is_deleted field
+ ([17721](https://github.com/civicrm/civicrm-core/pull/17721))**
-- **5.27 ([17715](https://github.com/civicrm/civicrm-core/pull/17715))**
+ Improves the contact schema metadata.
-- **5.27 ([17712](https://github.com/civicrm/civicrm-core/pull/17712))**
+- **API/DAO Metadata - Retain versioning metadata for possible usage in
+ runtime+tooling
+ ([17735](https://github.com/civicrm/civicrm-core/pull/17735))**
-- **CRM_Utils_JS - also dedupe 'use strict' directive when deduping closures ([17711](https://github.com/civicrm/civicrm-core/pull/17711))**
+ Adds metadata to indicate when fields are created.
-- **[REF] Cleanup function for retrieving contact types. ([17676](https://github.com/civicrm/civicrm-core/pull/17676))**
+- **Connect to database using SET NAMES utf8mb4
+ ([17716](https://github.com/civicrm/civicrm-core/pull/17716))**
-- **Remove slow join from activity search ([17250](https://github.com/civicrm/civicrm-core/pull/17250))**
+ Makes it so one can use utf8mb4 characters.
-- **dev/core#1844 - Temporary workaround to avoid all PR's failing tests ([17708](https://github.com/civicrm/civicrm-core/pull/17708))**
+- **Remove slow join from activity search
+ ([17250](https://github.com/civicrm/civicrm-core/pull/17250))**
-- **dev/core#1833 Change default value of participant_listing_id to NULL … ([17677](https://github.com/civicrm/civicrm-core/pull/17677))**
+ Improves performance of the activity search.
-- **APIv4 - Improve row_count to work with HAVING, GROUP BY, and SELECT ([17704](https://github.com/civicrm/civicrm-core/pull/17704))**
+- **Add icons to standalone contact tasks
+ ([17667](https://github.com/civicrm/civicrm-core/pull/17667))**
-- **Remove summary row from charts, when rollup used ([17412](https://github.com/civicrm/civicrm-core/pull/17412))**
+ Adds icon data to contact tasks.
-- **Add selfService flag to cancelSubscription getText so we can display different text for each case ([17687](https://github.com/civicrm/civicrm-core/pull/17687))**
+- **Add icons to multi-valued custom groups and display on contact tab
+ ([17531](https://github.com/civicrm/civicrm-core/pull/17531))**
-- **dev/core#1776 Ensure that all fee financial item transaction date is … ([17389](https://github.com/civicrm/civicrm-core/pull/17389))**
+ Adds icons to multi-valued custom groups to improve user experience.
-- **dev/core#890 - Multiple line item shown on view contribution if parti… ([16956](https://github.com/civicrm/civicrm-core/pull/16956))**
+- **Add serialize metadata to domain.locales field
+ ([17651](https://github.com/civicrm/civicrm-core/pull/17651))**
-- **Multi record import screen fix ([17697](https://github.com/civicrm/civicrm-core/pull/17697))**
+ Adds metadata to help APIv4 serialize/unserialize the domain.locales
+ field correctly.
-- **Payment.create should not set contribution date to today ([17688](https://github.com/civicrm/civicrm-core/pull/17688))**
+- **Add smarty error event
+ ([16918](https://github.com/civicrm/civicrm-core/pull/16918) and
+ [292](https://github.com/civicrm/civicrm-packages/pull/292))**
-- **dev/core#1829 - Custom Date field with format=yy displays calendar ic… ([17664](https://github.com/civicrm/civicrm-core/pull/17664))**
+ Improves debugging errors in smarty templates.
-- **[Test framework] dev/wordpress#61 - Fix case-sensitive spelling in unit test ([17689](https://github.com/civicrm/civicrm-core/pull/17689))**
+- **Allow HEAD requests to generate a form key
+ ([17321](https://github.com/civicrm/civicrm-core/pull/17321))**
-- **core#1840 - Can't add/change recipient on non-bulk SMS ([17691](https://github.com/civicrm/civicrm-core/pull/17691))**
+ Avoids generating crashes (500 errors) when bots check links.
-- **Use psr-4 instead of psr-0 in Civi directory ([17690](https://github.com/civicrm/civicrm-core/pull/17690))**
+- **Include a new SqlParallel queue type that enables multiple queue runners to
+ process in parallel
+ ([15422](https://github.com/civicrm/civicrm-core/pull/15422))**
-- **APIv4 - Add more SQL functions ([17692](https://github.com/civicrm/civicrm-core/pull/17692))**
+ Adds a new Sql queue type which will allow multiple runners to fetch the next
+ available job from a queue and run in parallel.
-- **dev/core#1634 - Remove database index on medium_id from civicrm_activity ([17686](https://github.com/civicrm/civicrm-core/pull/17686))**
+- **Allow adding datepicker to metadata based settings pages
+ ([16610](https://github.com/civicrm/civicrm-core/pull/16610))**
-- **APIv4 - add meta-metadata to supplement #17527 ([17685](https://github.com/civicrm/civicrm-core/pull/17685))**
+ Makes it so that datepicker can be added to metadata based settings pages by
+ specifying html_Type='datepicker' in settings metadata.
-- **dev/core#1681 Block sites from upgrading if on a MySQL version less t… ([17558](https://github.com/civicrm/civicrm-core/pull/17558))**
+- **Price Field Form: save the fid for the postProcess hook
+ ([17639](https://github.com/civicrm/civicrm-core/pull/17639))**
-- **Revert "dev/core#1603 remove places where taxAmount is rounded" ([17680](https://github.com/civicrm/civicrm-core/pull/17680))**
+ Improves `postProcess` hook for Price Field Form by making the field id
+ available.
-- **Sort options without relying on unavailable buildOptions param ([17621](https://github.com/civicrm/civicrm-core/pull/17621))**
+### CiviContribute
-- **APIv4 Explorer - UI support for join ON clause ([17682](https://github.com/civicrm/civicrm-core/pull/17682))**
+- **Add payment processor to details on list of recurring contributions
+ ([17179](https://github.com/civicrm/civicrm-core/pull/17179))**
-- **dev/core#1817 - Editing a custom field option value from the custom field admin screen changes the name field ([17681](https://github.com/civicrm/civicrm-core/pull/17681))**
+ Improves the Recurring Contributions UI by adding a column for Payment
+ Processor.
-- **Add icons to standalone contact tasks ([17667](https://github.com/civicrm/civicrm-core/pull/17667))**
+- **Fix all core processors to throw exceptions and not rely on the
+ CRM_Core_Payment to convert errors to exceptions
+ ([dev/financial#131](https://lab.civicrm.org/dev/financial/-/issues/131):
+ [17565](https://github.com/civicrm/civicrm-core/pull/17565),
+ [17559](https://github.com/civicrm/civicrm-core/pull/17559),
+ [17542](https://github.com/civicrm/civicrm-core/pull/17542),
+ [17502](https://github.com/civicrm/civicrm-core/pull/17502),
+ [17597](https://github.com/civicrm/civicrm-core/pull/17597),
+ [17592](https://github.com/civicrm/civicrm-core/pull/17592) and
+ [17596](https://github.com/civicrm/civicrm-core/pull/17596))**
-- **Throw exception if id not passed into discard ([17666](https://github.com/civicrm/civicrm-core/pull/17666))**
+ Makes it so that core payment processors fail elegantly more often.
-- **5.27 ([17679](https://github.com/civicrm/civicrm-core/pull/17679))**
+- **Add selfService flag to cancelSubscription getText so we can display
+ different text for each case
+ ([17687](https://github.com/civicrm/civicrm-core/pull/17687))**
-- **[REF] Ensure that our custom error handler is called when jquery vali… ([17673](https://github.com/civicrm/civicrm-core/pull/17673))**
+ Makes it so payment processor developers can identify the different contexts
+ someone may be canceling from and display appropriate messaging.
-- **[REF] Fix javascript syntax error ([17678](https://github.com/civicrm/civicrm-core/pull/17678))**
+### CiviMember
-- **[NFC] Fix Unit test failure on MySQL 8 due to mysql ordering issue ([17674](https://github.com/civicrm/civicrm-core/pull/17674))**
+- **Display start/end adjustment on membership status page.
+ ([dev/core#1809](https://lab.civicrm.org/dev/core/-/issues/1809):
+ [17571](https://github.com/civicrm/civicrm-core/pull/17571))**
-- **Improve PropertyBag handling of offsetGet and custom properties; add … ([17588](https://github.com/civicrm/civicrm-core/pull/17588))**
+ Improves the Membership Status administration page by adding columns for the
+ start/end adjustment.
-- **Export fix ([17644](https://github.com/civicrm/civicrm-core/pull/17644))**
+## <a name="bugs"></a>Bugs resolved
-- **Fix validation of select2 fields in "On behalf of Organisation" block ([17672](https://github.com/civicrm/civicrm-core/pull/17672))**
+### Core CiviCRM
-- **[REF] Fix jquery error message display on select2 field validation ([17671](https://github.com/civicrm/civicrm-core/pull/17671))**
+- **Evaluate if any indexed fields are unused (Work Towards
+ [dev/core#1634](https://lab.civicrm.org/dev/core/-/issues/1634):
+ [17686](https://github.com/civicrm/civicrm-core/pull/17686))**
-- **[REF] Fix allowing users to clear values for raido custom fields when… ([17670](https://github.com/civicrm/civicrm-core/pull/17670))**
+ Remove database index on `medium_id` from `civicrm_activity`.
-- **Fix master regression on inactive contact types ([17665](https://github.com/civicrm/civicrm-core/pull/17665))**
+- **[Activity] Default priority value when add Activity
+ ([dev/core#1801](https://lab.civicrm.org/dev/core/-/issues/1801):
+ [17557](https://github.com/civicrm/civicrm-core/pull/17557))**
-- **Pass required attribute for quickform fields through to form ([16488](https://github.com/civicrm/civicrm-core/pull/16488))**
+ Ensures when creating a new activity the priority field defaults correctly for
+ sites not in english.
-- **Use PHPUnit7 as the primary test runner for PHP versions >= 7.1 when using the phpunit script ([17615](https://github.com/civicrm/civicrm-core/pull/17615))**
+- **The multi-lingual multi-domain problem
+ ([dev/core#1852](https://lab.civicrm.org/dev/core/-/issues/1852):
+ [17738](https://github.com/civicrm/civicrm-core/pull/17738) and
+ [17733](https://github.com/civicrm/civicrm-core/pull/17733))**
-- **[REF] Extract getTestTrxnID ([17642](https://github.com/civicrm/civicrm-core/pull/17642))**
+ Ensures that the list of languages civicrm_domain.locales is the same for all
+ domains in a multi-domain set up.
-- **Fix A.net to retrieve processor id from property bag ([17654](https://github.com/civicrm/civicrm-core/pull/17654))**
+- **APIv4 - Skip empty leaves in WHERE clause
+ ([17576](https://github.com/civicrm/civicrm-core/pull/17576))**
-- **[NFC] Fix tests in prepartion for phpunit7 ([17663](https://github.com/civicrm/civicrm-core/pull/17663))**
+ Fixes a big in search builder where APIv4 gives a sql error
+ while building your where clause.
-- **[REF] Fix Compatability issue with flexmailer caused by the PHP7.4 fix ([17660](https://github.com/civicrm/civicrm-core/pull/17660))**
+- **Fix CRM_Utils_JS::dedupeClosures to ignore comments
+ ([17717](https://github.com/civicrm/civicrm-core/pull/17717))**
-- **Revert "[NFC] Fix tests in prepartion for phpunit7" ([17662](https://github.com/civicrm/civicrm-core/pull/17662))**
+ Ensures comments do not interfere with deduping.
-- **[NFC] Fix tests in preparation for phpunit7 ([17661](https://github.com/civicrm/civicrm-core/pull/17661))**
+- **Use PHPUnit7 as the primary test runner for PHP versions >= 7.1 when using
+ the phpunit script
+ ([17615](https://github.com/civicrm/civicrm-core/pull/17615))**
-- **dev/translation#48 Implement Brick/Money to better handle money values ([17608](https://github.com/civicrm/civicrm-core/pull/17608))**
+ Updates php unit tests to use PHPUnit7 when the PHP Unit version is 7.1 or
+ greater.
-- **[NFC] Remove instances where html is passed to crmMoney ([17612](https://github.com/civicrm/civicrm-core/pull/17612))**
+- **Fix isMultilingual to use static caching and respect current domain
+ ([17646](https://github.com/civicrm/civicrm-core/pull/17646))**
-- **[REF] Consolidate code in processMembership ([17611](https://github.com/civicrm/civicrm-core/pull/17611))**
+ Improves the efficiency and accuracy of the `CRM_Core_I18n::isMultilingual`
+ function, preventing a large number of duplicate queries on every request.
-- **5.27 ([17656](https://github.com/civicrm/civicrm-core/pull/17656))**
+- **Update has_separator field in civicrm_navigation
+ ([17579](https://github.com/civicrm/civicrm-core/pull/17579))**
-- **dev/core#1566 Fix display value for money radio custom field ([17008](https://github.com/civicrm/civicrm-core/pull/17008))**
+ This field was incorrectly marked as a boolean; it's actually an int with an
+ option list.
-- **Misspelled word ([17652](https://github.com/civicrm/civicrm-core/pull/17652))**
+- **Payment Propertybag remove warning
+ ([17506](https://github.com/civicrm/civicrm-core/pull/17506))**
-- **Add serialize metadata to domain.locales field ([17651](https://github.com/civicrm/civicrm-core/pull/17651))**
+ Do not trigger warning every time the function is called.
-- **[REF] Ensure that the Manual Payment Processor sets the _paymentProc… ([17648](https://github.com/civicrm/civicrm-core/pull/17648))**
+- **Fix duplicate upgrade function
+ ([17582](https://github.com/civicrm/civicrm-core/pull/17582))**
-- **[REF] Fix PHP7.4 Test fails when we are accessing array keys when the… ([17649](https://github.com/civicrm/civicrm-core/pull/17649))**
+ Fixes a fatal error on upgrade caused by a merge conflict.
-- **[REF] Fix parts of code where curly brackets were being used for array or string access which is deprecated in PHP7.4 ([17647](https://github.com/civicrm/civicrm-core/pull/17647))**
+- **Multiple line item shown on view contribution if participant is transferred
+ to another contact.
+ ([dev/core#890](https://lab.civicrm.org/dev/core/-/issues/890):
+ [16956](https://github.com/civicrm/civicrm-core/pull/16956))**
-- **Fix isMultilingual to use static caching and respect current domain ([17646](https://github.com/civicrm/civicrm-core/pull/17646))**
+- **CRM_Case_XMLProcessor::allActivityTypes() doesn't do caching right
+ ([dev/core#1433](https://lab.civicrm.org/dev/core/-/issues/1433):
+ [17627](https://github.com/civicrm/civicrm-core/pull/17627),
+ [17616](https://github.com/civicrm/civicrm-core/pull/17616) and
+ [17614](https://github.com/civicrm/civicrm-core/pull/17614))**
-- **Add CRM_Core_Form::isFormInViewMode and CRM_Core_Form::isFormInEditMode ([17637](https://github.com/civicrm/civicrm-core/pull/17637))**
+- **CustomValue.GetTree API Does Not Return Display Value for Money Select/Radio
+ Custom field ([dev/core#1566](https://lab.civicrm.org/dev/core/-/issues/1566):
+ [17008](https://github.com/civicrm/civicrm-core/pull/17008))**
-- **Bug in Grant statistics report ([17640](https://github.com/civicrm/civicrm-core/pull/17640))**
+- **whom_url missing contact ID parameter in detailed logging report
+ ([dev/core#1749](https://lab.civicrm.org/dev/core/-/issues/1749):
+ [17440](https://github.com/civicrm/civicrm-core/pull/17440))**
-- **Price Field Form: save the fid for the postProcess hook ([17639](https://github.com/civicrm/civicrm-core/pull/17639))**
+- **Regression : File fields export results in DB error
+ ([dev/core#1787](https://lab.civicrm.org/dev/core/-/issues/1787):
+ [17578](https://github.com/civicrm/civicrm-core/pull/17578))**
-- **Add EntityFormTrait to pricefieldForm - stdised getEntityId() ([17516](https://github.com/civicrm/civicrm-core/pull/17516))**
+- **Relative date filter - End of yesterday not working properly
+ ([dev/core#1798](https://lab.civicrm.org/dev/core/-/issues/1798):
+ [17512](https://github.com/civicrm/civicrm-core/pull/17512))**
-- **5.27 ([17634](https://github.com/civicrm/civicrm-core/pull/17634))**
+- **Editing a custom field choice label changes the `name` if you do it from the
+ custom field admin screens
+ ([dev/core#1817](https://lab.civicrm.org/dev/core/-/issues/1817):
+ [17681](https://github.com/civicrm/civicrm-core/pull/17681))**
-- **5.27 ([17631](https://github.com/civicrm/civicrm-core/pull/17631))**
+- **Custom Date field with format=yy displays calendar icon that doesn't work
+ ([dev/core#1829](https://lab.civicrm.org/dev/core/-/issues/1829):
+ [17664](https://github.com/civicrm/civicrm-core/pull/17664))**
-- **dev/core#1433 - Add deprecation warning for CRM_Case_XMLProcessor::allActivityTypes ([17627](https://github.com/civicrm/civicrm-core/pull/17627))**
+- **Noncompliant query leads to (semi-)random sorting and failing unit test
+ CRM_Case_BAO_CaseTest::testSortByCaseContact
+ ([dev/core#1844](https://lab.civicrm.org/dev/core/-/issues/1844):
+ [17708](https://github.com/civicrm/civicrm-core/pull/17708))**
-- **dev/core#1433 - Replace last instances of calls to CRM_Case_XMLProcessor::allActivityTypes() ([17616](https://github.com/civicrm/civicrm-core/pull/17616))**
+- **Unable to install 5.28 on Maria DB 10.3 on Ubuntu
+ ([dev/core#1860](https://lab.civicrm.org/dev/core/-/issues/1860):
+ [17772](https://github.com/civicrm/civicrm-core/pull/17772))**
-- **dev/core#1603 remove places where taxAmount is rounded ([17610](https://github.com/civicrm/civicrm-core/pull/17610))**
+ - **APIv4 - filter getActions results based on user permissions
+ ([17540](https://github.com/civicrm/civicrm-core/pull/17540))**
-- **dev/core#1433 - Replace call to CRM_Case_XMLProcessor::allActivityTypes() that doesn't cache properly ([17614](https://github.com/civicrm/civicrm-core/pull/17614))**
+- **Pre-upgrade message for php-intl shows twice
+ ([17748](https://github.com/civicrm/civicrm-core/pull/17748))**
-- **5.27 to master ([17613](https://github.com/civicrm/civicrm-core/pull/17613))**
+- **Fix saving of State/Province Multi-select values
+ ([17737](https://github.com/civicrm/civicrm-core/pull/17737))**
-- **[REF] Fix issue with using array access tools on NULL values ([17600](https://github.com/civicrm/civicrm-core/pull/17600))**
+- **Graphs on Contribution Summary report replace final row with grand total
+ value ([dev/report#40](https://lab.civicrm.org/dev/report/-/issues/40):
+ [17412](https://github.com/civicrm/civicrm-core/pull/17412))**
-- **[REF] Replace incorrect usage of array_key_exists with property_exist… ([17604](https://github.com/civicrm/civicrm-core/pull/17604))**
+- **[regression] Attempting to access Multi-Record Custom Field import results
+ in crash ([dev/core#1841](https://lab.civicrm.org/dev/core/-/issues/1841):
+ [17697](https://github.com/civicrm/civicrm-core/pull/17697))**
-- **[NFC] Add assertions to existing test to lock in current behaviour ([17605](https://github.com/civicrm/civicrm-core/pull/17605))**
+- **Use psr-4 instead of psr-0 in Civi directory
+ ([17690](https://github.com/civicrm/civicrm-core/pull/17690))**
-- **[NFC] Update mocking to use getMockBuilder instead instead of createMock ([17606](https://github.com/civicrm/civicrm-core/pull/17606))**
+- **Sort options without relying on unavailable buildOptions param
+ ([17621](https://github.com/civicrm/civicrm-core/pull/17621))**
-- **dev/financial#131 Give deprecation notice if the payment processor returns an error ([17596](https://github.com/civicrm/civicrm-core/pull/17596))**
+- **Throw exception if id not passed into discard
+ ([17666](https://github.com/civicrm/civicrm-core/pull/17666))**
-- **dev/financial#131 Remove last places where Core Processors return error object ([17597](https://github.com/civicrm/civicrm-core/pull/17597))**
+- **Improve PropertyBag handling of offsetGet and custom properties; add more
+ tests ([17588](https://github.com/civicrm/civicrm-core/pull/17588) and
+ [17654](https://github.com/civicrm/civicrm-core/pull/17654))**
-- **[REF] Add test for renewing old expired membership via form ([17564](https://github.com/civicrm/civicrm-core/pull/17564))**
+- **Fix validation of select2 fields in "On behalf of Organisation" block
+ ([17672](https://github.com/civicrm/civicrm-core/pull/17672))**
-- **[REF] Update packages to work with PHP7.4 ([17598](https://github.com/civicrm/civicrm-core/pull/17598))**
+- **Pass required attribute for quickform fields through to form
+ ([16488](https://github.com/civicrm/civicrm-core/pull/16488))**
-- **[REF] Fix another couple of uses of array_key_exists when the variabl… ([17601](https://github.com/civicrm/civicrm-core/pull/17601))**
+- **CRM_Core_I18n::setLocale() - Fix bug with repeated usage
+ ([17374](https://github.com/civicrm/civicrm-core/pull/17374))**
-- **[REF] Fix some additional issues where curly braces were being used t… ([17599](https://github.com/civicrm/civicrm-core/pull/17599))**
+- **Bug in Grant statistics report
+ ([17640](https://github.com/civicrm/civicrm-core/pull/17640))**
-- **NFC Formatting cleanup on contribution/recur templates ([17603](https://github.com/civicrm/civicrm-core/pull/17603))**
+- **Fix retrieving MySQL version for checking as part of install requirements
+ ([17593](https://github.com/civicrm/civicrm-core/pull/17593))**
-- **Add smarty error event ([16918](https://github.com/civicrm/civicrm-core/pull/16918))**
+- **Set ContactType.name as required in the schema.
+ ([17548](https://github.com/civicrm/civicrm-core/pull/17548))**
-- **dev/core#1803 Update guzzlehttp, psr7, psrlog, cxn-pc ([17551](https://github.com/civicrm/civicrm-core/pull/17551))**
+- **Fix "Undefined variable: entryFound" notice on Bookkeeping report
+ ([17554](https://github.com/civicrm/civicrm-core/pull/17554))**
-- **[REF] Remove deprecated methods of booting drupal container and getti… ([17522](https://github.com/civicrm/civicrm-core/pull/17522))**
+- **Zip code range search only supports numeric zip codes
+ ([17523](https://github.com/civicrm/civicrm-core/pull/17523))**
-- **Fix retrieving MySQL version for checking as part of install requirem… ([17593](https://github.com/civicrm/civicrm-core/pull/17593))**
+- **Remove isThrowException from CRM_Utils_Type::validate() signature
+ ([17546](https://github.com/civicrm/civicrm-core/pull/17546))**
-- **dev/financial#131 Remove legacy error handling from Paypal code. ([17592](https://github.com/civicrm/civicrm-core/pull/17592))**
+### CiviContribute
-- **Update has_separator field in civicrm_navigation ([17579](https://github.com/civicrm/civicrm-core/pull/17579))**
+- **Payment instrument ID is not required at processorform level
+ ([17510](https://github.com/civicrm/civicrm-core/pull/17510))**
-- **[Ref] Convert Authorize.net to use Guzzle for update subscription class, add test ([17585](https://github.com/civicrm/civicrm-core/pull/17585))**
+ Do not throw warning if payment instrument is not sent.
-- **[Ref] Mark unused date functions as deprecated ([17487](https://github.com/civicrm/civicrm-core/pull/17487))**
+- **Bank fee has wrong date on import in civicrm_financial_item.transaction_date
+ incorrected uses import date rather than payment date on
+ ([dev/core#1776](https://lab.civicrm.org/dev/core/-/issues/1776):
+ [17389](https://github.com/civicrm/civicrm-core/pull/17389))**
-- **dev/core#1716 add customPre hook ([17144](https://github.com/civicrm/civicrm-core/pull/17144))**
+ Ensures the `civicrm_financial_item.transaction_date` gets recorded correctly
+ when importing a transaction with a bank fee.
-- **Remove unreachable lines ([17563](https://github.com/civicrm/civicrm-core/pull/17563))**
+- **Payment.create should not set contribution date to today
+ ([17688](https://github.com/civicrm/civicrm-core/pull/17688))**
-- **EventInfo template cleanup ([17581](https://github.com/civicrm/civicrm-core/pull/17581))**
+- **Fix PHP notice when we don't have credit card params
+ ([16514](https://github.com/civicrm/civicrm-core/pull/16514) and
+ [17584](https://github.com/civicrm/civicrm-core/pull/17584))**
-- **Allow HEAD requests to generate a form key ([17321](https://github.com/civicrm/civicrm-core/pull/17321))**
+### CiviEvent
-- **5.27 ([17587](https://github.com/civicrm/civicrm-core/pull/17587))**
+- **Event participant_listing_id field defaults to 0 instead of Null
+ ([dev/core#1833](https://lab.civicrm.org/dev/core/-/issues/1833):
+ [17677](https://github.com/civicrm/civicrm-core/pull/17677))**
-- **5.27 ([17583](https://github.com/civicrm/civicrm-core/pull/17583))**
+### CiviSMS
-- **Fix fatal error regression in master ([17584](https://github.com/civicrm/civicrm-core/pull/17584))**
+- **Can't change SMS recipient on non-bulk SMS
+ ([dev/core#1840](https://lab.civicrm.org/dev/core/-/issues/1840):
+ [17691](https://github.com/civicrm/civicrm-core/pull/17691))**
-- **Fix duplicate upgrade function ([17582](https://github.com/civicrm/civicrm-core/pull/17582))**
+### Joomla Integration
-- **dev/financial#131 Fix Elavon processor to throw exceptions ([17565](https://github.com/civicrm/civicrm-core/pull/17565))**
+- **Ensure that when normal routing trackable urls and opens in Joomla go to the
+ frontend not administrator site
+ ([17760](https://github.com/civicrm/civicrm-core/pull/17760))**
-- **Add icons to multi-valued custom groups and display on contact tab ([17531](https://github.com/civicrm/civicrm-core/pull/17531))**
+### WordPress Integration
-- **APIv4 - Skip empty leaves in WHERE clause ([17576](https://github.com/civicrm/civicrm-core/pull/17576))**
+- **Remove `/` from the beginning and end of query string
+ ([207](https://github.com/civicrm/civicrm-wordpress/pull/207))**
-- **(dev/core#1787) Regression : File fields export results in DB error ([17578](https://github.com/civicrm/civicrm-core/pull/17578))**
+ Fixes a 'You do not have permission to access this content.' error resulting
+ from an extra '/' in the `q=` string in the url.
-- **[REF] Replace incorrect usages of array_key_exists when the variable … ([17573](https://github.com/civicrm/civicrm-core/pull/17573))**
+- **Base page fails to recognise Page Templates in subdirectories.
+ ([dev/wordpress#58](https://lab.civicrm.org/dev/wordpress/-/issues/58):
+ [204](https://github.com/civicrm/civicrm-wordpress/pull/204))**
-- **dev/core#183 Use CRM_Utils_SQL_TempTable for generating temp table na… ([15796](https://github.com/civicrm/civicrm-core/pull/15796))**
+ Ensures that the CiviCRM base page is correctly identified when it does not
+ reside in the theme root directory.
-- **[REF] Using {} to access string or array offsets has been deprecated … ([17574](https://github.com/civicrm/civicrm-core/pull/17574))**
+- **undefined offset bug in BAO/FinancialAccount.php
+ ([dev/wordpress#61](https://lab.civicrm.org/dev/wordpress/-/issues/61):
+ [17701](https://github.com/civicrm/civicrm-core/pull/17701) and
+ [17689](https://github.com/civicrm/civicrm-core/pull/17689))**
-- **dev/core#1749 Fix missing parameter in link to logging detail ([17440](https://github.com/civicrm/civicrm-core/pull/17440))**
+ Ensures that the financial account is set correctly even when the name does
+ not match the label.
-- **Include a new SqlParallel queue type that enables multiple queue runners to process in parallel ([15422](https://github.com/civicrm/civicrm-core/pull/15422))**
+## <a name="misc"></a>Miscellany
+
+- **Support passing old method name into deprecatedFunctionWarning
+ ([17552](https://github.com/civicrm/civicrm-core/pull/17552))**
-- **[REF] Using ternary operation without nesting is deprecated and also … ([17575](https://github.com/civicrm/civicrm-core/pull/17575))**
+- **Add CRM_Core_Form::isFormInViewMode and CRM_Core_Form::isFormInEditMode
+ ([17637](https://github.com/civicrm/civicrm-core/pull/17637))**
-- **[REF] Add in upgrade step to populate missing contact_type.name field ([17570](https://github.com/civicrm/civicrm-core/pull/17570))**
+- **CRM_Utils_JS - also dedupe 'use strict' directive when deduping closures
+ ([17711](https://github.com/civicrm/civicrm-core/pull/17711))**
-- **dev/core#1809 - Add start/end adjustment columns to membership status… ([17571](https://github.com/civicrm/civicrm-core/pull/17571))**
+- **Add isBackOffice, isPayLater, getPaymentMode helpers to
+ frontendpaymentformtrait
+ ([17511](https://github.com/civicrm/civicrm-core/pull/17511))**
-- **Set ContactType.name as required in the schema. ([17548](https://github.com/civicrm/civicrm-core/pull/17548))**
+- **Fix issue $this
+ ([589](https://github.com/civicrm/civicrm-drupal/pull/589))**
-- **[NFC] Minor code cleanup ([17566](https://github.com/civicrm/civicrm-core/pull/17566))**
+- **Fix validateAll to no longer support unused abort param
+ ([17544](https://github.com/civicrm/civicrm-core/pull/17544))**
-- **Remove deprecated billingID from baseIPN ([17525](https://github.com/civicrm/civicrm-core/pull/17525))**
+- **Remove deprecated billingID from baseIPN
+ ([17525](https://github.com/civicrm/civicrm-core/pull/17525))**
-- **[Ref] Remove never reachable lines. ([17556](https://github.com/civicrm/civicrm-core/pull/17556))**
+- **Add EntityFormTrait to pricefieldForm - stdised getEntityId()
+ ([17516](https://github.com/civicrm/civicrm-core/pull/17516))**
-- **dev/financial#131 Fix Realex processor to correctly throw an exception ([17559](https://github.com/civicrm/civicrm-core/pull/17559))**
+- **Update contributor-key.yml
+ ([17553](https://github.com/civicrm/civicrm-core/pull/17553))**
-- **dev/core#1801 Fix hardcoded activity priority by label ([17557](https://github.com/civicrm/civicrm-core/pull/17557))**
+- **Export fix ([17644](https://github.com/civicrm/civicrm-core/pull/17644))**
-- **[REF] Replace the deprecated system_rebuild_module_data function with… ([17515](https://github.com/civicrm/civicrm-core/pull/17515))**
+- **Upgrade HTML Purifier to v4.12.0 to support for PHP7.4
+ ([297](https://github.com/civicrm/civicrm-packages/pull/297))**
-- **dev/core#560 Add in deprecated function warning now that fatal is dep… ([17555](https://github.com/civicrm/civicrm-core/pull/17555))**
+- **Temporary tables should follow consistent naming convention
+ ([dev/core#183](https://lab.civicrm.org/dev/core/-/issues/183):
+ [15796](https://github.com/civicrm/civicrm-core/pull/15796))**
-- **dev/core#1782 Set activity_date_time and created_date to default to current_timestamp ([17450](https://github.com/civicrm/civicrm-core/pull/17450))**
+- **Remove unreachable lines
+ ([17563](https://github.com/civicrm/civicrm-core/pull/17563))**
-- **[Ref] Convert Authorize.net doDirectPayment to use guzzle & add test ([17501](https://github.com/civicrm/civicrm-core/pull/17501))**
+- **EventInfo template cleanup
+ ([17581](https://github.com/civicrm/civicrm-core/pull/17581))**
-- **Fix "Undefined variable: entryFound" notice on Bookkeeping report ([17554](https://github.com/civicrm/civicrm-core/pull/17554))**
+- **Misspelled word
+ ([17652](https://github.com/civicrm/civicrm-core/pull/17652))**
-- **Payment Propertybag remove warning ([17506](https://github.com/civicrm/civicrm-core/pull/17506))**
+- **Remove a usage of deprecated funtion get_magic_quotes_gpc and also switch out
+ {} for [] whne acecssing string or array offsets
+ ([296](https://github.com/civicrm/civicrm-packages/pull/296))**
-- **Support passing old method name into deprecatedFunctionWarning ([17552](https://github.com/civicrm/civicrm-core/pull/17552))**
+- **Remove unused deprecated class
+ ([17535](https://github.com/civicrm/civicrm-core/pull/17535))**
-- **Update contributor-key.yml ([17553](https://github.com/civicrm/civicrm-core/pull/17553))**
+- **Remove obsolete function formatWikiURL
+ ([17726](https://github.com/civicrm/civicrm-core/pull/17726))**
-- **Remove last instance of CRM_Core_Error::fatal.... ([17550](https://github.com/civicrm/civicrm-core/pull/17550))**
+- **[REF] Ship Flexmailer extension with Core
+ ([17669](https://github.com/civicrm/civicrm-core/pull/17669))**
-- **Allow adding datepicker to metadata based settings pages ([16610](https://github.com/civicrm/civicrm-core/pull/16610))**
+- **[Ref] Simplify the replacing of the email with the email from the url
+ ([17491](https://github.com/civicrm/civicrm-core/pull/17491))**
-- **Fix PHP notice when we don't have credit card params ([16514](https://github.com/civicrm/civicrm-core/pull/16514))**
+- **[REF] Replace incorrect usages of array_key_exists when the variable is not
+ an array with property_exists and also fix the parameter order for an implode
+ statement ([17573](https://github.com/civicrm/civicrm-core/pull/17573))**
-- **CRM_Core_I18n::setLocale() - Fix bug with repeated usage ([17374](https://github.com/civicrm/civicrm-core/pull/17374))**
+- **[Ref] Convert Authorize.net to use Guzzle for update subscription class, add
+ test ([17585](https://github.com/civicrm/civicrm-core/pull/17585))**
-- **Add payment processor to details on list of recurring contributions ([17179](https://github.com/civicrm/civicrm-core/pull/17179))**
+- **[REF] Using {} to access string or array offsets has been deprecated in
+ PHP7.4 ([17574](https://github.com/civicrm/civicrm-core/pull/17574))**
-- **dev/core#1798 - "End of yesterday" Relative Date Filter ([17512](https://github.com/civicrm/civicrm-core/pull/17512))**
+- **[Ref] Mark unused date functions as deprecated
+ ([17487](https://github.com/civicrm/civicrm-core/pull/17487))**
-- **Zip code range search only supports numeric zip codes ([17523](https://github.com/civicrm/civicrm-core/pull/17523))**
+- **[REF] Using ternary operation without nesting is deprecated and also using
+ methods and properly instanciate the CiviCase Info object in test
+ ([17575](https://github.com/civicrm/civicrm-core/pull/17575))**
-- **[Ref] Remove another instance of fatal() ([17549](https://github.com/civicrm/civicrm-core/pull/17549))**
+- **[REF] Add in upgrade step to populate missing contact_type.name field
+ ([17570](https://github.com/civicrm/civicrm-core/pull/17570))**
-- **[Ref] Readability extraction in Dummy class ([17543](https://github.com/civicrm/civicrm-core/pull/17543))**
+- **[Ref] Convert Authorize.net doDirectPayment to use guzzle & add test
+ ([17501](https://github.com/civicrm/civicrm-core/pull/17501))**
-- **Remove isThrowException from CRM_Utils_Type::validate() signature ([17546](https://github.com/civicrm/civicrm-core/pull/17546))**
+- **[REF] Replace the deprecated system_rebuild_module_data function with
+ equivilant extension.list.module service function calls to be Drupal 9
+ compatiable ([17515](https://github.com/civicrm/civicrm-core/pull/17515))**
-- **dev/core#560 Convert final CRM_Core_Error::fatal to statusBounces or … ([17545](https://github.com/civicrm/civicrm-core/pull/17545))**
+- **[Ref] Remove never reachable lines.
+ ([17556](https://github.com/civicrm/civicrm-core/pull/17556))**
-- **Fix validateAll to no longer support unused abort param ([17544](https://github.com/civicrm/civicrm-core/pull/17544))**
+- **[Ref] Remove another instance of fatal()
+ ([17549](https://github.com/civicrm/civicrm-core/pull/17549))**
-- **dev/financial#131 Fix Eway processor to throw exceptions rather than return errors ([17542](https://github.com/civicrm/civicrm-core/pull/17542))**
+- **[Ref] Readability extraction in Dummy class
+ ([17543](https://github.com/civicrm/civicrm-core/pull/17543))**
-- **[REF] Replace some instances of fatal with thrown exceptions. ([17533](https://github.com/civicrm/civicrm-core/pull/17533))**
+- **[Ref] Throw exceptions from Authorize.net rather than return errors
+ ([17500](https://github.com/civicrm/civicrm-core/pull/17500))**
-- **APIv4 - filter getActions results based on user permissions ([17540](https://github.com/civicrm/civicrm-core/pull/17540))**
+- **[REF] Replace some instances of fatal with thrown exceptions.
+ ([17533](https://github.com/civicrm/civicrm-core/pull/17533))**
-- **[Ref] Simplify the replacing of the email with the email from the url ([17491](https://github.com/civicrm/civicrm-core/pull/17491))**
+- **[Ref] Remove calls to, and deprecate, unhandled function
+ ([17499](https://github.com/civicrm/civicrm-core/pull/17499))**
-- **[Ref] Throw exceptions from Authorize.net rather than return errors ([17500](https://github.com/civicrm/civicrm-core/pull/17500))**
+- **[REF] Remove handling for 2 fields not on the form
+ ([17504](https://github.com/civicrm/civicrm-core/pull/17504))**
-- **[Ref] Remove calls to, and deprecate, unhandled function ([17499](https://github.com/civicrm/civicrm-core/pull/17499))**
+- **[Ref] Remove some instances of fatal in BAO classes
+ ([17536](https://github.com/civicrm/civicrm-core/pull/17536))**
-- **[REF] Remove handling for 2 fields not on the form ([17504](https://github.com/civicrm/civicrm-core/pull/17504))**
+- **REF Access the method not the property directly to check if a payment
+ processor supports recurring
+ ([17602](https://github.com/civicrm/civicrm-core/pull/17602))**
-- **Replace calls to fatal with statusBounces ([17539](https://github.com/civicrm/civicrm-core/pull/17539))**
+- **[REF] Ensure that our custom error handler is called when jquery validates
+ and expand any collapsed accordions that are hiding required fields that
+ haven't been filled in
+ ([17673](https://github.com/civicrm/civicrm-core/pull/17673))**
-- **dev/core#560 Replace deprecated CRM_Core_Erorr::fatal with Exceptions… ([17541](https://github.com/civicrm/civicrm-core/pull/17541))**
+- **[REF] Consolidate code in processMembership
+ ([17611](https://github.com/civicrm/civicrm-core/pull/17611))**
-- **Add isBackOffice, isPayLater, getPaymentMode helpers to frontendpaymentformtrait ([17511](https://github.com/civicrm/civicrm-core/pull/17511))**
+- **[REF] Cleanup function for retrieving contact types.
+ ([17676](https://github.com/civicrm/civicrm-core/pull/17676))**
-- **Remove instances of fatal from upgrade folder ([17534](https://github.com/civicrm/civicrm-core/pull/17534))**
+- **[REF] Fix javascript syntax error
+ ([17678](https://github.com/civicrm/civicrm-core/pull/17678))**
-- **Remove unused deprecated class ([17535](https://github.com/civicrm/civicrm-core/pull/17535))**
+- **[REF] Fix jquery error message display on select2 field validation
+ ([17671](https://github.com/civicrm/civicrm-core/pull/17671))**
-- **[NFC] Update existing APIv3 MembershipType Tests to also test against… ([17528](https://github.com/civicrm/civicrm-core/pull/17528))**
+- **[REF] Fix allowing users to clear values for raido custom fields when not
+ required ([17670](https://github.com/civicrm/civicrm-core/pull/17670))**
-- **[Ref] Remove some instances of fatal in BAO classes ([17536](https://github.com/civicrm/civicrm-core/pull/17536))**
+- **[REF] Extract getTestTrxnID
+ ([17642](https://github.com/civicrm/civicrm-core/pull/17642))**
-- **5.27 ([17538](https://github.com/civicrm/civicrm-core/pull/17538))**
+- **[REF] Fix Compatability issue with flexmailer caused by the PHP7.4 fix
+ ([17660](https://github.com/civicrm/civicrm-core/pull/17660))**
-- **Fix probably-unused core payment processors to throw extensions ([17502](https://github.com/civicrm/civicrm-core/pull/17502))**
+- **[REF] Ensure that the Manual Payment Processor sets the _paymentProcessor
+ variable like other Processors to fix issues in PHP7.4 and UnitTests
+ ([17648](https://github.com/civicrm/civicrm-core/pull/17648))**
-- **Payment instrument ID is not required at processorform level ([17510](https://github.com/civicrm/civicrm-core/pull/17510))**
+- **[REF] Fix PHP7.4 Test fails when we are accessing array keys when the value
+ is not an array
+ ([17649](https://github.com/civicrm/civicrm-core/pull/17649))**
-- **5.27 ([17530](https://github.com/civicrm/civicrm-core/pull/17530))**
+- **[REF] Fix parts of code where curly brackets were being used for array or
+ string access which is deprecated in PHP7.4
+ ([17647](https://github.com/civicrm/civicrm-core/pull/17647))**
-- **Add titles and icons to entities ([17527](https://github.com/civicrm/civicrm-core/pull/17527))**
+- **[REF] Fix issue with using array access tools on NULL values
+ ([17600](https://github.com/civicrm/civicrm-core/pull/17600))**
-- **[NFC] Update PHPUnit Configuration file to be compatible with PHPUnit7 ([605](https://github.com/civicrm/civicrm-drupal/pull/605))**
+- **[REF] Replace incorrect usage of array_key_exists with property_exists in
+ Group BAO Class
+ ([17604](https://github.com/civicrm/civicrm-core/pull/17604))**
-- **Fix issue $this ([589](https://github.com/civicrm/civicrm-drupal/pull/589))**
+- **[REF] Add test for renewing old expired membership via form
+ ([17564](https://github.com/civicrm/civicrm-core/pull/17564))**
-- **dev/core#560 Remove unnecessary CRM_Core_Error::fatal call ([602](https://github.com/civicrm/civicrm-drupal/pull/602))**
+- **[REF] Update packages to work with PHP7.4
+ ([17598](https://github.com/civicrm/civicrm-core/pull/17598))**
-- **Remove `/` from the beginning and end of query string\r
-\r
-Merging as per discussion with @kcristiano ([207](https://github.com/civicrm/civicrm-wordpress/pull/207))**
+- **[REF] Fix another couple of uses of array_key_exists when the variable being
+ checked is an object
+ ([17601](https://github.com/civicrm/civicrm-core/pull/17601))**
-- **[NFC] Update PHPUnit configuration to be compatible with PHPUnit7 ([206](https://github.com/civicrm/civicrm-wordpress/pull/206))**
+- **[REF] Remove deprecated methods of booting drupal container and getting
+ drupal timezone information
+ ([17522](https://github.com/civicrm/civicrm-core/pull/17522))**
-- **Fix discovery of page templates in theme subdirectories ([204](https://github.com/civicrm/civicrm-wordpress/pull/204))**
+- **[REF] Fix some additional issues where curly braces were being used to
+ access string or array offsets
+ ([17599](https://github.com/civicrm/civicrm-core/pull/17599))**
-- **5.27 ([202](https://github.com/civicrm/civicrm-wordpress/pull/202))**
+- **[NFC] Update existing APIv3 MembershipType Tests to also test against APIv4
+ as appropriate ([17528](https://github.com/civicrm/civicrm-core/pull/17528))**
-- **[NFC] Update PHPUnit configuration to be compatible with PHPUnit7 ([120](https://github.com/civicrm/civicrm-backdrop/pull/120))**
+- **NFC cleanup docblocks in CRM_Utils_JS
+ ([17714](https://github.com/civicrm/civicrm-core/pull/17714))**
-- **dev/core#1137 - Make ssl database connections without client certificates work in php7 ([298](https://github.com/civicrm/civicrm-packages/pull/298))**
+- **[NFC] Update flexmailer to be PHP7.4 compatible
+ ([17779](https://github.com/civicrm/civicrm-core/pull/17779))**
-- **Upgrade HTML Purifier to v4.12.0 to support for PHP7.4 ([297](https://github.com/civicrm/civicrm-packages/pull/297))**
+- **[NFC] Include flexmailer in distmaker
+ ([17768](https://github.com/civicrm/civicrm-core/pull/17768))**
-- **Add trigger for smarty error event ([292](https://github.com/civicrm/civicrm-packages/pull/292))**
+- **[NFC] Fix some outdated wiki links
+ ([17739](https://github.com/civicrm/civicrm-core/pull/17739))**
-- **Remove a usage of deprecated funtion get_magic_quotes_gpc and also sw… ([296](https://github.com/civicrm/civicrm-packages/pull/296))**
+- **[NFC] Fix contributor key for Lighthouse Consulting and Design
+ ([17727](https://github.com/civicrm/civicrm-core/pull/17727))**
-- **dev/core#560 Replace Depreacted CRM_Core_Error::fatal with an Exception ([295](https://github.com/civicrm/civicrm-packages/pull/295))**
+- **[NFC] Update PHPUnit Configuration file to be compatible with PHPUnit7
+ ([605](https://github.com/civicrm/civicrm-drupal/pull/605))**
-## <a name="misc"></a>Miscellany
+- **[NFC] Fix Unit test failure on MySQL 8 due to mysql ordering issue
+ ([17674](https://github.com/civicrm/civicrm-core/pull/17674))**
+
+- **[NFC] Fix tests in preparation for phpunit7
+ ([17661](https://github.com/civicrm/civicrm-core/pull/17661))**
+
+- **[NFC] Remove instances where html is passed to crmMoney
+ ([17612](https://github.com/civicrm/civicrm-core/pull/17612))**
+
+- **[NFC] Add assertions to existing test to lock in current behaviour
+ ([17605](https://github.com/civicrm/civicrm-core/pull/17605))**
+
+- **[NFC] Update mocking to use getMockBuilder instead instead of createMock
+ ([17606](https://github.com/civicrm/civicrm-core/pull/17606))**
+
+- **NFC Formatting cleanup on contribution/recur templates
+ ([17603](https://github.com/civicrm/civicrm-core/pull/17603))**
+
+- **[NFC] Minor code cleanup
+ ([17566](https://github.com/civicrm/civicrm-core/pull/17566))**
+
+- **[NFC] Update PHPUnit configuration to be compatible with PHPUnit7
+ ([120](https://github.com/civicrm/civicrm-backdrop/pull/120))**
+
+- **[NFC] Update PHPUnit configuration to be compatible with PHPUnit7
+ ([206](https://github.com/civicrm/civicrm-wordpress/pull/206))**
## <a name="credits"></a>Credits
This release was developed by the following code authors:
-AGH Strategies - Alice Frumin, Andrew Hunt; British Humanist Association - Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Ivan; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Dietermartens; ES-Progress - Sandor Semsey; Fuzion - Jitendra Purohit; JMA Consulting - Seamus Lee; Lighthouse Consulting and Design - Brian Shaughnessy; marcineqpol; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Tadpole Collective - Kevin Cristiano; twocs; Wikimedia Foundation - Eileen McNaughton
+AGH Strategies - Alice Frumin, Andrew Hunt; British Humanist Association -
+Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM -
+Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Ivan; Coop
+SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Dietermartens; ES-Progress -
+Sandor Semsey; Flinders University of South Australia - Tom Anderson; Fuzion -
+Jitendra Purohit; JMA Consulting - Seamus Lee; Lighthouse Consulting and
+Design- Brian Shaughnessy; Marcin Lewandowski; Megaphone Technology Consulting -
+Jon Goldberg; MJW Consulting - Matthew Wire; Tadpole Collective - Kevin
+Cristiano; Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
-a-n The Artists Information Company - William Mortada; Agileware - Francis Whittle, Justin Freeman; Andrew Thompson; Artful Robot - Rich Lott; Betty Dolfing; Blackfly Solutions - Alan Dixon; British Humanist Association - Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Ivan; Coop SymbioTIC - Mathieu Lutfy; Dave D; Dietermartens; Erioldoesdesign; ES-Progress - Sandor Semsey; Fuzion - Jitendra Purohit, Luke Stewart, Peter Davis; JMA Consulting - Joe Murray, Seamus Lee; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Semper IT - Karin Gerritsen; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Timbsoft Technologies - Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton
+a-n The Artists Information Company - William Mortada; Agileware - Francis
+Whittle, Justin Freeman; Andrew Thompson; Artful Robot - Rich Lott; Betty
+Dolfing; Blackfly Solutions - Alan Dixon; CiviCoop - Jaap Jansma; Fuzion - Luke
+Stewart, Peter Davis; JMA Consulting - Joe Murray; MJCO - Mikey O'Toole; Semper
+IT - Karin Gerritsen; Squiffle Consulting - Aidan Saunders; Third Sector Design:
+Eriol Fox; Timbsoft Technologies - Tunbola Ogunwande;
## <a name="feedback"></a>Feedback