5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
12 ## <a name="synopsis"></a>Synopsis
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | no |
17 | Change the database schema? | **yes** |
18 | Alter the API? | **yes** |
19 | Require attention to configuration options? | no |
20 | Fix problems installing or upgrading to a previous version? | **yes** |
21 | Introduce features? | **yes** |
22 | Fix bugs? | **yes** |
24 ## <a name="features"></a>Features
28 - **Rearrange quick search options
29 ([dev/core#628](https://lab.civicrm.org/dev/core/issues/628):
30 [14441](https://github.com/civicrm/civicrm-core/pull/14441))**
32 This change makes it so that the quicksearch field options can be rearranged.
34 - **Improve formatting for settings checkboxes
35 ([14461](https://github.com/civicrm/civicrm-core/pull/14461) and
36 [14419](https://github.com/civicrm/civicrm-core/pull/14419))**
38 Restyles the checkboxes on the "Display Preferences" screen so they all use
39 the same styling for visual consistency and restyles the "Components" settings
40 field as a checkbox list instead of it being an AdvMultiSelect element.
42 - **Differentiate smart group from regular group using icon in select2 field
43 (preliminary work for [dev/core#785](https://lab.civicrm.org/dev/core/issues/785):
44 [14416](https://github.com/civicrm/civicrm-core/pull/14416))**
46 Extends the addField() function to support fields of the type `select2` and
49 - **Cleanup & api-ise the dedupe code (preliminary work for
50 [dev/core#982](https://lab.civicrm.org/dev/core/issues/982):
51 [14298](https://github.com/civicrm/civicrm-core/pull/14298))**
53 Adds a `dedupe.getstatistics` API action.
55 - **Add Contact.get_merge_conflicts API
56 ([14394](https://github.com/civicrm/civicrm-core/pull/14394))**
58 Adds a `contact.get_merge_conflicts` API action.
60 - **Add API for Dedupe.getduplicates
61 ([14411](https://github.com/civicrm/civicrm-core/pull/14411))**
63 Adds a `dedupe.getduplicates` API action.
65 - **Support latest PHPUnit versions
66 ([dev/core#980](https://lab.civicrm.org/dev/core/issues/980):
67 [14333](https://github.com/civicrm/civicrm-core/pull/14333),
68 [14387](https://github.com/civicrm/civicrm-core/pull/14387),
69 [14279](https://github.com/civicrm/civicrm-core/pull/14279),
70 [14319](https://github.com/civicrm/civicrm-core/pull/14319),
71 [14315](https://github.com/civicrm/civicrm-core/pull/14315),
72 [14421](https://github.com/civicrm/civicrm-core/pull/14421),
73 [14404](https://github.com/civicrm/civicrm-core/pull/14404),
74 [254](https://github.com/civicrm/civicrm-packages/pull/254),
75 [14283](https://github.com/civicrm/civicrm-core/pull/14283) and
76 [14321](https://github.com/civicrm/civicrm-core/pull/14321))**
78 Updates phpunit version support so that the CiviCRM test suite works with
79 phpunit versions 5 thru 8. Removes dependency on discontinued dbunit. Moves
80 towards using API functions instead of dbunit.
82 - **Permit sort_name as a url parameter on advanced search
83 ([14475](https://github.com/civicrm/civicrm-core/pull/14475))**
85 Lays the ground work for a metadata based approach to search forms,
86 Specifically for the contact form. Converts one field (sort_name) to be
87 added by metadata and also to be supported via url (sort_name=x).
89 - **Allow updating ENGINE_CONFIG for System.updatelogtables
90 ([14348](https://github.com/civicrm/civicrm-core/pull/14348))**
92 Makes it so users can modify the SQL engine config for log tables thru the
95 - **Reduce cache bypasses - Do not bypass custom metadata cache in setGroupTree
96 ([14292](https://github.com/civicrm/civicrm-core/pull/14292))**
98 Improves performance when editing a form with custom data by using
99 the cached metadata instead of doing a database query to rebuild the metadata.
101 - **Try enabling api4 extension in test suite
102 ([14241](https://github.com/civicrm/civicrm-core/pull/14241))**
104 Makes the api4 extension available when running unit tests.
106 - **Use data provider to test both API versions
107 ([14153](https://github.com/civicrm/civicrm-core/pull/14153))**
109 Makes it so 311 API v3 tests are converted to also test API v4.
111 - **Advanced search: activity tags should use select2 ([
112 dev/core#924](https://lab.civicrm.org/dev/core/issues/924):
113 [14247](https://github.com/civicrm/civicrm-core/pull/14247))**
115 Changes the "Activity Tags" field on the "Advanced Search" form to be a
116 select2 instead of a checkbox list to improve user experience.
120 - **Better support in core for token payment processing (continues work for
121 [dev/core#905](https://lab.civicrm.org/dev/core/issues/905):
122 [14395](https://github.com/civicrm/civicrm-core/pull/14395) and
123 [14343](https://github.com/civicrm/civicrm-core/pull/14343))**
125 Separates the `contribution_recur` status_id option group from the `contribution`
126 status_id option group and adds the contribution recur statuses 'Processing'
129 - **Add cancel_reason field to civicrm_contribution_recur table
130 ([dev/core#830](https://lab.civicrm.org/dev/core/issues/830):
131 [13997](https://github.com/civicrm/civicrm-core/pull/13997))**
133 Adds a `Cancellation Reason` field to the form to cancel recurring
136 - **Add time start date and end date values on page contribution widget ajax
137 response ([dev/core#964](https://lab.civicrm.org/dev/core/issues/964):
138 [14262](https://github.com/civicrm/civicrm-core/pull/14262))**
140 Makes campaign start and end dates available to the campaign widget on
141 Contribution Pages so that one can customize the campaign widget with options
142 such as "Starts in X days".
144 - **Expose contribution page in Contribution Summary report
145 ([dev/core#959](https://lab.civicrm.org/dev/core/issues/959):
146 [14249](https://github.com/civicrm/civicrm-core/pull/14249))**
148 Exposes the contribution page field in the "Contribution Summary" report.
150 - **Add developer tab for summary report
151 ([14254](https://github.com/civicrm/civicrm-core/pull/14254))**
153 Adds a developer tab to the "Contribution Summary" report.
155 - **Wrap titles in metadata in ts on payment.create API
156 ([14450](https://github.com/civicrm/civicrm-core/pull/14450))**
158 Improves the API v3 explorer for multilingual sites by translating the
159 titles in the payment create API action.
161 - **Translation in billingblock.tpl - dropping 'Information'
162 ([14358](https://github.com/civicrm/civicrm-core/pull/14358))**
164 Improves translation of the billing block on front facing contribution and
165 event forms by removing the word Information from the title.
169 - **WYSIWYG support for i18n event fields
170 ([14384](https://github.com/civicrm/civicrm-core/pull/14384) and
171 [14396](https://github.com/civicrm/civicrm-core/pull/14396))**
173 Adds support for wysiwyg editor in i18n popup for event fields.
175 ## Drupal Integration
177 - **Pass the RFC 3164 severity level thru to drupal watchdog.
178 ([14185](https://github.com/civicrm/civicrm-core/pull/14185))**
180 Improves error logging for Drupal users by passing the severity level to
181 drupal watchdog. Before this change all errors passed from CiviCRM to
182 drupal watchdog were logged at the debug level now errors, warnings, notices,
183 info, etc. can be logged as such.
185 ## <a name="bugs"></a>Bugs resolved
189 - **Fix Notice errors caused by l10n rewriting of query so query outputed create
190 view rather than the create table
191 ([dev/translation#26](https://lab.civicrm.org/dev/translation/issues/26):
192 [14152](https://github.com/civicrm/civicrm-core/pull/14152))**
194 Fixes a notice `Undefined property: CRM_Core_DAO::$Create_Table in
195 CRM_Core_DAO::checkConstraintExists()..` when enabling a language in
198 - **File custom fields cause a fatal error when trying to merge
199 ([dev/core#723](https://lab.civicrm.org/dev/core/issues/723):
200 [14325](https://github.com/civicrm/civicrm-core/pull/14325))**
202 Fixes a fatal error when trying to merge two contacts with the custom fields
205 - **Autogenerated .htaccess is for apache 2.2
206 ([dev/core#913](https://lab.civicrm.org/dev/core/issues/913):
207 [14158](https://github.com/civicrm/civicrm-core/pull/14158))**
209 Updates the auto-generated .htaccess so it no longer gives an internal error
210 for sites on apache 2.4.
212 - **Dedupe screen: single "flip" and multi-selected-flip have no effect
213 ([dev/core#932](https://lab.civicrm.org/dev/core/issues/932):
214 [14195](https://github.com/civicrm/civicrm-core/pull/14195))**
216 Fixes the dedupe screen "flip selected duplicates" button so that it
219 - **$this can not be used in static methods
220 ([dev/core#945](https://lab.civicrm.org/dev/core/issues/945):
221 [14217](https://github.com/civicrm/civicrm-core/pull/14217))**
223 Fixes "$this can not be used in static methods" error thrown by
224 getIncompleteImportTables() in CRM/Contact/Import/ImportJob.php
226 - **CiviCRM 5.13.4 - Specified key was too long; max key length is 767 bytes
227 ([dev/core#978](https://lab.civicrm.org/dev/core/issues/978):
228 [14363](https://github.com/civicrm/civicrm-core/pull/14363))**
230 Fixes DB Error: `unknown error` if the system status check query fails.
232 - **userFrameworkResourceURL gets wrong trailing slash on windows
233 ([dev/core#985](https://lab.civicrm.org/dev/core/issues/985):
234 [14405](https://github.com/civicrm/civicrm-core/pull/14405))**
236 Fixes an issue where `addTrailingSlash` would generate a \ instead of a '/' on
239 - **Can't set a non-breaking space as Thousands Separator in Administer >
240 Localization settings
241 ([dev/core#994](https://lab.civicrm.org/dev/core/issues/994):
242 [14376](https://github.com/civicrm/civicrm-core/pull/14376))**
244 Removes a form rule preventing location separators from having more than one
245 character so that one can use a non-breaking space (or other string longer
248 - **Add CRM_Utils_System::sendResponse(). Fix AssetBuilder's status-code on WP.
249 ([14468](https://github.com/civicrm/civicrm-core/pull/14468))**
251 Ensures that a consistent response is returned across CMS's in regards to
252 Asset Builder URLs. Before this change Wordpress would return a different
253 response then Drupal/Backdrop and E2E Unit tests would fail on Wordpress.
255 - **Fix Exception API to save lower id number as contact 1
256 ([14448](https://github.com/civicrm/civicrm-core/pull/14448))**
258 Improves consistency when deduping contacts.
260 - **Fix Exception to remove result from duplicates
261 ([14447](https://github.com/civicrm/civicrm-core/pull/14447))**
263 Ensures that marking a non-duplicate contact removes them from the cached
266 - **Fix upgrade on participant_register date
267 ([14427](https://github.com/civicrm/civicrm-core/pull/14427))**
269 Fixes conversion routing on participant register date when upgrading to 5.15.
271 - **Misc translation 'ts' fixes
272 ([14467](https://github.com/civicrm/civicrm-core/pull/14467))**
274 Fixes a few places where `ts()` was used incorrectly so that is used correctly.
276 - **Don't run search when editing smartgroup criteria
277 ([14464](https://github.com/civicrm/civicrm-core/pull/14464))**
279 Ensures that editing smart group criteria does not trigger a search on that
280 smartgroup before the criteria can be viewed.
282 - **Add angular-xeditable to angular
283 ([14414](https://github.com/civicrm/civicrm-core/pull/14414))**
285 Add angular xeditable component to our bower_components.
287 - **crmRouteBinder - Remove params from url if they equal their defaults
288 ([14211](https://github.com/civicrm/civicrm-core/pull/14211))**
290 Ensures when a parameter is removed in the api4 explorer, it is also removed
293 - **Remove wasteful double-caching of settings metadata
294 ([14259](https://github.com/civicrm/civicrm-core/pull/14259))**
296 Ensures that Settings metadata is cached once per domain and that
297 `hook_civicrm_alterSettingsMetaData()` is invoked only once per domain.
299 - **Remove CIVICRM_TEMP_FORCE_UTF8; deprecate TempTable::setUtf8()
300 ([14004](https://github.com/civicrm/civicrm-core/pull/14004))**
302 Continues work to phase out CIVICRM_TEMP_FORCE_UTF8.
304 - **Stop overriding is_active default when saving new relationship
305 ([14199](https://github.com/civicrm/civicrm-core/pull/14199))**
307 Ensures that new relationships are saved as active by default.
309 - **Enotice fix on creating a smart group
310 ([14180](https://github.com/civicrm/civicrm-core/pull/14180))**
312 Fixes an E-notice `Notice: Undefined index: component_mode in
313 CRM_Contact_Form_Task_SaveSearch->PreProcess()` when creating a smart group.
315 - **Ensure that the oldest creation date is preserved when deduping
316 ([dev/core#996](https://lab.civicrm.org/dev/core/issues/996):
317 [14368](https://github.com/civicrm/civicrm-core/pull/14368))**
319 - **Recurring activities don't carry over custom data and tags
320 ([CRM-21832](https://issues.civicrm.org/jira/browse/CRM-21832),
321 [14183](https://github.com/civicrm/civicrm-core/pull/14183))**
323 - **Disabling Alphabetical Pager is not respected for events and contribution
324 pages. ([dev/core#705](https://lab.civicrm.org/dev/core/issues/705):
325 [14203](https://github.com/civicrm/civicrm-core/pull/14203))**
327 - **When creating relationship types don't munge names
328 ([14216](https://github.com/civicrm/civicrm-core/pull/14216))**
330 - **CRM_Extension_System - Only allow `test.*` extensions during headless
331 testing. Hide from regular users.
332 ([14392](https://github.com/civicrm/civicrm-core/pull/14392))**
334 - **Fix name of cache key column to be all lower case rather than camel case in
335 civicrm_prevnext_cache
336 ([14359](https://github.com/civicrm/civicrm-core/pull/14359))**
338 - **Don't apply api3 pre/post processing to api4 actions
339 ([14357](https://github.com/civicrm/civicrm-core/pull/14357))**
341 - **Fix fatal error when full group by mysql mode enabled & selecting contacts
342 ([14331](https://github.com/civicrm/civicrm-core/pull/14331))**
344 - **Caches - Normalize dependency on php-cache integration-tests
345 ([14423](https://github.com/civicrm/civicrm-core/pull/14423))**
347 - **Cache/IntegrationTests - Remove. This can be replaced by composer dependency
348 ([255](https://github.com/civicrm/civicrm-packages/pull/255))**
352 - **Case report showing 1 result
353 ([dev/core#743](https://lab.civicrm.org/dev/core/issues/743):
354 [14082](https://github.com/civicrm/civicrm-core/pull/14082))**
356 Fixes the Case Summary report so that it properly filters on case
359 - **Set title properly on Move/Copy/File on Case popup
360 ([14347](https://github.com/civicrm/civicrm-core/pull/14347))**
362 Ensures when clicking "Move to Case"/"Copy to Case" from the Manage cases
363 activity list the title is set correctly and stays set correctly instead of
364 reverting to "File on Case".
366 - **Manage Case search filter "Deleted Activities" no longer working
367 ([dev/core#1022](https://lab.civicrm.org/dev/core/issues/1022):
368 [14445](https://github.com/civicrm/civicrm-core/pull/14445))**
370 Fixes the search filter "Deleted Activities" on the Manage Cases form.
372 - **Closing a case gives a warning notice
373 ([dev/core#896](https://lab.civicrm.org/dev/core/issues/896):
374 [14160](https://github.com/civicrm/civicrm-core/pull/14160))**
379 - **Bug in storing settings for CiviContribute component
380 ([dev/financial#54](https://lab.civicrm.org/dev/financial/issues/54):
381 [14267](https://github.com/civicrm/civicrm-core/pull/14267))**
383 Ensures deferred revenue settings are respected.
385 - **Changing financial type on a contribution records incorrect financial items
386 ([dev/financial#56](https://lab.civicrm.org/dev/financial/issues/56):
387 [14309](https://github.com/civicrm/civicrm-core/pull/14309))**
389 Fixes a bug where changing the financial type on a contribution record would
390 result in a sales tax row being added regardless of whether sales tax was
393 - **Fix financial ACL permissions to respect check_permissions
394 ([14118](https://github.com/civicrm/civicrm-core/pull/14118))**
396 Fixes bug where `check_permissions=0` is ignored when doing contribution.get
397 in conjunction with financial ACLs.
399 - **Elavon payment processor seems to no longer accept url encoded emails
400 ([dev/core#966](https://lab.civicrm.org/dev/core/issues/966):
401 [14263](https://github.com/civicrm/civicrm-core/pull/14263))**
403 Fixes payment processing for sites using an Elavon processor.
405 - **Set new inactive statuses as 'Chargeback' does not exist on new installs and
406 that breaks Contributionrecur.create API
407 ([14398](https://github.com/civicrm/civicrm-core/pull/14398))**
409 - **Fix inconsistent handling when searching contribution text fields
410 ([14354](https://github.com/civicrm/civicrm-core/pull/14354))**
412 - **Fix bug where contribution status is mishandled if label is changed
413 ([14352](https://github.com/civicrm/civicrm-core/pull/14352))**
417 - **Sorting participants ignored search values.
418 ([dev/core#981](https://lab.civicrm.org/dev/core/issues/981):
419 [14313](https://github.com/civicrm/civicrm-core/pull/14313))**
421 Ensures when searching for participants for a specific event and then sorting
422 the results the search parameters are respected, before this change all
423 participants for all events would be displayed.
425 - **Fix deprecation notice on manage events page
426 ([14289](https://github.com/civicrm/civicrm-core/pull/14289))**
428 Removes a `User deprecated function: Deprecated function
429 CRM_Event_BAO_Event::CheckPermission` notice from the manage events page.
431 - **Backoffice participant transfer form does not populate contact reference
432 field ([dev/core#888](https://lab.civicrm.org/dev/core/issues/888):
433 [14102](https://github.com/civicrm/civicrm-core/pull/14102))**
437 - **Deletion of SMS provider caused all scheduled reminders to fail to be sent
438 (begins work for [dev/core#369](https://lab.civicrm.org/dev/core/issues/369):
439 [14266](https://github.com/civicrm/civicrm-core/pull/14266))**
441 Before this change if the Scheduled reminder job was triggered and there were
442 active SMS scheduled reminders for which the SMS Provider has been deleted the
443 job would fail with the message "Provider not known or not provided" and no
444 scheduled reminders would go out this change makes it so that scheduled
445 reminders for which a SMS Provider exists will go out even if there are some
446 scheduled SMS reminders for which there is not an SMS Provider.
448 - **E_NOTICE when creating bulk SMS
449 ([dev/core#1023](https://lab.civicrm.org/dev/core/issues/1023):
450 [14449](https://github.com/civicrm/civicrm-core/pull/14449))**
452 Fixes E_NOTICE `Notice: Undefined index: Subject in
453 civicrm_api3_mailing_preview()` when creating bulk SMS.
455 - **"Confirm this subscription" URL generated by MailingEventSubscribe API
456 should always be a front-end
457 URL([dev/core#1005](https://lab.civicrm.org/dev/core/issues/1005):
458 [14389](https://github.com/civicrm/civicrm-core/pull/14389))**
460 Ensures that the "Confirm this subscription" URL included in bulk emails is
461 always a front end URL.
463 - **SMTP help text is misleading - references the wrong admin screen
464 ([dev/core#879](https://lab.civicrm.org/dev/core/issues/879):
465 [14329](https://github.com/civicrm/civicrm-core/pull/14329))**
467 - **[Outbound mail admin form] fix some more notices resulting from recent
468 change ([14433](https://github.com/civicrm/civicrm-core/pull/14433))**
472 - **incorrect capitalization in default Pledges - Acknowledgement message
473 template ([dev/core#1010](https://lab.civicrm.org/dev/core/issues/1010):
474 [14465](https://github.com/civicrm/civicrm-core/pull/14465) and
475 [14469](https://github.com/civicrm/civicrm-core/pull/14469))**
477 Ensures that Pledge acknowledgments use correct capitalization and the
480 - **correct syntax "IS NOT NULL" to get pledge payment count
481 ([13374](https://github.com/civicrm/civicrm-core/pull/13374))**
483 Ensures when editing a payment for a pledge the screen does not freeze because
484 the API count returns 0.
486 ## Drupal Integration
488 - **incorrect Drupal 8 login URL
489 ([dev/core#898]https://lab.civicrm.org/dev/core/issues/898():
490 [14138](https://github.com/civicrm/civicrm-core/pull/14138))**
492 If you create a public contribution page on a Drupal 8 site, it will include a
493 login link for unauthenticated users, with parameters ?destination=... to
494 direct back to the contribution page after login. Fixes this link for
495 recent Drupal versionsso it points to the right login url.
497 - **Drupal8: Implement set UF locale/language (affects mailing tokens)
498 ([dev/drupal#19](https://lab.civicrm.org/dev/drupal/issues/19):
499 [14302](https://github.com/civicrm/civicrm-core/pull/14302) and
500 [12152](https://github.com/civicrm/civicrm-core/pull/12152))**
502 Fixes a 500 error when calling the REST API endpoint in Drupal 8 and fixes a
503 bug when using Drupal 8 with a multilingual site where mailing token links
504 were not taking the user to the page in the expected language.
507 ([dev/drupal#68](https://lab.civicrm.org/dev/drupal/issues/68):
508 [14442](https://github.com/civicrm/civicrm-core/pull/14442))**
510 Fixes a Javascript error if Drupal's jQuery is not loaded (when its not
513 - **Fix legacy IPN endpoint for Drupal
514 ([dev/core#973](https://lab.civicrm.org/dev/core/issues/973):
515 [14272](https://github.com/civicrm/civicrm-core/pull/14272))**
517 Fixes a `PHP Fatal error: Uncaught Error: Call to undefined function
518 variable_get()` error when bootstraping Drupal for Drupal sites collecting
519 recurring PayPal donations.
521 - **Don't call session_start() before CMS bootstrap (PHP 7.2 compat)
522 ([14074](https://github.com/civicrm/civicrm-core/pull/14074))**
524 Fixes a `Warning: ini_set(): A session is active` error for Drupal sites
527 ## Joomla Integration
529 - **Fix php warning when viewing profiles
530 ([dev/joomla#11](https://lab.civicrm.org/dev/joomla/issues/11):
531 [14312](https://github.com/civicrm/civicrm-core/pull/14312))**
533 ## <a name="misc"></a>Miscellany
535 - **Declare API Key as a protected field for future use
536 ([14274](https://github.com/civicrm/civicrm-core/pull/14274))**
538 - **Make apiRequst nextId accessible for api4 constructor
539 ([14311](https://github.com/civicrm/civicrm-core/pull/14311))**
541 - **Remove confusing pass params by ref
542 ([14360](https://github.com/civicrm/civicrm-core/pull/14360))**
544 - **Add EntityPageTrait
545 ([14399](https://github.com/civicrm/civicrm-core/pull/14399))**
547 - **[code-quality] [jcalendar] remove jcalendar usage from
548 participant_register_date on event search
549 ([14330](https://github.com/civicrm/civicrm-core/pull/14330))**
551 - **Deprecate creating recipients from MailingJob.create.
552 ([14097](https://github.com/civicrm/civicrm-core/pull/14097))**
554 - **Fix running of CRM_Utils_MoneyTest on PHPUnit6+
555 ([14424](https://github.com/civicrm/civicrm-core/pull/14424))**
557 - **Remove broken delete from customGroupCreate
558 ([14239](https://github.com/civicrm/civicrm-core/pull/14239))**
560 - **Remove duplicate line in case BAO
561 ([14345](https://github.com/civicrm/civicrm-core/pull/14345))**
563 - **Switch to calling Payment.create api when processing a refund from
564 AdditionalPayment form
565 ([14317](https://github.com/civicrm/civicrm-core/pull/14317))**
567 - **Updating contact (with no email) via import adding email doesn't set email
568 as primary (adds test for
569 [dev/core#953](https://lab.civicrm.org/dev/core/issues/953):
570 [14225](https://github.com/civicrm/civicrm-core/pull/14225))**
572 - **Cancel first contribution associated to membership, cancels the membership
573 (preliminary work for
574 [dev/core#927](https://lab.civicrm.org/dev/core/issues/927):
575 [14197](https://github.com/civicrm/civicrm-core/pull/14197))**
577 - **Searching for removed contacts in a smart group doesn't work (preliminary
578 work for [dev/core#926](https://lab.civicrm.org/dev/core/issues/926):
579 [14181](https://github.com/civicrm/civicrm-core/pull/14181))**
581 - **When using custom fields for smart group criteria with relative dates the
582 group does not respect the relative date over time (preliminary work for
583 [dev/core#389](https://lab.civicrm.org/dev/core/issues/389)[14401]:
584 (https://github.com/civicrm/civicrm-core/pull/14401) and
585 [14386](https://github.com/civicrm/civicrm-core/pull/14386))**
587 - **Remove instances of $dao->free
588 ([dev/core#562](https://lab.civicrm.org/dev/core/issues/562):
589 [14179](https://github.com/civicrm/civicrm-core/pull/14179))**
591 - **Correct syntax for Get pledge payment count (extend test coverage for
592 [dev/core#627](https://lab.civicrm.org/dev/core/issues/627):
593 [14350](https://github.com/civicrm/civicrm-core/pull/14350))**
595 - **Remove never-called function
596 _civicrm_api3_deprecated_contact_check_custom_params
597 ([14341](https://github.com/civicrm/civicrm-core/pull/14341))**
599 - **IDE re-format of tools directory
600 ([14177](https://github.com/civicrm/civicrm-core/pull/14177))**
602 - **Unit test for FGB error in #14331
603 ([14340](https://github.com/civicrm/civicrm-core/pull/14340))**
605 - **Test tweaks that *might* help with intermittant test weirdness
606 ([14458](https://github.com/civicrm/civicrm-core/pull/14458))**
608 - **[TEST SUITE] Remove some use of dbunit from tests
609 ([14271](https://github.com/civicrm/civicrm-core/pull/14271))**
611 - **Test cleanup to remove references to discontinued package dbunit
612 ([14276](https://github.com/civicrm/civicrm-core/pull/14276))**
614 - **[dbunit test] remove dbunit dependency
615 ([14328](https://github.com/civicrm/civicrm-core/pull/14328))**
617 - **Add unit test for merge handling on custom data.
618 ([14310](https://github.com/civicrm/civicrm-core/pull/14310))**
620 - **Fix test / possible live error on submitting credit card renewals
621 ([14316](https://github.com/civicrm/civicrm-core/pull/14316))**
623 - **Update testGetActivityAccessCiviCRMEnough test for clarity
624 ([14226](https://github.com/civicrm/civicrm-core/pull/14226))**
626 - **[REF] Move retrieval of basicSearchFields to 'get' fn
627 ([14476](https://github.com/civicrm/civicrm-core/pull/14476))**
629 - **[REF] Remove input format function from deprecated utils to the only place
630 that calls it ([14342](https://github.com/civicrm/civicrm-core/pull/14342))**
632 - **[REF] extract isLiveMode
633 ([14336](https://github.com/civicrm/civicrm-core/pull/14336))**
635 - **[REF] use generic loadStandardSearchOptionsFromUrl
636 ([14338](https://github.com/civicrm/civicrm-core/pull/14338))**
638 - **[REF] Extract function to get cached duplicate matches
639 ([14324](https://github.com/civicrm/civicrm-core/pull/14324))**
641 - **[REF] minor code re-org
642 ([14318](https://github.com/civicrm/civicrm-core/pull/14318))**
644 - **[REF] Remove extraneous variable
645 ([14261](https://github.com/civicrm/civicrm-core/pull/14261))**
647 - **[REF] Centralize logic for resolving settings pseudoconstants
648 ([14264](https://github.com/civicrm/civicrm-core/pull/14264))**
650 - **[REF] Super Minor code readability fix
651 ([14258](https://github.com/civicrm/civicrm-core/pull/14258))**
653 - **[REF] Move copyCustomFields function from Event to Core_DAO for
654 re-usablibilty ([14171](https://github.com/civicrm/civicrm-core/pull/14171))**
656 - **[REF] Remove reference symbol from 2 variables
657 ([14270](https://github.com/civicrm/civicrm-core/pull/14270))**
659 - **[cleanup] Remove deprecated pattern &CRM_Core_Config::singleton()
660 ([14178](https://github.com/civicrm/civicrm-core/pull/14178))**
662 - **[REF] Refactor to reduce duplication on payment forms
663 ([14206](https://github.com/civicrm/civicrm-core/pull/14206))**
665 - **[REF+ test] start process of cleaning up payment activity handling
666 ([14198](https://github.com/civicrm/civicrm-core/pull/14198))**
668 - **[REF][Test] Remove call to
669 CRM_Contribute_BAO_Contribution::recordAdditionalPayment in favour of payment
670 create ([14137](https://github.com/civicrm/civicrm-core/pull/14137))**
672 - **[REF+test] clean up code for getting labels for merge screen, stdise
673 ([14260](https://github.com/civicrm/civicrm-core/pull/14260))**
675 - **[REF] Simplify ACL page template
676 ([14288](https://github.com/civicrm/civicrm-core/pull/14288))**
678 - **[REF] Fix pointless use of CRM_Utils_Array::value in Campaign BAO
679 ([14300](https://github.com/civicrm/civicrm-core/pull/14300))**
681 - **[code-cleanup] remove orderBy param from getDuplicatePairs, it is not used
682 ([14297](https://github.com/civicrm/civicrm-core/pull/14297))**
684 - **[REF] extract buildGroupTree function
685 ([14303](https://github.com/civicrm/civicrm-core/pull/14303))**
687 - **[REF] Test class cleanup - Extract function to create nuanced custom fields
688 to a trait ([14301](https://github.com/civicrm/civicrm-core/pull/14301))**
690 - **[REF] Cleanup input & output on paymentActivityCreate & improve test
691 ([14269](https://github.com/civicrm/civicrm-core/pull/14269))**
693 - **[REF] move calculation of migrationInfo into the function that uses it
694 ([14365](https://github.com/civicrm/civicrm-core/pull/14365))**
696 - **[REF] extract buildClause from CRM_Report_Form_Event_Income
697 ([14098](https://github.com/civicrm/civicrm-core/pull/14098))**
699 - **[REF] Activity Summary report - move temp table generation etc from
700 postProcess to buildQuery, remove postProcess, don't skip in unit tests
701 ([14375](https://github.com/civicrm/civicrm-core/pull/14375))**
703 - **[REF] Activity form - very minor tidy up
704 ([14434](https://github.com/civicrm/civicrm-core/pull/14434))**
706 - **[REF] Stop passing cacheKey to refillCache
707 ([14337](https://github.com/civicrm/civicrm-core/pull/14337))**
709 - **[REF] dev/core#998 make processDupes testable & add test
710 ([14370](https://github.com/civicrm/civicrm-core/pull/14370))**
712 - **[REF] Remove reference to 'changePaymentInstrument' from
713 updateFinancialAccounts as never passed in
714 ([14353](https://github.com/civicrm/civicrm-core/pull/14353))**
716 - **[NFC][test-fix] centralise use of assertLike for comparing sql
717 ([14470](https://github.com/civicrm/civicrm-core/pull/14470))**
719 - **[nfc] [test] Skip testGetFromTo on date transition
720 ([14472](https://github.com/civicrm/civicrm-core/pull/14472))**
722 - **[NFC] Fix issue with Job Manager Test giving out a warning
723 ([14327](https://github.com/civicrm/civicrm-core/pull/14327))**
725 - **[NFC] Fix comment block for variable declarations
726 ([14314](https://github.com/civicrm/civicrm-core/pull/14314))**
728 - **(NFC) Update node package versions to latest ones
729 ([14087](https://github.com/civicrm/civicrm-core/pull/14087))**
731 - **[NFC] Update civicrm_generated data file following addition of contriā¦
732 ([14371](https://github.com/civicrm/civicrm-core/pull/14371))**
734 - **(NFC) Remove without param tests
735 ([14454](https://github.com/civicrm/civicrm-core/pull/14454))**
737 - **[NFC] PHPCS fixes.
738 ([14402](https://github.com/civicrm/civicrm-core/pull/14402))**
740 - **[NFC] Update package-lock and civicrm_generated to fix langague issues
741 ([14385](https://github.com/civicrm/civicrm-core/pull/14385))**
743 - **[NFC] phpdoc cleanup
744 ([14335](https://github.com/civicrm/civicrm-core/pull/14335))**
746 - **[NFC] Fix variable types in DAO doc blocks
747 ([14294](https://github.com/civicrm/civicrm-core/pull/14294))**
749 - **[NFC] fix docblock types from boolean to bool
750 ([14296](https://github.com/civicrm/civicrm-core/pull/14296))**
752 - **[NFC] array formatting in CRM_Dedupe_MergerTest
753 ([14273](https://github.com/civicrm/civicrm-core/pull/14273))**
755 - **[NFC] Update Language to be more user friendly when checking logs
756 ([14278](https://github.com/civicrm/civicrm-core/pull/14278))**
758 - **[NFC] array formatting, some comments
759 ([14291](https://github.com/civicrm/civicrm-core/pull/14291))**
761 - **[NFC] fix comment blocks capitalising null
762 ([14306](https://github.com/civicrm/civicrm-core/pull/14306))**
764 - **[NFC] fix more places where var is declared as boolean rather than bool
765 ([14305](https://github.com/civicrm/civicrm-core/pull/14305))**
767 - **[NFC] formatting & comment fixes - Regenerate DAO files
768 ([14304](https://github.com/civicrm/civicrm-core/pull/14304))**
770 - **[NFC] ProfileTest class - formatting & general cleanup
771 ([14282](https://github.com/civicrm/civicrm-core/pull/14282))**
773 - **[NFC] Add trailing comma to pseudoconstant array in DAOs
774 ([14295](https://github.com/civicrm/civicrm-core/pull/14295))**
776 - **[NFC] array formatting in api_v3_paymentTest class
777 ([14451](https://github.com/civicrm/civicrm-core/pull/14451))**
779 - **[NFC] Update Exception DAO class
780 ([14482](https://github.com/civicrm/civicrm-core/pull/14482))**
782 - **[NFC] Further tests tidy up following removing of dbunit
783 ([14344](https://github.com/civicrm/civicrm-core/pull/14344))**
785 - **[NFC] Docblock fixes
786 ([14323](https://github.com/civicrm/civicrm-core/pull/14323))**
788 - **NFC Fix DAO Style issues
789 ([14307](https://github.com/civicrm/civicrm-core/pull/14307))**
791 - **[NFC] reformat UFFieldTest
792 ([14308](https://github.com/civicrm/civicrm-core/pull/14308))**
794 - **contributor-keys file - jira/lab.c.o username fix
795 ([14200](https://github.com/civicrm/civicrm-core/pull/14200))**
797 ## <a name="credits"></a>Credits
799 This release was developed by the following code authors:
801 AGH Strategies - Alice Frumin, Andie Hunt, Eli Lisseck; Agileware - Francis
802 Whittle; Australian Greens - Seamus Lee; Business & Code - Alain Benbassat;
803 Christian Wach; Circle Interactive - Dave Jenkins; CiviCRM - Coleman Watts, Tim
804 Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel
805 Vanhove; Dave D; Electronic Frontier Foundation - Mark Burdett; Francesc Bassas
806 i Bullich; Fuzion - Jitendra Purohit; iXiam - Vangelis Pantazis; JMA Consulting -
807 Monish Deb; Just Hope - Phil Morice Brubaker; Megaphone Technology Consulting -
808 Jon Goldberg; MJW Consulting - Matthew Wire; Onyemenam Ndubuisi; Pradeep
809 Nayak; Progressive Technology Project - Jamie McClelland; Stephen Palmstrom;
810 Wikimedia Foundation - Eileen McNaughton
812 Most authors also reviewed code for this release; in addition, the following
813 reviewers contributed their comments:
815 Agileware - Justin Freeman; Artful Robot - Rich Lott; Blackfly Solutions - Alan
816 Dixon; CEDC - Laryn Kragt Bakker; Chris Burgess; CiviCoop - Jaap Jansma;
817 Centrale Organisatie van Voetbal Scheidsrechters (COVS) - Ed van Leeuwen; Fuzion -
818 Luke Stewart; gareth-circle; Greenpeace CEE - Patrick Figel; JMA Consulting -
819 Joe Murray; John Kingsnorth; John Kyle Cronan; Joinery - Allen Shaw; Lighthouse
820 Design and Consulting - Brian Shaughnessy; myDropWizard - David Snopek; Nicol
821 Wistreich; Webstanz - Adelson;
823 ## <a name="feedback"></a>Feedback
825 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
826 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm