annotating
[civicrm-core.git] / release-notes / 5.15.0.md
1 # CiviCRM 5.15.0
2
3 Released July 3, 2019
4
5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
11
12 ## <a name="synopsis"></a>Synopsis
13
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | no |
17 | Change the database schema? | |
18 | Alter the API? | **yes** |
19 | Require attention to configuration options? | |
20 | Fix problems installing or upgrading to a previous version? | |
21 | Introduce features? | **yes** |
22 | Fix bugs? | **yes** |
23
24 ## <a name="features"></a>Features
25
26 ### Core CiviCRM
27
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))**
31
32 This change makes it so that the quicksearch field options can be rearranged.
33
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))**
37
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.
41
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))**
45
46 Extends the addField() function to support fields of the type `select2` and
47 `select`.
48
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))**
52
53 Adds a dedupe.getstatistics api action.
54
55 - **Support latest phpunit versions
56 ([dev/core#980](https://lab.civicrm.org/dev/core/issues/980):
57 [14333](https://github.com/civicrm/civicrm-core/pull/14333),
58 [14387](https://github.com/civicrm/civicrm-core/pull/14387),
59 [14279](https://github.com/civicrm/civicrm-core/pull/14279),
60 [14319](https://github.com/civicrm/civicrm-core/pull/14319),
61 [14315](https://github.com/civicrm/civicrm-core/pull/14315),
62 [14421](https://github.com/civicrm/civicrm-core/pull/14421),
63 [14404](https://github.com/civicrm/civicrm-core/pull/14404),
64 [14283](https://github.com/civicrm/civicrm-core/pull/14283) and
65 [14321](https://github.com/civicrm/civicrm-core/pull/14321))**
66
67 Updates phpunit version support so that the CiviCRM test suite works with
68 phpunit versions 4.8 thru 8. Removes dependency on discontinued dbunit. Moves
69 towards using api functions instead of dbunit.
70
71 - **Permit sort_name as a url parameter on advanced search
72 ([14475](https://github.com/civicrm/civicrm-core/pull/14475))**
73
74 Lays the ground work for a metadata based approach to search forms,
75 Specifically for the contact form. It converts one field (sort_name) to be
76 added by metadata and also to be supported via url (sort_name=x).
77
78 - **Allow updating ENGINE_CONFIG for System.updatelogtables
79 ([14348](https://github.com/civicrm/civicrm-core/pull/14348))**
80
81 Makes it so users can modify the SQL engine config for log tables thru the
82 api.
83
84 - **Use data provider to test both api versions
85 ([14153](https://github.com/civicrm/civicrm-core/pull/14153))**
86
87 Makes it so 311 v3 tests are converted to also test v4.
88
89 - **Add Contact.get_merge_conflicts api
90 ([14394](https://github.com/civicrm/civicrm-core/pull/14394))**
91
92 - **Add api for Dedupe.getduplicates
93 ([14411](https://github.com/civicrm/civicrm-core/pull/14411))**
94
95 - **Change Activity tag to use select2
96 ([14247](https://github.com/civicrm/civicrm-core/pull/14247))**
97
98 ## CiviContribute
99
100 - **Better support in core for token payment processing (continues work for
101 [dev/core#905](https://lab.civicrm.org/dev/core/issues/905):
102 [14395](https://github.com/civicrm/civicrm-core/pull/14395) and
103 [14343](https://github.com/civicrm/civicrm-core/pull/14343))**
104
105 Separates `contribution_recur` status_id option group from the `contribution`
106 status_id option group and adds the contribution recur statuses 'Processing'
107 and 'Failing'.
108
109 - **Proposal - add cancel_reason field to civicrm_contribution_recur table
110 ([dev/core#830](https://lab.civicrm.org/dev/core/issues/830):
111 [13997](https://github.com/civicrm/civicrm-core/pull/13997))**
112
113 Adds the `Cancellation Reason` field to the form to cancel recurring
114 contributions.
115
116 - **Add time start date and end date values on page contribution widget ajax
117 response ([dev/core#964](https://lab.civicrm.org/dev/core/issues/964):
118 [14262](https://github.com/civicrm/civicrm-core/pull/14262))**
119
120 Makes campaign start and end dates available to the campaign widget on a
121 Contribution Page so that one can customize the Campaign widget with options
122 such as "Starts in X days".
123
124 - **Expose contribution page in Contribution Summary report
125 ([dev/core#959](https://lab.civicrm.org/dev/core/issues/959):
126 [14249](https://github.com/civicrm/civicrm-core/pull/14249))**
127
128 - **Wrap titles in metadata in ts on payment.create api
129 ([14450](https://github.com/civicrm/civicrm-core/pull/14450))**
130
131 Improves use of the api v3 explorer for multilingual sites by translating the
132 titlees in the payment create api action.
133
134 ## CiviEvent
135
136 - **Wysiwyg support for i18n event fields
137 ([14384](https://github.com/civicrm/civicrm-core/pull/14384) and
138 [14396](https://github.com/civicrm/civicrm-core/pull/14396))**
139
140 Adds support for wysiwyg editor in i18n popup for event fields.
141
142 ## <a name="bugs"></a>Bugs resolved
143
144 ### Core CiviCRM
145
146 - **[CRM-21832](https://issues.civicrm.org/jira/browse/CRM-21832) Recurring
147 activities don't carry over custom data and tags
148 ([14183](https://github.com/civicrm/civicrm-core/pull/14183))**
149
150 - **Fix Notice errors caused by l10n rewriting of query so query outputed create
151 view rather than the create table
152 ([dev/translation#26](https://lab.civicrm.org/dev/translation/issues/26):
153 [14152](https://github.com/civicrm/civicrm-core/pull/14152))**
154
155 Fixes a notice `Undefined property: CRM_Core_DAO::$Create_Table in
156 CRM_Core_DAO::checkConstraintExists()..` when enabling a language in
157 multilingual mode.
158
159 - **Disabling Alphabetical Pager is not respected for events and contribution
160 pages. ([dev/core#705](https://lab.civicrm.org/dev/core/issues/705):
161 [14203](https://github.com/civicrm/civicrm-core/pull/14203))**
162
163 - **File custom fields cause a fatal error when trying to merge
164 ([dev/core#723](https://lab.civicrm.org/dev/core/issues/723):
165 [14325](https://github.com/civicrm/civicrm-core/pull/14325))**
166
167 Fixes a fatal error when trying to merge two contacts with the custom fields
168 of type file.
169
170 - **Autogenerated .htaccess is for apache 2.2
171 ([dev/core#913](https://lab.civicrm.org/dev/core/issues/913):
172 [14158](https://github.com/civicrm/civicrm-core/pull/14158))**
173
174 Updates the auto-generated .htaccess so it no longer gives an internal error
175 for sites on apache 2.4.
176
177 - **Dedupe screen: single "flip" and multi-selected-flip have no effect
178 ([dev/core#932](https://lab.civicrm.org/dev/core/issues/932):
179 [14195](https://github.com/civicrm/civicrm-core/pull/14195))**
180
181 This change fixes the dedupe screen flip selected duplicates button so that it
182 works as expected.
183
184 - **$this can not be used in static methods
185 ([dev/core#945](https://lab.civicrm.org/dev/core/issues/945):
186 [14217](https://github.com/civicrm/civicrm-core/pull/14217))**
187
188 Fixes "$this can not be used in static methods" error thrown by
189 getIncompleteImportTables() in CRM/Contact/Import/ImportJob.php
190
191 - **CiviCRM 5.13.4 - Specified key was too long; max key length is 767 bytes
192 ([dev/core#978](https://lab.civicrm.org/dev/core/issues/978):
193 [14363](https://github.com/civicrm/civicrm-core/pull/14363))**
194
195 Fixes DB Error: `unknown error` if the system status check if query fails.
196
197 - **userFrameworkResourceURL gets wrong trailing slash on windows
198 ([dev/core#985](https://lab.civicrm.org/dev/core/issues/985):
199 [14405](https://github.com/civicrm/civicrm-core/pull/14405))**
200
201 Fixes an issue where addTrailingSlash would generate a \ instead of a '/' on
202 Windows.
203
204 - **Can't set a non-breaking space as Thousands Separator in Administer >
205 Localization settings
206 ([dev/core#994](https://lab.civicrm.org/dev/core/issues/994):
207 [14376](https://github.com/civicrm/civicrm-core/pull/14376))**
208
209 Removes form rule preventing location separators having more than one
210 character so that one can use a non-breaking space (or other string longer
211 than one character).
212
213 - **Ensure that the oldest creation date is preserved when deduping
214 ([dev/core#996](https://lab.civicrm.org/dev/core/issues/996):
215 [14368](https://github.com/civicrm/civicrm-core/pull/14368))**
216
217 - **Add CRM_Utils_System::sendResponse(). Fix AssetBuilder's status-code on WP.
218 ([14468](https://github.com/civicrm/civicrm-core/pull/14468))**
219
220 Ensures that a consistent response is returned across CMS's in regards to
221 Asset Builder URLs. Before this change Wordpress would return a different
222 response then Drupal/Backdrop and E2E Unit tests would fail on Wordpress.
223
224 - **Fix Exception api to save lower id number as contact 1
225 ([14448](https://github.com/civicrm/civicrm-core/pull/14448))**
226
227 Improves consistency when deduping contacts.
228
229 - **Fix Exception to remove result from duplicates
230 ([14447](https://github.com/civicrm/civicrm-core/pull/14447))**
231
232 Ensures that marking a non-duplicate contact removes them from the cached
233 duplicates table.
234
235 - **Fix upgrade on participant_register date
236 ([14427](https://github.com/civicrm/civicrm-core/pull/14427))**
237
238 Fixes conversion routing on participant register date when upgrading to 5.15.
239
240 - **Misc translation 'ts' fixes
241 ([14467](https://github.com/civicrm/civicrm-core/pull/14467))**
242
243 Fixes a few places where ts() was used incorrectly so that is used correctly.
244
245 - **Don't run search when editing smartgroup criteria
246 ([14464](https://github.com/civicrm/civicrm-core/pull/14464))**
247
248 Ensures that editing smart group criteria does not trigger a search on that
249 smartgroup before the criteria can be viewed.
250
251 - **Caches - Normalize dependency on php-cache integration-tests
252 ([14423](https://github.com/civicrm/civicrm-core/pull/14423))**
253
254 - **Add angular-xeditable to angular
255 ([14414](https://github.com/civicrm/civicrm-core/pull/14414))**
256
257 Add angular xeditable component to our bower_components.
258
259 - **CRM_Extension_System - Only allow `test.*` extensions during headless
260 testing. Hide from regular users.
261 ([14392](https://github.com/civicrm/civicrm-core/pull/14392))**
262
263 - **Fix name of cache key column to be all lower case rather than camel case in
264 civicrm_prevnext_cache
265 ([14359](https://github.com/civicrm/civicrm-core/pull/14359))**
266
267 - **Translation in billingblock.tpl - dropping 'Information' ([14358](https://github.com/civicrm/civicrm-core/pull/14358))**
268
269 - **Don't apply api3 pre/post processing to api4 actions ([14357](https://github.com/civicrm/civicrm-core/pull/14357))**
270
271 - **Fix bug where contribution status is mishandled if label is changed ([14352](https://github.com/civicrm/civicrm-core/pull/14352))**
272
273 - **Remove duplicate line in case BAO ([14345](https://github.com/civicrm/civicrm-core/pull/14345))**
274
275 - **correct syntax "IS NOT NULL" to get pledge payment count ([13374](https://github.com/civicrm/civicrm-core/pull/13374))**
276
277 - **Fix fatal error when full group by mysql mode enabled & selecting contacts ([14331](https://github.com/civicrm/civicrm-core/pull/14331))**
278
279 - **Reduce cache bypasses - do not bypass custom metadata cache in setGroupTree ([14292](https://github.com/civicrm/civicrm-core/pull/14292))**
280
281 - **Fix legacy IPN endpoint for Drupal (gitlab issue 973) ([14272](https://github.com/civicrm/civicrm-core/pull/14272))**
282
283 - **Make apiRequst nextId accessible for api4 constructor ([14311](https://github.com/civicrm/civicrm-core/pull/14311))**
284
285 - **crmRouteBinder - Remove params from url if they equal their defaults ([14211](https://github.com/civicrm/civicrm-core/pull/14211))**
286
287 - **Fix deprecation notice on manage events page ([14289](https://github.com/civicrm/civicrm-core/pull/14289))**
288
289 - **Try enabling api4 extension in test suite ([14241](https://github.com/civicrm/civicrm-core/pull/14241))**
290
291 - **Declare API Key as a protected field for future use ([14274](https://github.com/civicrm/civicrm-core/pull/14274))**
292
293 - **add developer tab for summary report ([14254](https://github.com/civicrm/civicrm-core/pull/14254))**
294
295 - **Remove wasteful double-caching of settings metadata ([14259](https://github.com/civicrm/civicrm-core/pull/14259))**
296
297 - **Fix financial acl permissions to respect check_permissions ([14118](https://github.com/civicrm/civicrm-core/pull/14118))**
298
299 - **When creating relationship types don't munge names ([14216](https://github.com/civicrm/civicrm-core/pull/14216))**
300
301 - **Remove broken delete from customGroupCreate ([14239](https://github.com/civicrm/civicrm-core/pull/14239))**
302
303 - **Remove CIVICRM_TEMP_FORCE_UTF8; deprecate TempTable::setUtf8() ([14004](https://github.com/civicrm/civicrm-core/pull/14004))**
304
305 - **Pass the RFC 3164 severity level thru to drupal watchdog. ([14185](https://github.com/civicrm/civicrm-core/pull/14185))**
306
307 - **Stop overriding is_active default when saving new relationship ([14199](https://github.com/civicrm/civicrm-core/pull/14199))**
308
309 - **contributor-keys file - jira/lab.c.o username fix ([14200](https://github.com/civicrm/civicrm-core/pull/14200))**
310
311 - **IDE re-format of tools directory ([14177](https://github.com/civicrm/civicrm-core/pull/14177))**
312
313 - **Enotice fix on creating a smart group ([14180](https://github.com/civicrm/civicrm-core/pull/14180))**
314
315 - **Don't call session_start() before CMS bootstrap (PHP 7.2 compat) ([14074](https://github.com/civicrm/civicrm-core/pull/14074))**
316
317 - **Cache/IntegrationTests - Remove. This can be replaced by composer dependency ([255](https://github.com/civicrm/civicrm-packages/pull/255))**
318
319 - **Get LegacySimpleCacheTest complient with phpunit6+ ([254](https://github.com/civicrm/civicrm-packages/pull/254))**
320
321 ## CiviCase
322
323 - **Case report showing 1 result
324 ([dev/core#743](https://lab.civicrm.org/dev/core/issues/743):
325 [14082](https://github.com/civicrm/civicrm-core/pull/14082))**
326
327 Fixes the Case Summary report so that it properly filters on case
328 relationships.
329
330 - **Set title properly on Move/Copy/File on Case popup
331 ([14347](https://github.com/civicrm/civicrm-core/pull/14347))**
332
333 Ensures when clicking "Move to Case"/"Copy to Case" from the Manage cases
334 activity list the title is set correctly and stays set correctly instead of
335 reverting to "File on Case".
336
337 - **Closing a case gives a warning notice
338 ([dev/core#896](https://lab.civicrm.org/dev/core/issues/896):
339 [14160](https://github.com/civicrm/civicrm-core/pull/14160))**
340
341 - **Manage Case search filter "Deleted Activities" no longer working
342 ([dev/core#1022](https://lab.civicrm.org/dev/core/issues/1022):
343 [14445](https://github.com/civicrm/civicrm-core/pull/14445))**
344
345 ## CiviContribute
346
347 - **Bug in storing settings for CiviContribute component
348 ([dev/financial#54](https://lab.civicrm.org/dev/financial/issues/54):
349 [14267](https://github.com/civicrm/civicrm-core/pull/14267))**
350
351 Ensures deferred revenue settings are respected.
352
353 - **Changing financial type on a contribution records incorrect financial items
354 ([dev/financial#56](https://lab.civicrm.org/dev/financial/issues/56):
355 [14309](https://github.com/civicrm/civicrm-core/pull/14309))**
356
357 Fixes a bug where changing the financial type on a contribution record would
358 result in a sales tax row being added regardless of whether sales tax was
359 turned on.
360
361 - **Elavon payment processor seems to no longer accept url encoded emails
362 ([dev/core#966](https://lab.civicrm.org/dev/core/issues/966):
363 [14263](https://github.com/civicrm/civicrm-core/pull/14263))**
364
365 Fixes payment processing for sites using an Elavon processor.
366
367 - **Set new inactive statuses as 'Chargeback' does not exist on new installs and
368 that breaks Contributionrecur.create API
369 ([14398](https://github.com/civicrm/civicrm-core/pull/14398))**
370
371 - **Fix inconsistent handling when searching contribution text fields
372 ([14354](https://github.com/civicrm/civicrm-core/pull/14354))**
373
374 ## CiviEvent
375
376 - **Sorting participants ignored search values.
377 ([dev/core#981](https://lab.civicrm.org/dev/core/issues/981):
378 [14313](https://github.com/civicrm/civicrm-core/pull/14313))**
379
380 Ensures when searching for participants for a specific event and then sorting
381 the results the search parameters are respected, before this change all
382 participants for all events would be displayed.
383
384 - **Backoffice participant transfer form does not populate contact reference
385 field ([dev/core#888](https://lab.civicrm.org/dev/core/issues/888):
386 [14102](https://github.com/civicrm/civicrm-core/pull/14102))**
387
388 ## CiviMail
389
390 - **Deletion of SMS provider caused all scheduled reminders to fail to be sent
391 (begins work for [dev/core#369](https://lab.civicrm.org/dev/core/issues/369):
392 [14266](https://github.com/civicrm/civicrm-core/pull/14266))**
393
394 Before this change if the Scheduled reminder job was triggered and there were
395 active SMS scheduled reminders for which the SMS Provider has been deleted
396 the job would fail with the message "Provider not known or not provided"
397 and no scheduled reminders would go out this change makes it so the rest of
398 the scheduled reminder will go out.
399
400 - **E_NOTICE when creating bulk SMS
401 ([dev/core#1023](https://lab.civicrm.org/dev/core/issues/1023):
402 [14449](https://github.com/civicrm/civicrm-core/pull/14449))**
403
404 Fixes E_NOTICE `Notice: Undefined index: Subject in
405 civicrm_api3_mailing_preview()` when creating bulk SMS.
406
407 - **"Confirm this subscription" URL generated by MailingEventSubscribe API
408 should always be a front-end
409 URL([dev/core#1005](https://lab.civicrm.org/dev/core/issues/1005):
410 [14389](https://github.com/civicrm/civicrm-core/pull/14389))**
411
412 Ensures that the "Confirm this subscription" URL included in bulk emails is
413 always a front end URL.
414
415 - **SMTP help text is misleading - references the wrong admin screen
416 ([dev/core#879](https://lab.civicrm.org/dev/core/issues/879):
417 [14329](https://github.com/civicrm/civicrm-core/pull/14329))**
418
419 - **[Outbound mail admin form] fix some more notices resulting from recent
420 change ([14433](https://github.com/civicrm/civicrm-core/pull/14433))**
421
422 ## CiviPledge
423
424 - **incorrect capitalization in default Pledges - Acknowledgement message
425 template ([dev/core#1010](https://lab.civicrm.org/dev/core/issues/1010):
426 [14465](https://github.com/civicrm/civicrm-core/pull/14465) and
427 [14469](https://github.com/civicrm/civicrm-core/pull/14469))**
428
429 Ensures that Pledge acknowledgments use correct capitalization and the
430 `email_greeting`.
431
432 ## Drupal Integration
433
434 - **incorrect Drupal 8 login URL
435 ([dev/core#898]https://lab.civicrm.org/dev/core/issues/898():
436 [14138](https://github.com/civicrm/civicrm-core/pull/14138))**
437
438 If you create a public contribution page on a Drupal 8 site, it will include a
439 login link for unauthenticated users, with parameters ?destination=... to
440 direct back to the contribution page after login. This link is broken with
441 recent Drupal versions, because it needs to go to /user/login instead of just
442 /user.
443
444 - **Drupal8: Implement set UF locale/language (affects mailing tokens)
445 ([dev/drupal#19](https://lab.civicrm.org/dev/drupal/issues/19):
446 [14302](https://github.com/civicrm/civicrm-core/pull/14302) and
447 [12152](https://github.com/civicrm/civicrm-core/pull/12152))**
448
449 Fixes a 500 error when calling the REST API endpoint in Drupal 8 and fixes a
450 bug when using Drupal 8 with a multilingual site where mailing token links
451 were not taking the user to the page in the expected language.
452
453 - **Drupal8/jquery
454 ([dev/drupal#68](https://lab.civicrm.org/dev/drupal/issues/68):
455 [14442](https://github.com/civicrm/civicrm-core/pull/14442))**
456
457 Removes error if Drupal's jQuery is not loaded (if its not needed).
458
459 ## Joomla Integration
460
461 - **Fix php warning when viewing profiles
462 ([dev/joomla#11](https://lab.civicrm.org/dev/joomla/issues/11):
463 [14312](https://github.com/civicrm/civicrm-core/pull/14312))**
464
465 ## <a name="misc"></a>Miscellany
466
467 - **Remove confusing pass params by ref
468 ([14360](https://github.com/civicrm/civicrm-core/pull/14360))**
469
470 - **Add EntityPageTrait
471 ([14399](https://github.com/civicrm/civicrm-core/pull/14399))**
472
473 - **[code-quality] [jcalendar] remove jcalendar usage from
474 participant_register_date on event search
475 ([14330](https://github.com/civicrm/civicrm-core/pull/14330))**
476
477 - **Deprecate creating recipients from MailingJob.create.
478 ([14097](https://github.com/civicrm/civicrm-core/pull/14097))**
479
480 - **Fix running of CRM_Utils_MoneyTest on PHPUnit6+
481 ([14424](https://github.com/civicrm/civicrm-core/pull/14424))**
482
483 - **Switch to calling Payment.create api when processing a refund from
484 AdditionalPayment form
485 ([14317](https://github.com/civicrm/civicrm-core/pull/14317))**
486
487 - **Updating contact (with no email) via import adding email doesn't set email
488 as primary (adds test for
489 [dev/core#953](https://lab.civicrm.org/dev/core/issues/953):
490 [14225](https://github.com/civicrm/civicrm-core/pull/14225))**
491
492 - **Cancel first contribution associated to membership, cancels the membership
493 (preliminary work for
494 [dev/core#927](https://lab.civicrm.org/dev/core/issues/927):
495 [14197](https://github.com/civicrm/civicrm-core/pull/14197))**
496
497 - **Searching for removed contacts in a smart group doesn't work (preliminary
498 work for [dev/core#926](https://lab.civicrm.org/dev/core/issues/926):
499 [14181](https://github.com/civicrm/civicrm-core/pull/14181))**
500
501 - **When using custom fields for smart group criteria with relative dates the
502 group does not respect the relative date over time (preliminary work for
503 [dev/core#389](https://lab.civicrm.org/dev/core/issues/389)[14401]:
504 (https://github.com/civicrm/civicrm-core/pull/14401) and
505 [14386](https://github.com/civicrm/civicrm-core/pull/14386))**
506
507 - **Remove instances of $dao->free
508 ([dev/core#562](https://lab.civicrm.org/dev/core/issues/562):
509 [14179](https://github.com/civicrm/civicrm-core/pull/14179))**
510
511 - **Correct syntax for Get pledge payment count (extend test coverage for
512 [dev/core#627](https://lab.civicrm.org/dev/core/issues/627):
513 [14350](https://github.com/civicrm/civicrm-core/pull/14350))**
514
515 - **Remove never-called function
516 _civicrm_api3_deprecated_contact_check_custom_params
517 ([14341](https://github.com/civicrm/civicrm-core/pull/14341))**
518
519 - **Unit test for FGB error in #14331
520 ([14340](https://github.com/civicrm/civicrm-core/pull/14340))**
521
522 - **Test tweaks that *might* help with intermittant test weirdness
523 ([14458](https://github.com/civicrm/civicrm-core/pull/14458))**
524
525 - **[TEST SUITE] Remove some use of dbunit from tests
526 ([14271](https://github.com/civicrm/civicrm-core/pull/14271))**
527
528 - **Test cleanup to remove references to discontinued package dbunit
529 ([14276](https://github.com/civicrm/civicrm-core/pull/14276))**
530
531 - **[dbunit test] remove dbunit dependency
532 ([14328](https://github.com/civicrm/civicrm-core/pull/14328))**
533
534 - **Add unit test for merge handling on custom data.
535 ([14310](https://github.com/civicrm/civicrm-core/pull/14310))**
536
537 - **Fix test / possible live error on submitting credit card renewals
538 ([14316](https://github.com/civicrm/civicrm-core/pull/14316))**
539
540 - **Update testGetActivityAccessCiviCRMEnough test for clarity
541 ([14226](https://github.com/civicrm/civicrm-core/pull/14226))**
542
543 - **[REF] Move retrieval of basicSearchFields to 'get' fn
544 ([14476](https://github.com/civicrm/civicrm-core/pull/14476))**
545
546 - **[REF] Remove input format function from deprecated utils to the only place
547 that calls it ([14342](https://github.com/civicrm/civicrm-core/pull/14342))**
548
549 - **[REF] extract isLiveMode
550 ([14336](https://github.com/civicrm/civicrm-core/pull/14336))**
551
552 - **[REF] use generic loadStandardSearchOptionsFromUrl
553 ([14338](https://github.com/civicrm/civicrm-core/pull/14338))**
554
555 - **[REF] Extract function to get cached duplicate matches
556 ([14324](https://github.com/civicrm/civicrm-core/pull/14324))**
557
558 - **[REF] minor code re-org
559 ([14318](https://github.com/civicrm/civicrm-core/pull/14318))**
560
561 - **[REF] Remove extraneous variable
562 ([14261](https://github.com/civicrm/civicrm-core/pull/14261))**
563
564 - **[REF] Centralize logic for resolving settings pseudoconstants
565 ([14264](https://github.com/civicrm/civicrm-core/pull/14264))**
566
567 - **[REF] Super Minor code readability fix
568 ([14258](https://github.com/civicrm/civicrm-core/pull/14258))**
569
570 - **[ref] Move copyCustomFields function from Event to Core_DAO for
571 re-usablibilty ([14171](https://github.com/civicrm/civicrm-core/pull/14171))**
572
573 - **[ref] Remove reference symbol from 2 variables
574 ([14270](https://github.com/civicrm/civicrm-core/pull/14270))**
575
576 - **[cleanup] Remove deprecated pattern &CRM_Core_Config::singleton()
577 ([14178](https://github.com/civicrm/civicrm-core/pull/14178))**
578
579 - **REF Refactor to reduce duplication on payment forms
580 ([14206](https://github.com/civicrm/civicrm-core/pull/14206))**
581
582 - **[REF+ test] start process of cleaning up payment activity handling
583 ([14198](https://github.com/civicrm/civicrm-core/pull/14198))**
584
585 - **[REF][Test] Remove call to
586 CRM_Contribute_BAO_Contribution::recordAdditionalPayment in favour of payment
587 create ([14137](https://github.com/civicrm/civicrm-core/pull/14137))**
588
589 - **[REF+test] clean up code for getting labels for merge screen, stdise
590 ([14260](https://github.com/civicrm/civicrm-core/pull/14260))**
591
592 - **[REF] Simplify ACL page template
593 ([14288](https://github.com/civicrm/civicrm-core/pull/14288))**
594
595 - **[REF] Fix pointless use of CRM_Utils_Array::value in Campaign BAO
596 ([14300](https://github.com/civicrm/civicrm-core/pull/14300))**
597
598 - **[code-cleanup] remove orderBy param from getDuplicatePairs, it is not used
599 ([14297](https://github.com/civicrm/civicrm-core/pull/14297))**
600
601 - **[REF] extract buildGroupTree function
602 ([14303](https://github.com/civicrm/civicrm-core/pull/14303))**
603
604 - **[REF] Test class cleanup - Extract function to create nuanced custom fields
605 to a trait ([14301](https://github.com/civicrm/civicrm-core/pull/14301))**
606
607 - **[REF] Cleanup input & output on paymentActivityCreate & improve test
608 ([14269](https://github.com/civicrm/civicrm-core/pull/14269))**
609
610 - **[REF] move calculation of migrationInfo into the function that uses it
611 ([14365](https://github.com/civicrm/civicrm-core/pull/14365))**
612
613 - **[REF] extract buildClause from CRM_Report_Form_Event_Income
614 ([14098](https://github.com/civicrm/civicrm-core/pull/14098))**
615
616 - **[REF] Activity Summary report - move temp table generation etc from
617 postProcess to buildQuery, remove postProcess, don't skip in unit tests
618 ([14375](https://github.com/civicrm/civicrm-core/pull/14375))**
619
620 - **[REF] Activity form - very minor tidy up
621 ([14434](https://github.com/civicrm/civicrm-core/pull/14434))**
622
623 - **[REF] Stop passing cacheKey to refillCache
624 ([14337](https://github.com/civicrm/civicrm-core/pull/14337))**
625
626 - **[REF] dev/core#998 make processDupes testable & add test
627 ([14370](https://github.com/civicrm/civicrm-core/pull/14370))**
628
629 - **[REF] Remove reference to 'changePaymentInstrument' from
630 updateFinancialAccounts as never passed in
631 ([14353](https://github.com/civicrm/civicrm-core/pull/14353))**
632
633 - **[NFC][test-fix] centralise use of assertLike for comparing sql
634 ([14470](https://github.com/civicrm/civicrm-core/pull/14470))**
635
636 - **[nfc] [test] Skip testGetFromTo on date transition
637 ([14472](https://github.com/civicrm/civicrm-core/pull/14472))**
638
639 - **[NFC] Fix issue with Job Manager Test giving out a warning
640 ([14327](https://github.com/civicrm/civicrm-core/pull/14327))**
641
642 - **[NFC] Fix comment block for variable declarations
643 ([14314](https://github.com/civicrm/civicrm-core/pull/14314))**
644
645 - **(NFC) Update node package versions to latest ones
646 ([14087](https://github.com/civicrm/civicrm-core/pull/14087))**
647
648 - **[NFC] Update civicrm_generated data file following addition of contriā€¦
649 ([14371](https://github.com/civicrm/civicrm-core/pull/14371))**
650
651 - **(NFC) Remove without param tests
652 ([14454](https://github.com/civicrm/civicrm-core/pull/14454))**
653
654 - **[NFC] PHPCS fixes.
655 ([14402](https://github.com/civicrm/civicrm-core/pull/14402))**
656
657 - **[NFC] Update package-lock and civicrm_generated to fix langague issues
658 ([14385](https://github.com/civicrm/civicrm-core/pull/14385))**
659
660 - **[NFC] phpdoc cleanup
661 ([14335](https://github.com/civicrm/civicrm-core/pull/14335))**
662
663 - **[NFC] Fix variable types in DAO doc blocks
664 ([14294](https://github.com/civicrm/civicrm-core/pull/14294))**
665
666 - **[NFC] fix docblock types from boolean to bool
667 ([14296](https://github.com/civicrm/civicrm-core/pull/14296))**
668
669 - **[NFC] array formatting in CRM_Dedupe_MergerTest
670 ([14273](https://github.com/civicrm/civicrm-core/pull/14273))**
671
672 - **[NFC] Update Language to be more user friendly when checking logs
673 ([14278](https://github.com/civicrm/civicrm-core/pull/14278))**
674
675 - **[NFC] array formatting, some comments
676 ([14291](https://github.com/civicrm/civicrm-core/pull/14291))**
677
678 - **[NFC] fix comment blocks capitalising null
679 ([14306](https://github.com/civicrm/civicrm-core/pull/14306))**
680
681 - **[NFC] fix more places where var is declared as boolean rather than bool
682 ([14305](https://github.com/civicrm/civicrm-core/pull/14305))**
683
684 - **[NFC] formatting & comment fixes - Regenerate DAO files
685 ([14304](https://github.com/civicrm/civicrm-core/pull/14304))**
686
687 - **[NFC] ProfileTest class - formatting & general cleanup
688 ([14282](https://github.com/civicrm/civicrm-core/pull/14282))**
689
690 - **[NFC] Add trailing comma to pseudoconstant array in DAOs
691 ([14295](https://github.com/civicrm/civicrm-core/pull/14295))**
692
693 - **[NFC] array formatting in api_v3_paymentTest class
694 ([14451](https://github.com/civicrm/civicrm-core/pull/14451))**
695
696 - **[NFC] Update Exception DAO class
697 ([14482](https://github.com/civicrm/civicrm-core/pull/14482))**
698
699 - **[NFC] Further tests tidy up following removing of dbunit
700 ([14344](https://github.com/civicrm/civicrm-core/pull/14344))**
701
702 - **[NFC] Docblock fixes
703 ([14323](https://github.com/civicrm/civicrm-core/pull/14323))**
704
705 - **NFC Fix DAO Style issues
706 ([14307](https://github.com/civicrm/civicrm-core/pull/14307))**
707
708 - **[NFC] reformat UFFieldTest
709 ([14308](https://github.com/civicrm/civicrm-core/pull/14308))**
710
711 ## <a name="credits"></a>Credits
712
713 This release was developed by the following code authors:
714
715 AGH Strategies - Alice Frumin, Andrew Hunt, Eli Lisseck; Agileware - Francis
716 Whittle; Australian Greens - Seamus Lee; Business & Code - Alain Benbassat;
717 Christian Wach; Circle Interactive - Dave Jenkins; CiviCRM - Coleman Watts, Tim
718 Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel
719 Vanhove; Dave D; Electronic Frontier Foundation - Mark Burdett; Francesc Bassas
720 i Bullich; Fuzion - Jitendra Purohit; iXiam - Vangelis Pantazis; JMA Consulting -
721 Monish Deb; Just Hope - Phil Morice Brubaker; Megaphone Technology Consulting -
722 Jon Goldberg; MJW Consulting - Matthew Wire; Onyemenam Ndubuisi; Pradeep
723 Nayak; Progressive Technology Project - Jamie McClelland; Stephen Palmstrom;
724 Wikimedia Foundation - Eileen McNaughton
725
726 Most authors also reviewed code for this release; in addition, the following
727 reviewers contributed their comments:
728
729 Agileware - Justin Freeman; Artful Robot - Rich Lott; Blackfly Solutions - Alan
730 Dixon; CEDC - Laryn Kragt Bakker; Chris Burgess; CiviCoop - Jaap Jansma;
731 Centrale Organisatie van Voetbal Scheidsrechters (COVS) - Ed van Leeuwen; Fuzion -
732 Luke Stewart; gareth-circle; Greenpeace CEE - Patrick Figel; JMA Consulting -
733 Joe Murray; John Kingsnorth; John Kyle Cronan; Joinery - Allen Shaw; Lighthouse
734 Design and Consulting - Brian Shaughnessy; myDropWizard - David Snopek; Nicol
735 Wistreich; Webstanz - Adelson;
736
737 ## <a name="feedback"></a>Feedback
738
739 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
740 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
741 and contact `@agh1`.