# CiviCRM 5.15.0
-Released July 3, 2019;
+Released July 3, 2019
+- **[Synopsis](#synopsis)**
- **[Features](#features)**
- **[Bugs resolved](#bugs)**
- **[Miscellany](#misc)**
- **[Credits](#credits)**
+- **[Feedback](#feedback)**
+
+## <a name="synopsis"></a>Synopsis
+
+| *Does this version...?* | |
+|:--------------------------------------------------------------- |:-------:|
+| 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
### Core CiviCRM
-- **crm- Missing Summary ([14461](https://github.com/civicrm/civicrm-core/pull/14461))**
+- **Rearrange quick search options
+ ([dev/core#628](https://lab.civicrm.org/dev/core/issues/628):
+ [14441](https://github.com/civicrm/civicrm-core/pull/14441))**
-- **CRM-21832 Missing Summary ([14183](https://github.com/civicrm/civicrm-core/pull/14183))**
+ This change makes it so that the quicksearch field options can be rearranged.
-## <a name="bugs"></a>Bugs resolved
+- **Improve formatting for settings checkboxes
+ ([14461](https://github.com/civicrm/civicrm-core/pull/14461) and
+ [14419](https://github.com/civicrm/civicrm-core/pull/14419))**
-### Core CiviCRM
+ Restyles the checkboxes on the "Display Preferences" screen so they all use
+ the same styling for visual consistency and restyles the "Components" settings
+ field as a checkbox list instead of it being an AdvMultiSelect element.
-- **Add CRM_Utils_System::sendResponse(). Fix AssetBuilder's status-code on WP. ([14468](https://github.com/civicrm/civicrm-core/pull/14468))**
+- **Differentiate smart group from regular group using icon in select2 field
+ (preliminary work for [dev/core#785](https://lab.civicrm.org/dev/core/issues/785):
+ [14416](https://github.com/civicrm/civicrm-core/pull/14416))**
-- **[NFC] Update Exception DAO class ([14482](https://github.com/civicrm/civicrm-core/pull/14482))**
+ Extends the addField() function to support fields of the type `select2` and
+ `select`.
-- **[nfc] [test] Skip testGetFromTo on date transition ([14472](https://github.com/civicrm/civicrm-core/pull/14472))**
+- **Cleanup & api-ise the dedupe code (preliminary work for
+ [dev/core#982](https://lab.civicrm.org/dev/core/issues/982):
+ [14298](https://github.com/civicrm/civicrm-core/pull/14298))**
-- **[NFC][test-fix] centralise use of assertLike for comparing sql ([14470](https://github.com/civicrm/civicrm-core/pull/14470))**
+ Adds a `dedupe.getstatistics` API action.
-- **Fix Exception api to save lower id number as contact 1 ([14448](https://github.com/civicrm/civicrm-core/pull/14448))**
+- **Add Contact.get_merge_conflicts API
+ ([14394](https://github.com/civicrm/civicrm-core/pull/14394))**
-- **dev/core#1025 fix unreleased regression on contact.get with custom fields ([14473](https://github.com/civicrm/civicrm-core/pull/14473))**
+ Adds a `contact.get_merge_conflicts` API action.
-- **Fix Exception to remove result from duplicates ([14447](https://github.com/civicrm/civicrm-core/pull/14447))**
+- **Add API for Dedupe.getduplicates
+ ([14411](https://github.com/civicrm/civicrm-core/pull/14411))**
-- **Permit sort_name as a url parameter on advanced search ([14475](https://github.com/civicrm/civicrm-core/pull/14475))**
+ Adds a `dedupe.getduplicates` API action.
-- **[REF] Move retrieval of basicSearchFields to 'get' fn ([14476](https://github.com/civicrm/civicrm-core/pull/14476))**
+- **Support latest PHPUnit versions
+ ([dev/core#980](https://lab.civicrm.org/dev/core/issues/980):
+ [14333](https://github.com/civicrm/civicrm-core/pull/14333),
+ [14387](https://github.com/civicrm/civicrm-core/pull/14387),
+ [14279](https://github.com/civicrm/civicrm-core/pull/14279),
+ [14319](https://github.com/civicrm/civicrm-core/pull/14319),
+ [14315](https://github.com/civicrm/civicrm-core/pull/14315),
+ [14421](https://github.com/civicrm/civicrm-core/pull/14421),
+ [14404](https://github.com/civicrm/civicrm-core/pull/14404),
+ [254](https://github.com/civicrm/civicrm-packages/pull/254),
+ [14283](https://github.com/civicrm/civicrm-core/pull/14283) and
+ [14321](https://github.com/civicrm/civicrm-core/pull/14321))**
-- **Fix version for pledge message update, also remove 'please print' ([14469](https://github.com/civicrm/civicrm-core/pull/14469))**
+ Updates phpunit version support so that the CiviCRM test suite works with
+ phpunit versions 5 thru 8. Removes dependency on discontinued dbunit. Moves
+ towards using API functions instead of dbunit.
-- **Wrap titles in metadata in ts on payment.create api ([14450](https://github.com/civicrm/civicrm-core/pull/14450))**
+- **Permit sort_name as a url parameter on advanced search
+ ([14475](https://github.com/civicrm/civicrm-core/pull/14475))**
-- **[Outbound mail admin form] fix some more notices resulting from recent change ([14433](https://github.com/civicrm/civicrm-core/pull/14433))**
+ Lays the ground work for a metadata based approach to search forms,
+ Specifically for the contact form. Converts one field (sort_name) to be
+ added by metadata and also to be supported via url (sort_name=x).
-- **Fix upgrade on participant_register date ([14427](https://github.com/civicrm/civicrm-core/pull/14427))**
+- **Allow updating ENGINE_CONFIG for System.updatelogtables
+ ([14348](https://github.com/civicrm/civicrm-core/pull/14348))**
-- **Misc translation 'ts' fixes ([14467](https://github.com/civicrm/civicrm-core/pull/14467))**
+ Makes it so users can modify the SQL engine config for log tables thru the
+ api.
-- **dev/core#1010 pledge_acknowledge template - capitalization and greeting ([14465](https://github.com/civicrm/civicrm-core/pull/14465))**
+- **Reduce cache bypasses - Do not bypass custom metadata cache in setGroupTree
+ ([14292](https://github.com/civicrm/civicrm-core/pull/14292))**
-- **Conditionally use Drupal's jQuery only if available ([14442](https://github.com/civicrm/civicrm-core/pull/14442))**
+ Improves performance when editing a form with custom data by using
+ the cached metadata instead of doing a database query to rebuild the metadata.
-- **Don't run search when editing smartgroup criteria ([14464](https://github.com/civicrm/civicrm-core/pull/14464))**
+- **Try enabling api4 extension in test suite
+ ([14241](https://github.com/civicrm/civicrm-core/pull/14241))**
-- **5.14 ([14463](https://github.com/civicrm/civicrm-core/pull/14463))**
+ Makes the api4 extension available when running unit tests.
-- **Add Contact.get_merge_conflicts api ([14394](https://github.com/civicrm/civicrm-core/pull/14394))**
+- **Use data provider to test both API versions
+ ([14153](https://github.com/civicrm/civicrm-core/pull/14153))**
-- **[NFC] array formatting in api_v3_paymentTest class ([14451](https://github.com/civicrm/civicrm-core/pull/14451))**
+ Makes it so 311 API v3 tests are converted to also test API v4.
-- **Test tweaks that *might* help with intermittant test weirdness ([14458](https://github.com/civicrm/civicrm-core/pull/14458))**
+- **Advanced search: activity tags should use select2 ([
+ dev/core#924](https://lab.civicrm.org/dev/core/issues/924):
+ [14247](https://github.com/civicrm/civicrm-core/pull/14247))**
-- **dev/core#1023 - E_NOTICE when creating bulk SMS ([14449](https://github.com/civicrm/civicrm-core/pull/14449))**
+ Changes the "Activity Tags" field on the "Advanced Search" form to be a
+ select2 instead of a checkbox list to improve user experience.
-- **5.14 ([14457](https://github.com/civicrm/civicrm-core/pull/14457))**
+## CiviContribute
-- **dev/core#1022 - Manage Case deleted activities search filter no longer working ([14445](https://github.com/civicrm/civicrm-core/pull/14445))**
+- **Better support in core for token payment processing (continues work for
+ [dev/core#905](https://lab.civicrm.org/dev/core/issues/905):
+ [14395](https://github.com/civicrm/civicrm-core/pull/14395) and
+ [14343](https://github.com/civicrm/civicrm-core/pull/14343))**
-- **5.14 to master ([14455](https://github.com/civicrm/civicrm-core/pull/14455))**
+ Separates the `contribution_recur` status_id option group from the `contribution`
+ status_id option group and adds the contribution recur statuses 'Processing'
+ and 'Failing'.
-- **(NFC) Remove without param tests ([14454](https://github.com/civicrm/civicrm-core/pull/14454))**
+- **Add cancel_reason field to civicrm_contribution_recur table
+ ([dev/core#830](https://lab.civicrm.org/dev/core/issues/830):
+ [13997](https://github.com/civicrm/civicrm-core/pull/13997))**
-- **dev/core#628 - Make Quicksearch options sortable ([14441](https://github.com/civicrm/civicrm-core/pull/14441))**
+ Adds a `Cancellation Reason` field to the form to cancel recurring
+ contributions.
-- **Add api for Dedupe.getduplicates ([14411](https://github.com/civicrm/civicrm-core/pull/14411))**
+- **Add time start date and end date values on page contribution widget ajax
+ response ([dev/core#964](https://lab.civicrm.org/dev/core/issues/964):
+ [14262](https://github.com/civicrm/civicrm-core/pull/14262))**
-- **Avoid logging error message if status check query fails. ([14363](https://github.com/civicrm/civicrm-core/pull/14363))**
+ Makes campaign start and end dates available to the campaign widget on
+ Contribution Pages so that one can customize the campaign widget with options
+ such as "Starts in X days".
-- **dev/core#1014 fix e-notice regression ([14426](https://github.com/civicrm/civicrm-core/pull/14426))**
+- **Expose contribution page in Contribution Summary report
+ ([dev/core#959](https://lab.civicrm.org/dev/core/issues/959):
+ [14249](https://github.com/civicrm/civicrm-core/pull/14249))**
-- **Change Activity tag to use select2 ([14247](https://github.com/civicrm/civicrm-core/pull/14247))**
+ Exposes the contribution page field in the "Contribution Summary" report.
-- **[REF] Activity form - very minor tidy up ([14434](https://github.com/civicrm/civicrm-core/pull/14434))**
+- **Add developer tab for summary report
+ ([14254](https://github.com/civicrm/civicrm-core/pull/14254))**
-- **5.14 to master ([14432](https://github.com/civicrm/civicrm-core/pull/14432))**
+ Adds a developer tab to the "Contribution Summary" report.
-- **Fix running of CRM_Utils_MoneyTest on PHPUnit6+ ([14424](https://github.com/civicrm/civicrm-core/pull/14424))**
+- **Wrap titles in metadata in ts on payment.create API
+ ([14450](https://github.com/civicrm/civicrm-core/pull/14450))**
-- **Improve formatting for settings checkboxes ([14419](https://github.com/civicrm/civicrm-core/pull/14419))**
+ Improves the API v3 explorer for multilingual sites by translating the
+ titles in the payment create API action.
-- **Caches - Normalize dependency on php-cache integration-tests ([14423](https://github.com/civicrm/civicrm-core/pull/14423))**
+- **Translation in billingblock.tpl - dropping 'Information'
+ ([14358](https://github.com/civicrm/civicrm-core/pull/14358))**
-- **phpunit6 - Implement TAP printer ([14421](https://github.com/civicrm/civicrm-core/pull/14421))**
+ Improves translation of the billing block on front facing contribution and
+ event forms by removing the word Information from the title.
-- **5.14 to master ([14422](https://github.com/civicrm/civicrm-core/pull/14422))**
+## CiviEvent
-- **Try running unit tests on phpunit6 ([14404](https://github.com/civicrm/civicrm-core/pull/14404))**
+- **WYSIWYG support for i18n event fields
+ ([14384](https://github.com/civicrm/civicrm-core/pull/14384) and
+ [14396](https://github.com/civicrm/civicrm-core/pull/14396))**
-- **dev/core#905 Add contribution recur statuses 'Processing' and 'Failing' ([14395](https://github.com/civicrm/civicrm-core/pull/14395))**
+ Adds support for wysiwyg editor in i18n popup for event fields.
-- **Allow updating ENGINE_CONFIG for System.updatelogtables ([14348](https://github.com/civicrm/civicrm-core/pull/14348))**
+## Drupal Integration
-- **Force link in confirmation email to be front-end ([14389](https://github.com/civicrm/civicrm-core/pull/14389))**
+- **Pass the RFC 3164 severity level thru to drupal watchdog.
+ ([14185](https://github.com/civicrm/civicrm-core/pull/14185))**
-- **dev/Core#785: Extend addField to support select2 widget ([14416](https://github.com/civicrm/civicrm-core/pull/14416))**
+ Improves error logging for Drupal users by passing the severity level to
+ drupal watchdog. Before this change all errors passed from CiviCRM to
+ drupal watchdog were logged at the debug level now errors, warnings, notices,
+ info, etc. can be logged as such.
-- **5.14 ([14417](https://github.com/civicrm/civicrm-core/pull/14417))**
+## <a name="bugs"></a>Bugs resolved
-- **Add angular-xeditable to angular ([14414](https://github.com/civicrm/civicrm-core/pull/14414))**
+### Core CiviCRM
-- **dev/core#1004 Fix regression causing notices on components screen ([14393](https://github.com/civicrm/civicrm-core/pull/14393))**
+- **Fix Notice errors caused by l10n rewriting of query so query outputed create
+ view rather than the create table
+ ([dev/translation#26](https://lab.civicrm.org/dev/translation/issues/26):
+ [14152](https://github.com/civicrm/civicrm-core/pull/14152))**
-- **5.14 ([14413](https://github.com/civicrm/civicrm-core/pull/14413))**
+ Fixes a notice `Undefined property: CRM_Core_DAO::$Create_Table in
+ CRM_Core_DAO::checkConstraintExists()..` when enabling a language in
+ multilingual mode.
-- **dev/core#389 [preliminary cleanup+ test] Standardise metadat for custom field ([14401](https://github.com/civicrm/civicrm-core/pull/14401))**
+- **File custom fields cause a fatal error when trying to merge
+ ([dev/core#723](https://lab.civicrm.org/dev/core/issues/723):
+ [14325](https://github.com/civicrm/civicrm-core/pull/14325))**
-- **dev/core#985 Fix trailing slash for urls on Windows ([14405](https://github.com/civicrm/civicrm-core/pull/14405))**
+ Fixes a fatal error when trying to merge two contacts with the custom fields
+ of type "file".
-- **Add EntityPageTrait ([14399](https://github.com/civicrm/civicrm-core/pull/14399))**
+- **Autogenerated .htaccess is for apache 2.2
+ ([dev/core#913](https://lab.civicrm.org/dev/core/issues/913):
+ [14158](https://github.com/civicrm/civicrm-core/pull/14158))**
-- **[NFC] PHPCS fixes. ([14402](https://github.com/civicrm/civicrm-core/pull/14402))**
+ Updates the auto-generated .htaccess so it no longer gives an internal error
+ for sites on apache 2.4.
-- **[REF] Stop passing cacheKey to refillCache ([14337](https://github.com/civicrm/civicrm-core/pull/14337))**
+- **Dedupe screen: single "flip" and multi-selected-flip have no effect
+ ([dev/core#932](https://lab.civicrm.org/dev/core/issues/932):
+ [14195](https://github.com/civicrm/civicrm-core/pull/14195))**
-- **Update test files to use PHPUnit6 notiation for classes ([14387](https://github.com/civicrm/civicrm-core/pull/14387))**
+ Fixes the dedupe screen "flip selected duplicates" button so that it
+ works as expected.
-- **Set title properly on Move/Copy/File on Case popup ([14347](https://github.com/civicrm/civicrm-core/pull/14347))**
+- **$this can not be used in static methods
+ ([dev/core#945](https://lab.civicrm.org/dev/core/issues/945):
+ [14217](https://github.com/civicrm/civicrm-core/pull/14217))**
-- **Set new inactive statuses as 'Chargeback' does not exist on new installs and that breaks Contributionrecur.create API ([14398](https://github.com/civicrm/civicrm-core/pull/14398))**
+ Fixes "$this can not be used in static methods" error thrown by
+ getIncompleteImportTables() in CRM/Contact/Import/ImportJob.php
-- **Use data provider to test both api versions ([14153](https://github.com/civicrm/civicrm-core/pull/14153))**
+- **CiviCRM 5.13.4 - Specified key was too long; max key length is 767 bytes
+ ([dev/core#978](https://lab.civicrm.org/dev/core/issues/978):
+ [14363](https://github.com/civicrm/civicrm-core/pull/14363))**
-- **Regenerate Event DAO for i18n ([14396](https://github.com/civicrm/civicrm-core/pull/14396))**
+ Fixes DB Error: `unknown error` if the system status check query fails.
-- **[REF] dev/core#998 make processDupes testable & add test ([14370](https://github.com/civicrm/civicrm-core/pull/14370))**
+- **userFrameworkResourceURL gets wrong trailing slash on windows
+ ([dev/core#985](https://lab.civicrm.org/dev/core/issues/985):
+ [14405](https://github.com/civicrm/civicrm-core/pull/14405))**
-- **[code-quality] [jcalendar] remove jcalendar usage from participant_register_date on event search ([14330](https://github.com/civicrm/civicrm-core/pull/14330))**
+ Fixes an issue where `addTrailingSlash` would generate a \ instead of a '/' on
+ Windows.
-- **Deprecate creating recipients from MailingJob.create. ([14097](https://github.com/civicrm/civicrm-core/pull/14097))**
+- **Can't set a non-breaking space as Thousands Separator in Administer >
+ Localization settings
+ ([dev/core#994](https://lab.civicrm.org/dev/core/issues/994):
+ [14376](https://github.com/civicrm/civicrm-core/pull/14376))**
-- **dev/core#953 Add test for updating email via import & ensuring it is primary ([14225](https://github.com/civicrm/civicrm-core/pull/14225))**
+ Removes a form rule preventing location separators from having more than one
+ character so that one can use a non-breaking space (or other string longer
+ than one character).
-- **dev/core#389 [preliminary cleanup] Standardise metadata for custom field use ([14386](https://github.com/civicrm/civicrm-core/pull/14386))**
+- **Add CRM_Utils_System::sendResponse(). Fix AssetBuilder's status-code on WP.
+ ([14468](https://github.com/civicrm/civicrm-core/pull/14468))**
-- **[REF] Remove reference to 'changePaymentInstrument' from updateFinancialAccounts as never passed in ([14353](https://github.com/civicrm/civicrm-core/pull/14353))**
+ Ensures that a consistent response is returned across CMS's in regards to
+ Asset Builder URLs. Before this change Wordpress would return a different
+ response then Drupal/Backdrop and E2E Unit tests would fail on Wordpress.
-- **Switch to calling Payment.create api when processing a refund from AdditionalPayment form ([14317](https://github.com/civicrm/civicrm-core/pull/14317))**
+- **Fix Exception API to save lower id number as contact 1
+ ([14448](https://github.com/civicrm/civicrm-core/pull/14448))**
-- **CRM_Extension_System - Only allow `test.*` extensions during headless testing. Hide from regular users. ([14392](https://github.com/civicrm/civicrm-core/pull/14392))**
+ Improves consistency when deduping contacts.
-- **Wysiwyg support for i18n event fields ([14384](https://github.com/civicrm/civicrm-core/pull/14384))**
+- **Fix Exception to remove result from duplicates
+ ([14447](https://github.com/civicrm/civicrm-core/pull/14447))**
-- **[NFC] Update package-lock and civicrm_generated to fix langague issues ([14385](https://github.com/civicrm/civicrm-core/pull/14385))**
+ Ensures that marking a non-duplicate contact removes them from the cached
+ duplicates table.
-- **dev/core#980 [phpunit test] update phpunit extends class to support later versions ([14333](https://github.com/civicrm/civicrm-core/pull/14333))**
+- **Fix upgrade on participant_register date
+ ([14427](https://github.com/civicrm/civicrm-core/pull/14427))**
-- **dev/financial#59 Fix unreleased regression on batch form ([14377](https://github.com/civicrm/civicrm-core/pull/14377))**
+ Fixes conversion routing on participant register date when upgrading to 5.15.
-- **dev/core#723 Fix fatal error when trying to merge contacts with a cus… ([14325](https://github.com/civicrm/civicrm-core/pull/14325))**
+- **Misc translation 'ts' fixes
+ ([14467](https://github.com/civicrm/civicrm-core/pull/14467))**
-- **dev/core#994 remove Thousands Separator can not have more than 1 character rule ([14376](https://github.com/civicrm/civicrm-core/pull/14376))**
+ Fixes a few places where `ts()` was used incorrectly so that is used correctly.
-- **5.14 ([14383](https://github.com/civicrm/civicrm-core/pull/14383))**
+- **Don't run search when editing smartgroup criteria
+ ([14464](https://github.com/civicrm/civicrm-core/pull/14464))**
-- **5.14 ([14380](https://github.com/civicrm/civicrm-core/pull/14380))**
+ Ensures that editing smart group criteria does not trigger a search on that
+ smartgroup before the criteria can be viewed.
-- **dev/core996 Ensure that the oldest created_date is retained no matter… ([14368](https://github.com/civicrm/civicrm-core/pull/14368))**
+- **Add angular-xeditable to angular
+ ([14414](https://github.com/civicrm/civicrm-core/pull/14414))**
-- **[REF] Activity Summary report - move temp table generation etc from postProcess to buildQuery, remove postProcess, don't skip in unit tests ([14375](https://github.com/civicrm/civicrm-core/pull/14375))**
+ Add angular xeditable component to our bower_components.
-- **[NFC] Update civicrm_generated data file following addition of contri… ([14371](https://github.com/civicrm/civicrm-core/pull/14371))**
+- **crmRouteBinder - Remove params from url if they equal their defaults
+ ([14211](https://github.com/civicrm/civicrm-core/pull/14211))**
-- **dev/core#905 Separate contribution_recur status_id option group from contribution option group ([14343](https://github.com/civicrm/civicrm-core/pull/14343))**
+ Ensures when a parameter is removed in the api4 explorer, it is also removed
+ from the url.
-- **5.14 ([14369](https://github.com/civicrm/civicrm-core/pull/14369))**
+- **Remove wasteful double-caching of settings metadata
+ ([14259](https://github.com/civicrm/civicrm-core/pull/14259))**
-- **[REF] move calculation of migrationInfo into the function that uses it ([14365](https://github.com/civicrm/civicrm-core/pull/14365))**
+ Ensures that Settings metadata is cached once per domain and that
+ `hook_civicrm_alterSettingsMetaData()` is invoked only once per domain.
-- **Fix inconsistent handling when searching contribution text fields ([14354](https://github.com/civicrm/civicrm-core/pull/14354))**
+- **Remove CIVICRM_TEMP_FORCE_UTF8; deprecate TempTable::setUtf8()
+ ([14004](https://github.com/civicrm/civicrm-core/pull/14004))**
-- **[REF] extract buildClause from CRM_Report_Form_Event_Income ([14098](https://github.com/civicrm/civicrm-core/pull/14098))**
+ Continues work to phase out CIVICRM_TEMP_FORCE_UTF8.
-- **Fix name of cache key column to be all lower case rather than camel c… ([14359](https://github.com/civicrm/civicrm-core/pull/14359))**
+- **Stop overriding is_active default when saving new relationship
+ ([14199](https://github.com/civicrm/civicrm-core/pull/14199))**
-- **Remove confusing pass params by ref ([14360](https://github.com/civicrm/civicrm-core/pull/14360))**
+ Ensures that new relationships are saved as active by default.
-- **dev/core#982 add dedupe.getstatistics api ([14298](https://github.com/civicrm/civicrm-core/pull/14298))**
+- **Enotice fix on creating a smart group
+ ([14180](https://github.com/civicrm/civicrm-core/pull/14180))**
-- **Translation in billingblock.tpl - dropping 'Information' ([14358](https://github.com/civicrm/civicrm-core/pull/14358))**
+ Fixes an E-notice `Notice: Undefined index: component_mode in
+ CRM_Contact_Form_Task_SaveSearch->PreProcess()` when creating a smart group.
-- **Don't apply api3 pre/post processing to api4 actions ([14357](https://github.com/civicrm/civicrm-core/pull/14357))**
+- **Ensure that the oldest creation date is preserved when deduping
+ ([dev/core#996](https://lab.civicrm.org/dev/core/issues/996):
+ [14368](https://github.com/civicrm/civicrm-core/pull/14368))**
-- **Fix bug where contribution status is mishandled if label is changed ([14352](https://github.com/civicrm/civicrm-core/pull/14352))**
+- **Recurring activities don't carry over custom data and tags
+ ([CRM-21832](https://issues.civicrm.org/jira/browse/CRM-21832),
+ [14183](https://github.com/civicrm/civicrm-core/pull/14183))**
-- **5.14 ([14356](https://github.com/civicrm/civicrm-core/pull/14356))**
+- **Disabling Alphabetical Pager is not respected for events and contribution
+ pages. ([dev/core#705](https://lab.civicrm.org/dev/core/issues/705):
+ [14203](https://github.com/civicrm/civicrm-core/pull/14203))**
-- **dev/core#627 Extend a unit test to verify fix made by Sunil ([14350](https://github.com/civicrm/civicrm-core/pull/14350))**
+- **When creating relationship types don't munge names
+ ([14216](https://github.com/civicrm/civicrm-core/pull/14216))**
-- **Remove duplicate line in case BAO ([14345](https://github.com/civicrm/civicrm-core/pull/14345))**
+- **CRM_Extension_System - Only allow `test.*` extensions during headless
+ testing. Hide from regular users.
+ ([14392](https://github.com/civicrm/civicrm-core/pull/14392))**
-- **correct syntax "IS NOT NULL" to get pledge payment count ([13374](https://github.com/civicrm/civicrm-core/pull/13374))**
+- **Fix name of cache key column to be all lower case rather than camel case in
+ civicrm_prevnext_cache
+ ([14359](https://github.com/civicrm/civicrm-core/pull/14359))**
-- **[REF] Remove input format function from deprecated utils to the only place that calls it ([14342](https://github.com/civicrm/civicrm-core/pull/14342))**
+- **Don't apply api3 pre/post processing to api4 actions
+ ([14357](https://github.com/civicrm/civicrm-core/pull/14357))**
-- **[NFC] phpdoc cleanup ([14335](https://github.com/civicrm/civicrm-core/pull/14335))**
+- **Fix fatal error when full group by mysql mode enabled & selecting contacts
+ ([14331](https://github.com/civicrm/civicrm-core/pull/14331))**
-- **Remove never-called function _civicrm_api3_deprecated_contact_check_custom_params ([14341](https://github.com/civicrm/civicrm-core/pull/14341))**
+- **Caches - Normalize dependency on php-cache integration-tests
+ ([14423](https://github.com/civicrm/civicrm-core/pull/14423))**
-- **[REF] extract isLiveMode ([14336](https://github.com/civicrm/civicrm-core/pull/14336))**
+- **Cache/IntegrationTests - Remove. This can be replaced by composer dependency
+ ([255](https://github.com/civicrm/civicrm-packages/pull/255))**
-- **[NFC] Further tests tidy up following removing of dbunit ([14344](https://github.com/civicrm/civicrm-core/pull/14344))**
+## CiviCase
-- **Fix fatal error when full group by mysql mode enabled & selecting contacts ([14331](https://github.com/civicrm/civicrm-core/pull/14331))**
+- **Case report showing 1 result
+ ([dev/core#743](https://lab.civicrm.org/dev/core/issues/743):
+ [14082](https://github.com/civicrm/civicrm-core/pull/14082))**
-- **Unit test for FGB error in #14331 ([14340](https://github.com/civicrm/civicrm-core/pull/14340))**
+ Fixes the Case Summary report so that it properly filters on case
+ relationships.
-- **[REF] use generic loadStandardSearchOptionsFromUrl ([14338](https://github.com/civicrm/civicrm-core/pull/14338))**
+- **Set title properly on Move/Copy/File on Case popup
+ ([14347](https://github.com/civicrm/civicrm-core/pull/14347))**
-- **dev/core#898: use user.login route for D8 login URL instead of user.page ([14138](https://github.com/civicrm/civicrm-core/pull/14138))**
+ Ensures when clicking "Move to Case"/"Copy to Case" from the Manage cases
+ activity list the title is set correctly and stays set correctly instead of
+ reverting to "File on Case".
-- **dev/core#913 - update autogenerated .htaccess for apache 2.4 ([14158](https://github.com/civicrm/civicrm-core/pull/14158))**
+- **Manage Case search filter "Deleted Activities" no longer working
+ ([dev/core#1022](https://lab.civicrm.org/dev/core/issues/1022):
+ [14445](https://github.com/civicrm/civicrm-core/pull/14445))**
-- ** [dbunit test] remove dbunit dependency ([14328](https://github.com/civicrm/civicrm-core/pull/14328))**
+ Fixes the search filter "Deleted Activities" on the Manage Cases form.
-- ** Reduce cache bypasses - do not bypass custom metadata cache in setGroupTree ([14292](https://github.com/civicrm/civicrm-core/pull/14292))**
+- **Closing a case gives a warning notice
+ ([dev/core#896](https://lab.civicrm.org/dev/core/issues/896):
+ [14160](https://github.com/civicrm/civicrm-core/pull/14160))**
-- **Fix test / possible live error on submitting credit card renewals ([14316](https://github.com/civicrm/civicrm-core/pull/14316))**
-- **[REF] Extract function to get cached duplicate matches ([14324](https://github.com/civicrm/civicrm-core/pull/14324))**
+## CiviContribute
-- **[REF] minor code re-org ([14318](https://github.com/civicrm/civicrm-core/pull/14318))**
+- **Bug in storing settings for CiviContribute component
+ ([dev/financial#54](https://lab.civicrm.org/dev/financial/issues/54):
+ [14267](https://github.com/civicrm/civicrm-core/pull/14267))**
-- **[NFC] Docblock fixes ([14323](https://github.com/civicrm/civicrm-core/pull/14323))**
+ Ensures deferred revenue settings are respected.
-- **dev/core#879 SMTP help text is misleading - references the wrong admin screen ([14329](https://github.com/civicrm/civicrm-core/pull/14329))**
+- **Changing financial type on a contribution records incorrect financial items
+ ([dev/financial#56](https://lab.civicrm.org/dev/financial/issues/56):
+ [14309](https://github.com/civicrm/civicrm-core/pull/14309))**
-- **dev/core#830 Expose cancel_reason field by cleaning up the cancel template to use entity field template ([13997](https://github.com/civicrm/civicrm-core/pull/13997))**
+ Fixes a bug where changing the financial type on a contribution record would
+ result in a sales tax row being added regardless of whether sales tax was
+ turned on.
-- **dev/core#980 [dbunit] remove dependency on discontinued dbunit ([14321](https://github.com/civicrm/civicrm-core/pull/14321))**
+- **Fix financial ACL permissions to respect check_permissions
+ ([14118](https://github.com/civicrm/civicrm-core/pull/14118))**
-- **(NFC) Update node package versions to latest ones ([14087](https://github.com/civicrm/civicrm-core/pull/14087))**
+ Fixes bug where `check_permissions=0` is ignored when doing contribution.get
+ in conjunction with financial ACLs.
-- **dev/core/issues/743, Donot join relationship table when not required ([14082](https://github.com/civicrm/civicrm-core/pull/14082))**
+- **Elavon payment processor seems to no longer accept url encoded emails
+ ([dev/core#966](https://lab.civicrm.org/dev/core/issues/966):
+ [14263](https://github.com/civicrm/civicrm-core/pull/14263))**
-- **[NFC] Fix issue with Job Manager Test giving out a warning ([14327](https://github.com/civicrm/civicrm-core/pull/14327))**
+ Fixes payment processing for sites using an Elavon processor.
-- **5.14 ([14326](https://github.com/civicrm/civicrm-core/pull/14326))**
+- **Set new inactive statuses as 'Chargeback' does not exist on new installs and
+ that breaks Contributionrecur.create API
+ ([14398](https://github.com/civicrm/civicrm-core/pull/14398))**
-- **Add unit test for merge handling on custom data. ([14310](https://github.com/civicrm/civicrm-core/pull/14310))**
+- **Fix inconsistent handling when searching contribution text fields
+ ([14354](https://github.com/civicrm/civicrm-core/pull/14354))**
-- **[NFC] Fix comment block for variable declarations ([14314](https://github.com/civicrm/civicrm-core/pull/14314))**
+- **Fix bug where contribution status is mishandled if label is changed
+ ([14352](https://github.com/civicrm/civicrm-core/pull/14352))**
-- **[dbunit] remove dependencies on discontinued dbunit test package ([14319](https://github.com/civicrm/civicrm-core/pull/14319))**
+## CiviEvent
-- **[dbunit] remove dbunit dependency from MembershipRenewalTest ([14315](https://github.com/civicrm/civicrm-core/pull/14315))**
+- **Sorting participants ignored search values.
+ ([dev/core#981](https://lab.civicrm.org/dev/core/issues/981):
+ [14313](https://github.com/civicrm/civicrm-core/pull/14313))**
-- **(dev/core#959) Expose contribution page in Contribution Summary report ([14249](https://github.com/civicrm/civicrm-core/pull/14249))**
+ Ensures when searching for participants for a specific event and then sorting
+ the results the search parameters are respected, before this change all
+ participants for all events would be displayed.
-- **[REF] Cleanup input & output on paymentActivityCreate & improve test ([14269](https://github.com/civicrm/civicrm-core/pull/14269))**
+- **Fix deprecation notice on manage events page
+ ([14289](https://github.com/civicrm/civicrm-core/pull/14289))**
-- **Fix legacy IPN endpoint for Drupal (gitlab issue 973) ([14272](https://github.com/civicrm/civicrm-core/pull/14272))**
+ Removes a `User deprecated function: Deprecated function
+ CRM_Event_BAO_Event::CheckPermission` notice from the manage events page.
-- **dev/core#980 [test-dbunit] Cleanup profile test to not use discontinuted dbunit ([14279](https://github.com/civicrm/civicrm-core/pull/14279))**
+- **Backoffice participant transfer form does not populate contact reference
+ field ([dev/core#888](https://lab.civicrm.org/dev/core/issues/888):
+ [14102](https://github.com/civicrm/civicrm-core/pull/14102))**
-- **dev/drupal#19 Drupal8: fix bootstrap when used by the REST API ([14302](https://github.com/civicrm/civicrm-core/pull/14302))**
+## CiviMail
-- **dev/core#981 Sorting participants ignored search values. ([14313](https://github.com/civicrm/civicrm-core/pull/14313))**
+- **Deletion of SMS provider caused all scheduled reminders to fail to be sent
+ (begins work for [dev/core#369](https://lab.civicrm.org/dev/core/issues/369):
+ [14266](https://github.com/civicrm/civicrm-core/pull/14266))**
-- **dev/financial#56 Fix inappropriate sales tax row addition ([14309](https://github.com/civicrm/civicrm-core/pull/14309))**
+ Before this change if the Scheduled reminder job was triggered and there were
+ active SMS scheduled reminders for which the SMS Provider has been deleted the
+ job would fail with the message "Provider not known or not provided" and no
+ scheduled reminders would go out this change makes it so that scheduled
+ reminders for which a SMS Provider exists will go out even if there are some
+ scheduled SMS reminders for which there is not an SMS Provider.
-- **dev/joomla#11 Fix php warning when viewing profiles ([14312](https://github.com/civicrm/civicrm-core/pull/14312))**
+- **E_NOTICE when creating bulk SMS
+ ([dev/core#1023](https://lab.civicrm.org/dev/core/issues/1023):
+ [14449](https://github.com/civicrm/civicrm-core/pull/14449))**
-- **NFC Fix DAO Style issues ([14307](https://github.com/civicrm/civicrm-core/pull/14307))**
+ Fixes E_NOTICE `Notice: Undefined index: Subject in
+ civicrm_api3_mailing_preview()` when creating bulk SMS.
-- **[NFC] reformat UFFieldTest ([14308](https://github.com/civicrm/civicrm-core/pull/14308))**
+- **"Confirm this subscription" URL generated by MailingEventSubscribe API
+ should always be a front-end
+ URL([dev/core#1005](https://lab.civicrm.org/dev/core/issues/1005):
+ [14389](https://github.com/civicrm/civicrm-core/pull/14389))**
-- **Make apiRequst nextId accessible for api4 constructor ([14311](https://github.com/civicrm/civicrm-core/pull/14311))**
+ Ensures that the "Confirm this subscription" URL included in bulk emails is
+ always a front end URL.
-- **crmRouteBinder - Remove params from url if they equal their defaults ([14211](https://github.com/civicrm/civicrm-core/pull/14211))**
+- **SMTP help text is misleading - references the wrong admin screen
+ ([dev/core#879](https://lab.civicrm.org/dev/core/issues/879):
+ [14329](https://github.com/civicrm/civicrm-core/pull/14329))**
-- **[REF] extract buildGroupTree function ([14303](https://github.com/civicrm/civicrm-core/pull/14303))**
+- **[Outbound mail admin form] fix some more notices resulting from recent
+ change ([14433](https://github.com/civicrm/civicrm-core/pull/14433))**
-- **[REF] Test class cleanup - Extract function to create nuanced custom fields to a trait ([14301](https://github.com/civicrm/civicrm-core/pull/14301))**
+## CiviPledge
-- **dev/core#888 - Backoffice participant transfer form does not populate… ([14102](https://github.com/civicrm/civicrm-core/pull/14102))**
+- **incorrect capitalization in default Pledges - Acknowledgement message
+ template ([dev/core#1010](https://lab.civicrm.org/dev/core/issues/1010):
+ [14465](https://github.com/civicrm/civicrm-core/pull/14465) and
+ [14469](https://github.com/civicrm/civicrm-core/pull/14469))**
-- **[NFC] fix comment blocks capitalising null ([14306](https://github.com/civicrm/civicrm-core/pull/14306))**
+ Ensures that Pledge acknowledgments use correct capitalization and the
+ `email_greeting`.
-- **[NFC] fix more places where var is declared as boolean rather than bool ([14305](https://github.com/civicrm/civicrm-core/pull/14305))**
+- **correct syntax "IS NOT NULL" to get pledge payment count
+ ([13374](https://github.com/civicrm/civicrm-core/pull/13374))**
-- **[NFC] formatting & comment fixes - Regenerate DAO files ([14304](https://github.com/civicrm/civicrm-core/pull/14304))**
+ Ensures when editing a payment for a pledge the screen does not freeze because
+ the API count returns 0.
-- **[NFC] ProfileTest class - formatting & general cleanup ([14282](https://github.com/civicrm/civicrm-core/pull/14282))**
+## Drupal Integration
-- **[NFC] Add trailing comma to pseudoconstant array in DAOs ([14295](https://github.com/civicrm/civicrm-core/pull/14295))**
+- **incorrect Drupal 8 login URL
+ ([dev/core#898]https://lab.civicrm.org/dev/core/issues/898():
+ [14138](https://github.com/civicrm/civicrm-core/pull/14138))**
-- **[REF] Fix pointless use of CRM_Utils_Array::value in Campaign BAO ([14300](https://github.com/civicrm/civicrm-core/pull/14300))**
+ If you create a public contribution page on a Drupal 8 site, it will include a
+ login link for unauthenticated users, with parameters ?destination=... to
+ direct back to the contribution page after login. Fixes this link for
+ recent Drupal versionsso it points to the right login url.
-- **[NFC] Fix variable types in DAO doc blocks ([14294](https://github.com/civicrm/civicrm-core/pull/14294))**
+- **Drupal8: Implement set UF locale/language (affects mailing tokens)
+ ([dev/drupal#19](https://lab.civicrm.org/dev/drupal/issues/19):
+ [14302](https://github.com/civicrm/civicrm-core/pull/14302) and
+ [12152](https://github.com/civicrm/civicrm-core/pull/12152))**
-- **[NFC] fix docblock types from boolean to bool ([14296](https://github.com/civicrm/civicrm-core/pull/14296))**
+ Fixes a 500 error when calling the REST API endpoint in Drupal 8 and fixes a
+ bug when using Drupal 8 with a multilingual site where mailing token links
+ were not taking the user to the page in the expected language.
-- **[code-cleanup] remove orderBy param from getDuplicatePairs, it is not used ([14297](https://github.com/civicrm/civicrm-core/pull/14297))**
+- **Drupal8/jquery
+ ([dev/drupal#68](https://lab.civicrm.org/dev/drupal/issues/68):
+ [14442](https://github.com/civicrm/civicrm-core/pull/14442))**
-- **dev/core#980 [dbunit] QueryTest Remove dbunit dependency on discontinued dbunit ([14283](https://github.com/civicrm/civicrm-core/pull/14283))**
+ Fixes a Javascript error if Drupal's jQuery is not loaded (when its not
+ needed).
-- **[NFC] array formatting, some comments ([14291](https://github.com/civicrm/civicrm-core/pull/14291))**
+- **Fix legacy IPN endpoint for Drupal
+ ([dev/core#973](https://lab.civicrm.org/dev/core/issues/973):
+ [14272](https://github.com/civicrm/civicrm-core/pull/14272))**
-- **[REF] Simplify ACL page template ([14288](https://github.com/civicrm/civicrm-core/pull/14288))**
+ Fixes a `PHP Fatal error: Uncaught Error: Call to undefined function
+ variable_get()` error when bootstraping Drupal for Drupal sites collecting
+ recurring PayPal donations.
-- **dev/financial#54 Fix mishandling of deferred revenue settings ([14267](https://github.com/civicrm/civicrm-core/pull/14267))**
+- **Don't call session_start() before CMS bootstrap (PHP 7.2 compat)
+ ([14074](https://github.com/civicrm/civicrm-core/pull/14074))**
-- **Fix deprecation notice on manage events page ([14289](https://github.com/civicrm/civicrm-core/pull/14289))**
+ Fixes a `Warning: ini_set(): A session is active` error for Drupal sites
+ running PHP > 7.1.
-- **5.14 to master ([14285](https://github.com/civicrm/civicrm-core/pull/14285))**
+## Joomla Integration
-- **dev/drupal#19 Drupal8: Implement set UF locale/language (affects mailing tokens) ([12152](https://github.com/civicrm/civicrm-core/pull/12152))**
+- **Fix php warning when viewing profiles
+ ([dev/joomla#11](https://lab.civicrm.org/dev/joomla/issues/11):
+ [14312](https://github.com/civicrm/civicrm-core/pull/14312))**
-- **[NFC] Update Language to be more user friendly when checking logs ([14278](https://github.com/civicrm/civicrm-core/pull/14278))**
+## <a name="misc"></a>Miscellany
-- **Test cleanup to remove references to discontinued package dbunit ([14276](https://github.com/civicrm/civicrm-core/pull/14276))**
+- **Declare API Key as a protected field for future use
+ ([14274](https://github.com/civicrm/civicrm-core/pull/14274))**
-- **Try enabling api4 extension in test suite ([14241](https://github.com/civicrm/civicrm-core/pull/14241))**
+- **Make apiRequst nextId accessible for api4 constructor
+ ([14311](https://github.com/civicrm/civicrm-core/pull/14311))**
-- **Declare API Key as a protected field for future use ([14274](https://github.com/civicrm/civicrm-core/pull/14274))**
+- **Remove confusing pass params by ref
+ ([14360](https://github.com/civicrm/civicrm-core/pull/14360))**
-- **dev/core#369 Prevent hard fail of API Job when SMS provider has been deleted ([14266](https://github.com/civicrm/civicrm-core/pull/14266))**
+- **Add EntityPageTrait
+ ([14399](https://github.com/civicrm/civicrm-core/pull/14399))**
-- **[TEST SUITE] Remove some use of dbunit from tests ([14271](https://github.com/civicrm/civicrm-core/pull/14271))**
+- **[code-quality] [jcalendar] remove jcalendar usage from
+ participant_register_date on event search
+ ([14330](https://github.com/civicrm/civicrm-core/pull/14330))**
-- **[NFC] array formatting in CRM_Dedupe_MergerTest ([14273](https://github.com/civicrm/civicrm-core/pull/14273))**
+- **Deprecate creating recipients from MailingJob.create.
+ ([14097](https://github.com/civicrm/civicrm-core/pull/14097))**
-- **add developer tab for summary report ([14254](https://github.com/civicrm/civicrm-core/pull/14254))**
+- **Fix running of CRM_Utils_MoneyTest on PHPUnit6+
+ ([14424](https://github.com/civicrm/civicrm-core/pull/14424))**
-- **[ref] Remove reference symbol from 2 variables ([14270](https://github.com/civicrm/civicrm-core/pull/14270))**
+- **Remove broken delete from customGroupCreate
+ ([14239](https://github.com/civicrm/civicrm-core/pull/14239))**
-- **[REF][Test] Remove call to CRM_Contribute_BAO_Contribution::recordAdditionalPayment in favour of payment create ([14137](https://github.com/civicrm/civicrm-core/pull/14137))**
+- **Remove duplicate line in case BAO
+ ([14345](https://github.com/civicrm/civicrm-core/pull/14345))**
-- **[REF+test] clean up code for getting labels for merge screen, stdise ([14260](https://github.com/civicrm/civicrm-core/pull/14260))**
+- **Switch to calling Payment.create api when processing a refund from
+ AdditionalPayment form
+ ([14317](https://github.com/civicrm/civicrm-core/pull/14317))**
-- **[REF] Centralize logic for resolving settings pseudoconstants ([14264](https://github.com/civicrm/civicrm-core/pull/14264))**
+- **Updating contact (with no email) via import adding email doesn't set email
+ as primary (adds test for
+ [dev/core#953](https://lab.civicrm.org/dev/core/issues/953):
+ [14225](https://github.com/civicrm/civicrm-core/pull/14225))**
-- **Remove wasteful double-caching of settings metadata ([14259](https://github.com/civicrm/civicrm-core/pull/14259))**
+- **Cancel first contribution associated to membership, cancels the membership
+ (preliminary work for
+ [dev/core#927](https://lab.civicrm.org/dev/core/issues/927):
+ [14197](https://github.com/civicrm/civicrm-core/pull/14197))**
-- **dev/core#964 Add start date and end date values on page contribution widget ajax response ([14262](https://github.com/civicrm/civicrm-core/pull/14262))**
+- **Searching for removed contacts in a smart group doesn't work (preliminary
+ work for [dev/core#926](https://lab.civicrm.org/dev/core/issues/926):
+ [14181](https://github.com/civicrm/civicrm-core/pull/14181))**
-- **dev/core/966 skip urlencode for email in elavon xml ([14263](https://github.com/civicrm/civicrm-core/pull/14263))**
+- **When using custom fields for smart group criteria with relative dates the
+ group does not respect the relative date over time (preliminary work for
+ [dev/core#389](https://lab.civicrm.org/dev/core/issues/389)[14401]:
+ (https://github.com/civicrm/civicrm-core/pull/14401) and
+ [14386](https://github.com/civicrm/civicrm-core/pull/14386))**
-- **[REF] Remove extraneous variable ([14261](https://github.com/civicrm/civicrm-core/pull/14261))**
+- **Remove instances of $dao->free
+ ([dev/core#562](https://lab.civicrm.org/dev/core/issues/562):
+ [14179](https://github.com/civicrm/civicrm-core/pull/14179))**
-- **[REF] Super Minor code readability fix ([14258](https://github.com/civicrm/civicrm-core/pull/14258))**
+- **Correct syntax for Get pledge payment count (extend test coverage for
+ [dev/core#627](https://lab.civicrm.org/dev/core/issues/627):
+ [14350](https://github.com/civicrm/civicrm-core/pull/14350))**
-- **5.14 ([14257](https://github.com/civicrm/civicrm-core/pull/14257))**
+- **Remove never-called function
+ _civicrm_api3_deprecated_contact_check_custom_params
+ ([14341](https://github.com/civicrm/civicrm-core/pull/14341))**
-- **5.14 ([14248](https://github.com/civicrm/civicrm-core/pull/14248))**
+- **IDE re-format of tools directory
+ ([14177](https://github.com/civicrm/civicrm-core/pull/14177))**
-- **Remove broken delete from customGroupCreate ([14239](https://github.com/civicrm/civicrm-core/pull/14239))**
+- **Unit test for FGB error in #14331
+ ([14340](https://github.com/civicrm/civicrm-core/pull/14340))**
-- **dev/core#926 [ref] adds a test & does a preliminary extraction ([14181](https://github.com/civicrm/civicrm-core/pull/14181))**
+- **Test tweaks that *might* help with intermittant test weirdness
+ ([14458](https://github.com/civicrm/civicrm-core/pull/14458))**
-- **dev/core#932 Fix dedupe contacts flip selection ([14195](https://github.com/civicrm/civicrm-core/pull/14195))**
+- **[TEST SUITE] Remove some use of dbunit from tests
+ ([14271](https://github.com/civicrm/civicrm-core/pull/14271))**
-- **dev/core#896 - fix notice warning on closing a case ([14160](https://github.com/civicrm/civicrm-core/pull/14160))**
+- **Test cleanup to remove references to discontinued package dbunit
+ ([14276](https://github.com/civicrm/civicrm-core/pull/14276))**
-- **REF Refactor to reduce duplication on payment forms ([14206](https://github.com/civicrm/civicrm-core/pull/14206))**
+- **[dbunit test] remove dbunit dependency
+ ([14328](https://github.com/civicrm/civicrm-core/pull/14328))**
-- **Update testGetActivityAccessCiviCRMEnough test for clarity ([14226](https://github.com/civicrm/civicrm-core/pull/14226))**
+- **Add unit test for merge handling on custom data.
+ ([14310](https://github.com/civicrm/civicrm-core/pull/14310))**
-- **5.14 ([14238](https://github.com/civicrm/civicrm-core/pull/14238))**
+- **Fix test / possible live error on submitting credit card renewals
+ ([14316](https://github.com/civicrm/civicrm-core/pull/14316))**
-- **Fix financial acl permissions to respect check_permissions ([14118](https://github.com/civicrm/civicrm-core/pull/14118))**
+- **Update testGetActivityAccessCiviCRMEnough test for clarity
+ ([14226](https://github.com/civicrm/civicrm-core/pull/14226))**
-- **When creating relationship types don't munge names ([14216](https://github.com/civicrm/civicrm-core/pull/14216))**
+- **[REF] Move retrieval of basicSearchFields to 'get' fn
+ ([14476](https://github.com/civicrm/civicrm-core/pull/14476))**
-- **5.14 to master ([14227](https://github.com/civicrm/civicrm-core/pull/14227))**
+- **[REF] Remove input format function from deprecated utils to the only place
+ that calls it ([14342](https://github.com/civicrm/civicrm-core/pull/14342))**
-- **dev/core#945 - fix use of $this error in static method ([14217](https://github.com/civicrm/civicrm-core/pull/14217))**
+- **[REF] extract isLiveMode
+ ([14336](https://github.com/civicrm/civicrm-core/pull/14336))**
-- **Remove CIVICRM_TEMP_FORCE_UTF8; deprecate TempTable::setUtf8() ([14004](https://github.com/civicrm/civicrm-core/pull/14004))**
+- **[REF] use generic loadStandardSearchOptionsFromUrl
+ ([14338](https://github.com/civicrm/civicrm-core/pull/14338))**
-- **Pass the RFC 3164 severity level thru to drupal watchdog. ([14185](https://github.com/civicrm/civicrm-core/pull/14185))**
+- **[REF] Extract function to get cached duplicate matches
+ ([14324](https://github.com/civicrm/civicrm-core/pull/14324))**
-- **(dev/core#705) Disabling Alphabetical Pager is not respected for events ([14203](https://github.com/civicrm/civicrm-core/pull/14203))**
+- **[REF] minor code re-org
+ ([14318](https://github.com/civicrm/civicrm-core/pull/14318))**
-- **5.14 ([14205](https://github.com/civicrm/civicrm-core/pull/14205))**
+- **[REF] Remove extraneous variable
+ ([14261](https://github.com/civicrm/civicrm-core/pull/14261))**
-- **[REF+ test] start process of cleaning up payment activity handling ([14198](https://github.com/civicrm/civicrm-core/pull/14198))**
+- **[REF] Centralize logic for resolving settings pseudoconstants
+ ([14264](https://github.com/civicrm/civicrm-core/pull/14264))**
-- **dev/core#927 [ref] Extract contribution.cancel function ([14197](https://github.com/civicrm/civicrm-core/pull/14197))**
+- **[REF] Super Minor code readability fix
+ ([14258](https://github.com/civicrm/civicrm-core/pull/14258))**
-- **Stop overriding is_active default when saving new relationship ([14199](https://github.com/civicrm/civicrm-core/pull/14199))**
+- **[REF] Move copyCustomFields function from Event to Core_DAO for
+ re-usablibilty ([14171](https://github.com/civicrm/civicrm-core/pull/14171))**
-- **5.14 ([14202](https://github.com/civicrm/civicrm-core/pull/14202))**
+- **[REF] Remove reference symbol from 2 variables
+ ([14270](https://github.com/civicrm/civicrm-core/pull/14270))**
-- **contributor-keys file - jira/lab.c.o username fix ([14200](https://github.com/civicrm/civicrm-core/pull/14200))**
+- **[cleanup] Remove deprecated pattern &CRM_Core_Config::singleton()
+ ([14178](https://github.com/civicrm/civicrm-core/pull/14178))**
-- **IDE re-format of tools directory ([14177](https://github.com/civicrm/civicrm-core/pull/14177))**
+- **[REF] Refactor to reduce duplication on payment forms
+ ([14206](https://github.com/civicrm/civicrm-core/pull/14206))**
-- **Enotice fix on creating a smart group ([14180](https://github.com/civicrm/civicrm-core/pull/14180))**
+- **[REF+ test] start process of cleaning up payment activity handling
+ ([14198](https://github.com/civicrm/civicrm-core/pull/14198))**
-- **5.14 ([14192](https://github.com/civicrm/civicrm-core/pull/14192))**
+- **[REF][Test] Remove call to
+ CRM_Contribute_BAO_Contribution::recordAdditionalPayment in favour of payment
+ create ([14137](https://github.com/civicrm/civicrm-core/pull/14137))**
-- **Don't call session_start() before CMS bootstrap (PHP 7.2 compat) ([14074](https://github.com/civicrm/civicrm-core/pull/14074))**
+- **[REF+test] clean up code for getting labels for merge screen, stdise
+ ([14260](https://github.com/civicrm/civicrm-core/pull/14260))**
-- **[ref] Move copyCustomFields function from Event to Core_DAO for re-usablibilty ([14171](https://github.com/civicrm/civicrm-core/pull/14171))**
+- **[REF] Simplify ACL page template
+ ([14288](https://github.com/civicrm/civicrm-core/pull/14288))**
-- **dev/translation#26 Fix Notice errors caused by l10n rewriting of quer… ([14152](https://github.com/civicrm/civicrm-core/pull/14152))**
+- **[REF] Fix pointless use of CRM_Utils_Array::value in Campaign BAO
+ ([14300](https://github.com/civicrm/civicrm-core/pull/14300))**
-- **[cleanup] Remove deprecated pattern &CRM_Core_Config::singleton() ([14178](https://github.com/civicrm/civicrm-core/pull/14178))**
+- **[code-cleanup] remove orderBy param from getDuplicatePairs, it is not used
+ ([14297](https://github.com/civicrm/civicrm-core/pull/14297))**
-- **dev/core#562 [cleanup] remove some more instances of ->free() ([14179](https://github.com/civicrm/civicrm-core/pull/14179))**
+- **[REF] extract buildGroupTree function
+ ([14303](https://github.com/civicrm/civicrm-core/pull/14303))**
-- **Cache/IntegrationTests - Remove. This can be replaced by composer dependency ([255](https://github.com/civicrm/civicrm-packages/pull/255))**
+- **[REF] Test class cleanup - Extract function to create nuanced custom fields
+ to a trait ([14301](https://github.com/civicrm/civicrm-core/pull/14301))**
-- **Get LegacySimpleCacheTest complient with phpunit6+ ([254](https://github.com/civicrm/civicrm-packages/pull/254))**
+- **[REF] Cleanup input & output on paymentActivityCreate & improve test
+ ([14269](https://github.com/civicrm/civicrm-core/pull/14269))**
-- **5.14 ([252](https://github.com/civicrm/civicrm-packages/pull/252))**
+- **[REF] move calculation of migrationInfo into the function that uses it
+ ([14365](https://github.com/civicrm/civicrm-core/pull/14365))**
-## <a name="misc"></a>Miscellany
+- **[REF] extract buildClause from CRM_Report_Form_Event_Income
+ ([14098](https://github.com/civicrm/civicrm-core/pull/14098))**
+
+- **[REF] Activity Summary report - move temp table generation etc from
+ postProcess to buildQuery, remove postProcess, don't skip in unit tests
+ ([14375](https://github.com/civicrm/civicrm-core/pull/14375))**
+
+- **[REF] Activity form - very minor tidy up
+ ([14434](https://github.com/civicrm/civicrm-core/pull/14434))**
+
+- **[REF] Stop passing cacheKey to refillCache
+ ([14337](https://github.com/civicrm/civicrm-core/pull/14337))**
+
+- **[REF] dev/core#998 make processDupes testable & add test
+ ([14370](https://github.com/civicrm/civicrm-core/pull/14370))**
+
+- **[REF] Remove reference to 'changePaymentInstrument' from
+ updateFinancialAccounts as never passed in
+ ([14353](https://github.com/civicrm/civicrm-core/pull/14353))**
+
+- **[NFC][test-fix] centralise use of assertLike for comparing sql
+ ([14470](https://github.com/civicrm/civicrm-core/pull/14470))**
+
+- **[nfc] [test] Skip testGetFromTo on date transition
+ ([14472](https://github.com/civicrm/civicrm-core/pull/14472))**
+
+- **[NFC] Fix issue with Job Manager Test giving out a warning
+ ([14327](https://github.com/civicrm/civicrm-core/pull/14327))**
+
+- **[NFC] Fix comment block for variable declarations
+ ([14314](https://github.com/civicrm/civicrm-core/pull/14314))**
+
+- **(NFC) Update node package versions to latest ones
+ ([14087](https://github.com/civicrm/civicrm-core/pull/14087))**
+
+- **[NFC] Update civicrm_generated data file following addition of contri…
+ ([14371](https://github.com/civicrm/civicrm-core/pull/14371))**
+
+- **(NFC) Remove without param tests
+ ([14454](https://github.com/civicrm/civicrm-core/pull/14454))**
+
+- **[NFC] PHPCS fixes.
+ ([14402](https://github.com/civicrm/civicrm-core/pull/14402))**
+
+- **[NFC] Update package-lock and civicrm_generated to fix langague issues
+ ([14385](https://github.com/civicrm/civicrm-core/pull/14385))**
+
+- **[NFC] phpdoc cleanup
+ ([14335](https://github.com/civicrm/civicrm-core/pull/14335))**
+
+- **[NFC] Fix variable types in DAO doc blocks
+ ([14294](https://github.com/civicrm/civicrm-core/pull/14294))**
+
+- **[NFC] fix docblock types from boolean to bool
+ ([14296](https://github.com/civicrm/civicrm-core/pull/14296))**
+
+- **[NFC] array formatting in CRM_Dedupe_MergerTest
+ ([14273](https://github.com/civicrm/civicrm-core/pull/14273))**
+
+- **[NFC] Update Language to be more user friendly when checking logs
+ ([14278](https://github.com/civicrm/civicrm-core/pull/14278))**
+
+- **[NFC] array formatting, some comments
+ ([14291](https://github.com/civicrm/civicrm-core/pull/14291))**
+
+- **[NFC] fix comment blocks capitalising null
+ ([14306](https://github.com/civicrm/civicrm-core/pull/14306))**
+
+- **[NFC] fix more places where var is declared as boolean rather than bool
+ ([14305](https://github.com/civicrm/civicrm-core/pull/14305))**
+
+- **[NFC] formatting & comment fixes - Regenerate DAO files
+ ([14304](https://github.com/civicrm/civicrm-core/pull/14304))**
+
+- **[NFC] ProfileTest class - formatting & general cleanup
+ ([14282](https://github.com/civicrm/civicrm-core/pull/14282))**
+
+- **[NFC] Add trailing comma to pseudoconstant array in DAOs
+ ([14295](https://github.com/civicrm/civicrm-core/pull/14295))**
+
+- **[NFC] array formatting in api_v3_paymentTest class
+ ([14451](https://github.com/civicrm/civicrm-core/pull/14451))**
+
+- **[NFC] Update Exception DAO class
+ ([14482](https://github.com/civicrm/civicrm-core/pull/14482))**
+
+- **[NFC] Further tests tidy up following removing of dbunit
+ ([14344](https://github.com/civicrm/civicrm-core/pull/14344))**
+
+- **[NFC] Docblock fixes
+ ([14323](https://github.com/civicrm/civicrm-core/pull/14323))**
+
+- **NFC Fix DAO Style issues
+ ([14307](https://github.com/civicrm/civicrm-core/pull/14307))**
+
+- **[NFC] reformat UFFieldTest
+ ([14308](https://github.com/civicrm/civicrm-core/pull/14308))**
+
+- **contributor-keys file - jira/lab.c.o username fix
+ ([14200](https://github.com/civicrm/civicrm-core/pull/14200))**
## <a name="credits"></a>Credits
This release was developed by the following code authors:
-AGH Strategies - Alice Frumin, Andrew Hunt, Eli Lisseck; Agileware - Francis Whittle; Australian Greens - Seamus Lee; Business & Code - Alain Benbassat; Christian Wach; Circle Interactive - Dave Jenkins; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Electronic Frontier Foundation - Mark Burdett; Francesc Bassas i Bullich; Fuzion - Jitendra Purohit; iXiam - Vangelis Pantazis; JMA Consulting - Monish Deb; Just Hope - Phil Morice Brubaker; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Onyemenam Ndubuisi; Pradeep Nayak; Progressive Technology Project - Jamie McClelland; Stephen Palmstrom; Wikimedia Foundation - Eileen McNaughton
+AGH Strategies - Alice Frumin, Andrew Hunt, Eli Lisseck; Agileware - Francis
+Whittle; Australian Greens - Seamus Lee; Business & Code - Alain Benbassat;
+Christian Wach; Circle Interactive - Dave Jenkins; CiviCRM - Coleman Watts, Tim
+Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel
+Vanhove; Dave D; Electronic Frontier Foundation - Mark Burdett; Francesc Bassas
+i Bullich; Fuzion - Jitendra Purohit; iXiam - Vangelis Pantazis; JMA Consulting -
+Monish Deb; Just Hope - Phil Morice Brubaker; Megaphone Technology Consulting -
+Jon Goldberg; MJW Consulting - Matthew Wire; Onyemenam Ndubuisi; Pradeep
+Nayak; Progressive Technology Project - Jamie McClelland; Stephen Palmstrom;
+Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
-AGH Strategies - Andrew Hunt; Agileware - Justin Freeman; Artful Robot - Rich Lott; Australian Greens - Seamus Lee; Blackfly Solutions - Alan Dixon; Business & Code - Alain Benbassat; CEDC - Laryn Kragt Bakker; Chris Burgess; Christian Wach; Circle Interactive - Dave Jenkins; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; edvanleeuwen; Electronic Frontier Foundation - Mark Burdett; Francesc Bassas i Bullich; Fuzion - Jitendra Purohit, Luke Stewart; gareth-circle; Greenpeace CEE - Patrick Figel; JMA Consulting - Joe Murray, Monish Deb; John Kingsnorth; John Kyle Cronan; Joinery - Allen Shaw; Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; myDropWizard - David Snopek; Nicol Wistreich; Onyemenam Ndubuisi; Pradeep Nayak; wadelson; Wikimedia Foundation - Eileen McNaughton
\ No newline at end of file
+Agileware - Justin Freeman; Artful Robot - Rich Lott; Blackfly Solutions - Alan
+Dixon; CEDC - Laryn Kragt Bakker; Chris Burgess; CiviCoop - Jaap Jansma;
+Centrale Organisatie van Voetbal Scheidsrechters (COVS) - Ed van Leeuwen; Fuzion -
+Luke Stewart; gareth-circle; Greenpeace CEE - Patrick Figel; JMA Consulting -
+Joe Murray; John Kingsnorth; John Kyle Cronan; Joinery - Allen Shaw; Lighthouse
+Design and Consulting - Brian Shaughnessy; myDropWizard - David Snopek; Nicol
+Wistreich; Webstanz - Adelson;
+
+## <a name="feedback"></a>Feedback
+
+These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
+to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
+and contact `@agh1`.