# CiviCRM 5.15.0 Released July 3, 2019 - **[Synopsis](#synopsis)** - **[Features](#features)** - **[Bugs resolved](#bugs)** - **[Miscellany](#misc)** - **[Credits](#credits)** - **[Feedback](#feedback)** ## Synopsis | *Does this version...?* | | |:--------------------------------------------------------------- |:-------:| | Fix security vulnerabilities? | no | | Change the database schema? | | | Alter the API? | **yes** | | Require attention to configuration options? | | | Fix problems installing or upgrading to a previous version? | **yes** | | Introduce features? | **yes** | | Fix bugs? | **yes** | ## Features ### Core CiviCRM - **Rearrange quick search options ([dev/core#628](https://lab.civicrm.org/dev/core/issues/628): [14441](https://github.com/civicrm/civicrm-core/pull/14441))** This change makes it so that the quicksearch field options can be rearranged. - **Use crm-checkbox-list styling in display prefs tpl ([14461](https://github.com/civicrm/civicrm-core/pull/14461))** Restyles the checkboxes on the "Display Preferences" screen so they all use the same styling for visual consistency. - **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))** Extends the addField() function to support fields of the type `select2` and `select`. - **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))** Adds a dedupe.getstatistics api action. ## CiviContribute - **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))** Separates `contribution_recur` status_id option group from the `contribution` status_id option group and adds the contribution recur statuses 'Processing' and 'Failing'. - **Proposal - 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))** Adds the `Cancellation Reason` field to the form to cancel recurring contributions. - **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))** Makes campaign start and end dates available to the campaign widget on a Contribution Page so that one can customize the Campaign widget with options such as "Starts in X days". - **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))** ## Bugs resolved ### Core CiviCRM - **[CRM-21832](https://issues.civicrm.org/jira/browse/CRM-21832) Recurring activities don't carry over custom data and tags ([14183](https://github.com/civicrm/civicrm-core/pull/14183))** - **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))** Fixes a notice `Undefined property: CRM_Core_DAO::$Create_Table in CRM_Core_DAO::checkConstraintExists()..` when enabling a language in multilingual mode. - **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))** - **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))** Fixes a fatal error when trying to merge two contacts with the custom fields of type file. - **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))** Updates the auto-generated .htaccess so it no longer gives an internal error for sites on apache 2.4. - **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))** This change fixes the dedupe screen flip selected duplicates button so that it works as expected. - **$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))** Fixes "$this can not be used in static methods" error thrown by getIncompleteImportTables() in CRM/Contact/Import/ImportJob.php - **Support latest phpunit versions ([dev/core#980](https://lab.civicrm.org/dev/core/issues/980): [14333](https://github.com/civicrm/civicrm-core/pull/14333), [14279](https://github.com/civicrm/civicrm-core/pull/14279), [14283](https://github.com/civicrm/civicrm-core/pull/14283) and [14321](https://github.com/civicrm/civicrm-core/pull/14321))** Updates phpunit version support so that the CiviCRM test suite works with phpunit versions 4.8 thru 8. Removes dependency on discontinued dbunit. Moves towards using api functions instead of dbunit. - **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))** Fixes an issue where addTrailingSlash would generate a \ instead of a '/' on Windows. - **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))** Removes form rule preventing location separators having more than one character so that one can use a non-breaking space (or other string longer than one character). - **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))** - **Add CRM_Utils_System::sendResponse(). Fix AssetBuilder's status-code on WP. ([14468](https://github.com/civicrm/civicrm-core/pull/14468))** - **Fix Exception api to save lower id number as contact 1 ([14448](https://github.com/civicrm/civicrm-core/pull/14448))** - **Fix Exception to remove result from duplicates ([14447](https://github.com/civicrm/civicrm-core/pull/14447))** - **Permit sort_name as a url parameter on advanced search ([14475](https://github.com/civicrm/civicrm-core/pull/14475))** - **Fix version for pledge message update, also remove 'please print' ([14469](https://github.com/civicrm/civicrm-core/pull/14469))** - **Wrap titles in metadata in ts on payment.create api ([14450](https://github.com/civicrm/civicrm-core/pull/14450))** - **[Outbound mail admin form] fix some more notices resulting from recent change ([14433](https://github.com/civicrm/civicrm-core/pull/14433))** - **Fix upgrade on participant_register date ([14427](https://github.com/civicrm/civicrm-core/pull/14427))** - **Misc translation 'ts' fixes ([14467](https://github.com/civicrm/civicrm-core/pull/14467))** - **Conditionally use Drupal's jQuery only if available ([14442](https://github.com/civicrm/civicrm-core/pull/14442))** - **Don't run search when editing smartgroup criteria ([14464](https://github.com/civicrm/civicrm-core/pull/14464))** - **Add Contact.get_merge_conflicts api ([14394](https://github.com/civicrm/civicrm-core/pull/14394))** - **Add api for Dedupe.getduplicates ([14411](https://github.com/civicrm/civicrm-core/pull/14411))** - **Avoid logging error message if status check query fails. ([14363](https://github.com/civicrm/civicrm-core/pull/14363))** - **Change Activity tag to use select2 ([14247](https://github.com/civicrm/civicrm-core/pull/14247))** - **Fix running of CRM_Utils_MoneyTest on PHPUnit6+ ([14424](https://github.com/civicrm/civicrm-core/pull/14424))** - **Improve formatting for settings checkboxes ([14419](https://github.com/civicrm/civicrm-core/pull/14419))** - **Caches - Normalize dependency on php-cache integration-tests ([14423](https://github.com/civicrm/civicrm-core/pull/14423))** - **phpunit6 - Implement TAP printer ([14421](https://github.com/civicrm/civicrm-core/pull/14421))** - **Try running unit tests on phpunit6 ([14404](https://github.com/civicrm/civicrm-core/pull/14404))** - **Allow updating ENGINE_CONFIG for System.updatelogtables ([14348](https://github.com/civicrm/civicrm-core/pull/14348))** - **Force link in confirmation email to be front-end ([14389](https://github.com/civicrm/civicrm-core/pull/14389))** - **Add angular-xeditable to angular ([14414](https://github.com/civicrm/civicrm-core/pull/14414))** - **Add EntityPageTrait ([14399](https://github.com/civicrm/civicrm-core/pull/14399))** - **Update test files to use PHPUnit6 notiation for classes ([14387](https://github.com/civicrm/civicrm-core/pull/14387))** - **Set title properly on Move/Copy/File on Case popup ([14347](https://github.com/civicrm/civicrm-core/pull/14347))** - **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))** - **Use data provider to test both api versions ([14153](https://github.com/civicrm/civicrm-core/pull/14153))** - **Regenerate Event DAO for i18n ([14396](https://github.com/civicrm/civicrm-core/pull/14396))** - **[code-quality] [jcalendar] remove jcalendar usage from participant_register_date on event search ([14330](https://github.com/civicrm/civicrm-core/pull/14330))** - **Deprecate creating recipients from MailingJob.create. ([14097](https://github.com/civicrm/civicrm-core/pull/14097))** - **Switch to calling Payment.create api when processing a refund from AdditionalPayment form ([14317](https://github.com/civicrm/civicrm-core/pull/14317))** - **CRM_Extension_System - Only allow `test.*` extensions during headless testing. Hide from regular users. ([14392](https://github.com/civicrm/civicrm-core/pull/14392))** - **Wysiwyg support for i18n event fields ([14384](https://github.com/civicrm/civicrm-core/pull/14384))** - **Fix inconsistent handling when searching contribution text fields ([14354](https://github.com/civicrm/civicrm-core/pull/14354))** - **Fix name of cache key column to be all lower case rather than camel c… ([14359](https://github.com/civicrm/civicrm-core/pull/14359))** - **Remove confusing pass params by ref ([14360](https://github.com/civicrm/civicrm-core/pull/14360))** - **Translation in billingblock.tpl - dropping 'Information' ([14358](https://github.com/civicrm/civicrm-core/pull/14358))** - **Don't apply api3 pre/post processing to api4 actions ([14357](https://github.com/civicrm/civicrm-core/pull/14357))** - **Fix bug where contribution status is mishandled if label is changed ([14352](https://github.com/civicrm/civicrm-core/pull/14352))** - **Remove duplicate line in case BAO ([14345](https://github.com/civicrm/civicrm-core/pull/14345))** - **correct syntax "IS NOT NULL" to get pledge payment count ([13374](https://github.com/civicrm/civicrm-core/pull/13374))** - **Fix fatal error when full group by mysql mode enabled & selecting contacts ([14331](https://github.com/civicrm/civicrm-core/pull/14331))** - **Reduce cache bypasses - do not bypass custom metadata cache in setGroupTree ([14292](https://github.com/civicrm/civicrm-core/pull/14292))** - **[dbunit] remove dependencies on discontinued dbunit test package ([14319](https://github.com/civicrm/civicrm-core/pull/14319))** - **[dbunit] remove dbunit dependency from MembershipRenewalTest ([14315](https://github.com/civicrm/civicrm-core/pull/14315))** - **Fix legacy IPN endpoint for Drupal (gitlab issue 973) ([14272](https://github.com/civicrm/civicrm-core/pull/14272))** - **Make apiRequst nextId accessible for api4 constructor ([14311](https://github.com/civicrm/civicrm-core/pull/14311))** - **crmRouteBinder - Remove params from url if they equal their defaults ([14211](https://github.com/civicrm/civicrm-core/pull/14211))** - **Fix deprecation notice on manage events page ([14289](https://github.com/civicrm/civicrm-core/pull/14289))** - **Try enabling api4 extension in test suite ([14241](https://github.com/civicrm/civicrm-core/pull/14241))** - **Declare API Key as a protected field for future use ([14274](https://github.com/civicrm/civicrm-core/pull/14274))** - **add developer tab for summary report ([14254](https://github.com/civicrm/civicrm-core/pull/14254))** - **Remove wasteful double-caching of settings metadata ([14259](https://github.com/civicrm/civicrm-core/pull/14259))** - **Fix financial acl permissions to respect check_permissions ([14118](https://github.com/civicrm/civicrm-core/pull/14118))** - **When creating relationship types don't munge names ([14216](https://github.com/civicrm/civicrm-core/pull/14216))** - **Remove broken delete from customGroupCreate ([14239](https://github.com/civicrm/civicrm-core/pull/14239))** - **Remove CIVICRM_TEMP_FORCE_UTF8; deprecate TempTable::setUtf8() ([14004](https://github.com/civicrm/civicrm-core/pull/14004))** - **Pass the RFC 3164 severity level thru to drupal watchdog. ([14185](https://github.com/civicrm/civicrm-core/pull/14185))** - **Stop overriding is_active default when saving new relationship ([14199](https://github.com/civicrm/civicrm-core/pull/14199))** - **contributor-keys file - jira/lab.c.o username fix ([14200](https://github.com/civicrm/civicrm-core/pull/14200))** - **IDE re-format of tools directory ([14177](https://github.com/civicrm/civicrm-core/pull/14177))** - **Enotice fix on creating a smart group ([14180](https://github.com/civicrm/civicrm-core/pull/14180))** - **Don't call session_start() before CMS bootstrap (PHP 7.2 compat) ([14074](https://github.com/civicrm/civicrm-core/pull/14074))** - **Cache/IntegrationTests - Remove. This can be replaced by composer dependency ([255](https://github.com/civicrm/civicrm-packages/pull/255))** - **Get LegacySimpleCacheTest complient with phpunit6+ ([254](https://github.com/civicrm/civicrm-packages/pull/254))** ## CiviCase - **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))** Fixes the Case Summary report so that it properly filters on case relationships. - **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))** - **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))** ## CiviContribute - **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))** Ensures deferred revenue settings are respected. - **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))** 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. - **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))** Fixes payment processing for sites using an Elavon processor. ## CiviEvent - **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))** 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. - **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))** ## CiviMail - **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))** 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 the rest of the scheduled reminder will go out. - **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))** Fixes E_NOTICE `Notice: Undefined index: Subject in civicrm_api3_mailing_preview()` when creating bulk SMS. - **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))** ## CiviPledge - **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))** Ensures that Pledge acknowledgments use correct capitalization and the `email_greeting`. ## Drupal Integration - **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))** 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. This link is broken with recent Drupal versions, because it needs to go to /user/login instead of just /user. - **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))** 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. ## Joomla Integration - **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))** ## Miscellany - **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))** - **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))** - **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))** - **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))** - **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))** - **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))** - **Remove never-called function _civicrm_api3_deprecated_contact_check_custom_params ([14341](https://github.com/civicrm/civicrm-core/pull/14341))** - **Unit test for FGB error in #14331 ([14340](https://github.com/civicrm/civicrm-core/pull/14340))** - **Test tweaks that *might* help with intermittant test weirdness ([14458](https://github.com/civicrm/civicrm-core/pull/14458))** - **[TEST SUITE] Remove some use of dbunit from tests ([14271](https://github.com/civicrm/civicrm-core/pull/14271))** - **Test cleanup to remove references to discontinued package dbunit ([14276](https://github.com/civicrm/civicrm-core/pull/14276))** - **[dbunit test] remove dbunit dependency ([14328](https://github.com/civicrm/civicrm-core/pull/14328))** - **Add unit test for merge handling on custom data. ([14310](https://github.com/civicrm/civicrm-core/pull/14310))** - **Fix test / possible live error on submitting credit card renewals ([14316](https://github.com/civicrm/civicrm-core/pull/14316))** - **Update testGetActivityAccessCiviCRMEnough test for clarity ([14226](https://github.com/civicrm/civicrm-core/pull/14226))** - **[REF] Move retrieval of basicSearchFields to 'get' fn ([14476](https://github.com/civicrm/civicrm-core/pull/14476))** - **[REF] Remove input format function from deprecated utils to the only place that calls it ([14342](https://github.com/civicrm/civicrm-core/pull/14342))** - **[REF] extract isLiveMode ([14336](https://github.com/civicrm/civicrm-core/pull/14336))** - **[REF] use generic loadStandardSearchOptionsFromUrl ([14338](https://github.com/civicrm/civicrm-core/pull/14338))** - **[REF] Extract function to get cached duplicate matches ([14324](https://github.com/civicrm/civicrm-core/pull/14324))** - **[REF] minor code re-org ([14318](https://github.com/civicrm/civicrm-core/pull/14318))** - **[REF] Remove extraneous variable ([14261](https://github.com/civicrm/civicrm-core/pull/14261))** - **[REF] Centralize logic for resolving settings pseudoconstants ([14264](https://github.com/civicrm/civicrm-core/pull/14264))** - **[REF] Super Minor code readability fix ([14258](https://github.com/civicrm/civicrm-core/pull/14258))** - **[ref] Move copyCustomFields function from Event to Core_DAO for re-usablibilty ([14171](https://github.com/civicrm/civicrm-core/pull/14171))** - **[ref] Remove reference symbol from 2 variables ([14270](https://github.com/civicrm/civicrm-core/pull/14270))** - **[cleanup] Remove deprecated pattern &CRM_Core_Config::singleton() ([14178](https://github.com/civicrm/civicrm-core/pull/14178))** - **REF Refactor to reduce duplication on payment forms ([14206](https://github.com/civicrm/civicrm-core/pull/14206))** - **[REF+ test] start process of cleaning up payment activity handling ([14198](https://github.com/civicrm/civicrm-core/pull/14198))** - **[REF][Test] Remove call to CRM_Contribute_BAO_Contribution::recordAdditionalPayment in favour of payment create ([14137](https://github.com/civicrm/civicrm-core/pull/14137))** - **[REF+test] clean up code for getting labels for merge screen, stdise ([14260](https://github.com/civicrm/civicrm-core/pull/14260))** - **[REF] Simplify ACL page template ([14288](https://github.com/civicrm/civicrm-core/pull/14288))** - **[REF] Fix pointless use of CRM_Utils_Array::value in Campaign BAO ([14300](https://github.com/civicrm/civicrm-core/pull/14300))** - **[code-cleanup] remove orderBy param from getDuplicatePairs, it is not used ([14297](https://github.com/civicrm/civicrm-core/pull/14297))** - **[REF] extract buildGroupTree function ([14303](https://github.com/civicrm/civicrm-core/pull/14303))** - **[REF] Test class cleanup - Extract function to create nuanced custom fields to a trait ([14301](https://github.com/civicrm/civicrm-core/pull/14301))** - **[REF] Cleanup input & output on paymentActivityCreate & improve test ([14269](https://github.com/civicrm/civicrm-core/pull/14269))** - **[REF] move calculation of migrationInfo into the function that uses it ([14365](https://github.com/civicrm/civicrm-core/pull/14365))** - **[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))** ## 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 Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments: 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; ## 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`.