Merge pull request #23615 from totten/master-mysql-bump
[civicrm-core.git] / release-notes / 5.26.0.md
1 # CiviCRM 5.26.0
2
3 Released June 3, 2020
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? | **yes** |
18 | Alter the API? | **yes** |
19 | Require attention to configuration options? | **yes** |
20 | Fix problems installing or upgrading to a previous version? | **yes** |
21 | Introduce features? | **yes** |
22 | Fix bugs? | **yes** |
23
24 ## NOTICE: WordPress Service URLs
25
26 The upcoming release of WordPress 5.5 ([ETA August 2020](https://make.wordpress.org/core/5-5/)) requires changes to several CiviCRM URLs. CiviCRM 5.26+ adopts a new URL convention. For old URLs, there is transitional support that will work for most web-based visitors. However, this may not be sufficient for *external service integrations* (e.g. certain payment processors or email relays which send notifications to CiviCRM).
27
28 Administrators should promptly assess and update any external services which submit notifications to their CiviCRM-WordPress sites. For more information, see the blog post [CiviCRM 5.26 and WordPress: Important notice](https://civicrm.org/blog/kcristiano/civicrm-526-and-wordpress-important-notice).
29
30 ## <a name="features"></a>Features
31
32 ### Core CiviCRM
33
34 - **Create nl_BE translation
35 ([dev/translation#4](https://lab.civicrm.org/dev/translation/issues/4):
36 [17048](https://github.com/civicrm/civicrm-core/pull/17048),
37 [17027](https://github.com/civicrm/civicrm-core/pull/17027) and
38 [16966](https://github.com/civicrm/civicrm-core/pull/16966))**
39
40 Adds a "Dutch (Belgium)" (shorthand: nl_BE) translation of CiviCRM which
41 heavily borrows from the existing "Dutch (Netherlands)" (nl_NL) translation
42 with a few changes.
43
44 - **APIv4 - Allow field options to be returned in multiple formats
45 ([17167](https://github.com/civicrm/civicrm-core/pull/17167))**
46
47 Gives more flexibility about how options are returned from APIv4 and adds
48 visibility in the API explorer.
49
50 - **APIv4 - How do I interact with option values?
51 ([dev/core#1705](https://lab.civicrm.org/dev/core/issues/1705):
52 [17158](https://github.com/civicrm/civicrm-core/pull/17158),
53 [17138](https://github.com/civicrm/civicrm-core/pull/17138) and
54 [17219](https://github.com/civicrm/civicrm-core/pull/17219))**
55
56 Adds support for pseudoconstants to APIv4.
57
58 - **APIv4 - Add MessageTemplate API
59 ([17073](https://github.com/civicrm/civicrm-core/pull/17073))**
60
61 Adds new "MessageTemplate" entity to APIv4.
62
63 - **APIv4 - Add support for HAVING clause
64 ([17015](https://github.com/civicrm/civicrm-core/pull/17015))**
65
66 Adds support for using `HAVING` clauses in APIv4.
67
68 - **APIv4 - Query Improvements (Work Towards
69 [dev/report#31](https://lab.civicrm.org/dev/report/issues/31):
70 [17113](https://github.com/civicrm/civicrm-core/pull/17113) and
71 [17047](https://github.com/civicrm/civicrm-core/pull/17047))**
72
73 This adds UI support for new APIv4 features. Specifically, SQL functions and
74 aliases are now available in the API explorer, as is the `HAVING` clause and
75 `GROUP BY` clause.
76
77 - **End of life planning for MySQL server 5.0 - 5.6 (Work Towards
78 [dev/core#1681](https://lab.civicrm.org/dev/core/issues/1681):
79 [17261](https://github.com/civicrm/civicrm-core/pull/17261))**
80
81 Adds a deprecation notice for systems using MySQL versions before 5.7 and
82 requires 5.5 to install.
83
84 - **Allow inline help text title to be overriden
85 ([dev/core#1693](https://lab.civicrm.org/dev/core/issues/1693):
86 [16998](https://github.com/civicrm/civicrm-core/pull/16998))**
87
88 This change makes it possible to override inline help text titles in a
89 `.hlp.extra` file.
90
91 - **Update attachment message on mailing form.
92 ([dev/core#1696](https://lab.civicrm.org/dev/core/issues/1696):
93 [17024](https://github.com/civicrm/civicrm-core/pull/17024))**
94
95 This updates the help text on CiviMail attachments to specify the maximum size
96 of each attachment.
97
98 - **Convert CC and BCC fields to use an entity reference.
99 ([17064](https://github.com/civicrm/civicrm-core/pull/17064) and [17129](https://github.com/civicrm/civicrm-core/pull/17129))**
100
101 The CC and BCC fields on all email forms are now entity references to the
102 email ID. This simplifies the code and extends filtering on the field.
103
104 - **Introduce "civi.dao.preUpdate" and "civi.dao.preInsert" events
105 ([dev/core#1638](https://lab.civicrm.org/dev/core/issues/1638):
106 [16714](https://github.com/civicrm/civicrm-core/pull/16714))**
107
108 Makes it possible to use a hook to inspect the data of an Option Value prior
109 to it being created or updated.
110
111 - **Add ID to custom group/field admin forms
112 ([17055](https://github.com/civicrm/civicrm-core/pull/17055))**
113
114 The ID numbers are displayed in the tables of custom fields and groups.
115
116 - **Improve AngularJS performance with one-time binding for static strings
117 ([17050](https://github.com/civicrm/civicrm-core/pull/17050))**
118
119 This improves performance of AngularJS pages and forms by having the
120 translation function only execute once when the translated string is static.
121
122 - **Allow setting metadata to use the `table` option. Update example setting
123 `default_invoice_page`.
124 ([16903](https://github.com/civicrm/civicrm-core/pull/16903))**
125
126 Setting metadata that refers to an entity can now be defined with reference to
127 a database table, specifying the key and label columns, rather than requiring
128 a pseudoconstant function to populate the options.
129
130 - **Add / make fit for purpose email.getlist api call
131 ([16993](https://github.com/civicrm/civicrm-core/pull/16993))**
132
133 Improves the `Email.getlist` API so that it is usable for entity reference
134 fields.
135
136 ### CiviCase
137
138 - **Add email link in case summary
139 ([16959](https://github.com/civicrm/civicrm-core/pull/16959))**
140
141 Adds an "Email" icon to the Case Summary page that when clicked opens a pop up
142 window to email the client.
143
144 ### CiviContribute
145
146 - **Add contribution source to recurring contribution report
147 ([17187](https://github.com/civicrm/civicrm-core/pull/17187))**
148
149 Adds "Contribution Source" as a column on the Recurring Contribution Report.
150
151 - **Show email receipt status on view recurring contribution
152 ([17177](https://github.com/civicrm/civicrm-core/pull/17177))**
153
154 When viewing a contribution this change exposes the value of
155 `is_email_receipt`.
156
157 - **Add contributor email address to cancelSubscription form so it is clear who
158 will be notified
159 ([16716](https://github.com/civicrm/civicrm-core/pull/16716))**
160
161 Adds the contributor email to the Cancel Recurring Contribution form so it is
162 clear who will be notified.
163
164 - **Add filter and sorting for receipt date in contribution report
165 ([17044](https://github.com/civicrm/civicrm-core/pull/17044) and
166 [16994](https://github.com/civicrm/civicrm-core/pull/16994))**
167
168 Adds a filter and sorting for "receipt date" to Contribution Reports.
169
170 - **Capitalise "PAN Truncation"
171 ([16973](https://github.com/civicrm/civicrm-core/pull/16973) and
172 [16964](https://github.com/civicrm/civicrm-core/pull/16964))**
173
174 Capitilizes the "PAN" in "Pan Truncation" to improve user experience. PAN is
175 an acronym for Primary Account Number (credit card number).
176
177 ### CiviMail
178
179 - **Mailing Report: hide the HTML preview
180 ([16899](https://github.com/civicrm/civicrm-core/pull/16899))**
181
182 Improves the Mailing report by hiding the HTML preview because it was too
183 short to be helpful to begin with.
184
185 ## <a name="bugs"></a>Bugs resolved
186
187 ### Core CiviCRM
188
189 - **How best to handle Event Dispatchers during upgrade (Work Towards
190 [dev/core#1460](https://lab.civicrm.org/dev/core/issues/1460):
191 [17127](https://github.com/civicrm/civicrm-core/pull/17127) and
192 [17216](https://github.com/civicrm/civicrm-core/pull/17216))**
193
194 This updates the `CiviEventDispatcher` with a method `setDispatchPolicy()`
195 that can be used to dynamically toggle support for specific events/hooks and
196 updates a related test.
197
198 - **After core upgrade, extensions are not fully active
199 ([dev/core#1460](https://lab.civicrm.org/dev/core/issues/1460) and
200 [dev/core#1713](https://lab.civicrm.org/dev/core/issues/1713):
201 [17126](https://github.com/civicrm/civicrm-core/pull/17126))**
202
203 After performing a core upgrade, some extension functionality (e.g. routing) was
204 temporariliy unavailable - and required a flush. This fix changes the way in which
205 hooks and caches are managed during the upgrade.
206
207 - **Report Dev tab display SQL multiple times
208 ([dev/core#1673](https://lab.civicrm.org/dev/core/issues/1673):
209 [17001](https://github.com/civicrm/civicrm-core/pull/17001))**
210
211 - **Namespaced classes cannot contain an underscore
212 ([dev/core#1684](https://lab.civicrm.org/dev/core/issues/1684):
213 [17105](https://github.com/civicrm/civicrm-core/pull/17105))**
214
215 Allows underscores in class names.
216
217 - **Search builder returns DB error on Group => Empty filter
218 ([dev/core#1685](https://lab.civicrm.org/dev/core/issues/1685):
219 [16953](https://github.com/civicrm/civicrm-core/pull/16953))**
220
221 - **Allow override of inherited CMS language when in CiviCRM
222 ([17006](https://github.com/civicrm/civicrm-core/pull/17006))**
223
224 This ensures that the language switcher can be used in CiviCRM even when the
225 default language is set to inherit from the user's CMS session.
226
227 - **Longitude not checked out of box
228 ([dev/core#1739](https://lab.civicrm.org/dev/core/issues/1739):
229 [17238](https://github.com/civicrm/civicrm-core/pull/17238))**
230
231 Enables the Longitude field on Address Editing by default for new installs.
232
233 - **Export selected fields doesn't export related contacts if related info is
234 present in mapping
235 ([dev/core#1780](https://lab.civicrm.org/dev/core/issues/1780):
236 [17462](https://github.com/civicrm/civicrm-core/pull/17462))**
237
238 This fixes a bug where exporting a child and their parent was only resulting
239 in one row being exported when the related contact id was selected.
240
241 - **Regression: Fails to create smartgroup or refresh count of group
242 ([dev/core#1747](https://lab.civicrm.org/dev/core/issues/1747):
243 [17438](https://github.com/civicrm/civicrm-core/pull/17438))**
244
245 The temporary table created for smart groups involving the Date Added custom
246 search was removed too aggressively, resulting in database errors when
247 searching or refreshing the smart group count.
248
249 - **Contact restore from trash not working
250 ([dev/core#1784](https://lab.civicrm.org/dev/core/issues/1784):
251 [17418](https://github.com/civicrm/civicrm-core/pull/17418))**
252
253 - **[regression] Fix error on no MIME type
254 ([17265](https://github.com/civicrm/civicrm-core/pull/17265))**
255
256 Fixes `TypeError: Argument 1 passed to
257 MimeTyper\Repository\AbstractRepository::setFromMap() must be of the type
258 array, null given` error.
259
260 - **SyntaxConformanceTest::testSqlOperators - Fix failure on MySQL 8
261 ([17262](https://github.com/civicrm/civicrm-core/pull/17262))**
262
263 - **API explorer fatal joining to contribution from contact
264 ([dev/core#1563](https://lab.civicrm.org/dev/core/issues/1563):
265 [17239](https://github.com/civicrm/civicrm-core/pull/17239))**
266
267 - **APIv4 - Prevent field alias conflicts.
268 ([17109](https://github.com/civicrm/civicrm-core/pull/17109))**
269
270 - **APIv4 - Fix setting offset with no limit
271 ([17063](https://github.com/civicrm/civicrm-core/pull/17063))**
272
273 - **Fix admin page url for "conference slots" option values
274 ([17223](https://github.com/civicrm/civicrm-core/pull/17223))**
275
276 - **Fix Dedupe entity_tag mangling bug
277 ([17125](https://github.com/civicrm/civicrm-core/pull/17125))**
278
279 Fixes a bug whereby the merge script alters non-contact entity tags, changing
280 the entity they are related to.
281
282 - **Show title on status message instead of machine name
283 ([17174](https://github.com/civicrm/civicrm-core/pull/17174))**
284
285 - **Do not create smarty cached templates for processed greetings
286 ([16733](https://github.com/civicrm/civicrm-core/pull/16733))**
287
288 - **Add contribution ID as activity source record when downloading or emailing
289 invoice ([17165](https://github.com/civicrm/civicrm-core/pull/17165))**
290
291 Ensures that the Activity Source ID field is populated correctly for
292 Activities of the type "Emailed Invoice" and "Downloaded Invoice".
293
294 - **Correct option_group pseudoconstant and regenerate DAO
295 ([17166](https://github.com/civicrm/civicrm-core/pull/17166))**
296
297 Fixes metadata for option_group pseudoconstant list so that labels are visible
298 in the list.
299
300 - **Update "Colmbra" state/province to "Coimbra"
301 ([17106](https://github.com/civicrm/civicrm-core/pull/17106) and
302 [17136](https://github.com/civicrm/civicrm-core/pull/17136))**
303
304 Fixes up some Portugal Province labels.
305
306 - **Fix 'selectedChild' parameter for pages with tabs
307 ([17066](https://github.com/civicrm/civicrm-core/pull/17066))**
308
309 Ensures that the tab set using the `selectedChild` URL parameter is respected.
310
311 - **Export: use X icon `fa-times` for closing things
312 ([17076](https://github.com/civicrm/civicrm-core/pull/17076))**
313
314 Ensures that the X icon is always used for closing things.
315
316 - **Dupe improve custom data handling
317 ([17060](https://github.com/civicrm/civicrm-core/pull/17060) and
318 [17077](https://github.com/civicrm/civicrm-core/pull/17077))**
319
320 Reduces code complexity & locking queries when merging contacts.
321
322 - **Fixed mapping when using custom field for contact sub type
323 ([16957](https://github.com/civicrm/civicrm-core/pull/16957))**
324
325 Ensures import mappings populate contact sub-type custom fields.
326
327 - **Set is_deceased to not null in schema and upgrade script
328 ([dev/core#1697](https://lab.civicrm.org/dev/core/issues/1697):
329 [17025](https://github.com/civicrm/civicrm-core/pull/17025))**
330
331 This removes the possibility of having undead contacts.
332
333 - **Allow adding variables to CRM.vars in any region
334 ([16888](https://github.com/civicrm/civicrm-core/pull/16888))**
335
336 - **Fix setting custom field TextArea attributes
337 ([16997](https://github.com/civicrm/civicrm-core/pull/16997))**
338
339 Ensures attributes for existing text area custom fields are not overwritten
340 during update operations.
341
342 - **Fix bug on handling 'is_required'
343 ([16901](https://github.com/civicrm/civicrm-core/pull/16901))**
344
345 Ensures that there is a "none" option for select fields that are not
346 required and are created extensions using the generic form.
347
348 - **Fix values passed to tokenValues hook
349 ([16623](https://github.com/civicrm/civicrm-core/pull/16623))**
350
351 Ensures that the `hook_civicrm_tokenValues` is passed the proper values.
352
353 - **Fix slowness in opening the select fields for export screen after an advanced search
354 ([dev/core#1725](ttps://lab.civicrm.org/dev/core/-/issues/1725):
355 [17444](https://github.com/civicrm/civicrm-core/pull/17444))**
356 Fixes a recent regression following the updating of the select fields export UI which on certain
357 sites slowed down the loading of the select fields screen significantly
358
359 ### CiviCase
360
361 - **Invalid and patchy XML encoding causes Case crash if status is not valid XML
362 ([dev/core#1719](https://lab.civicrm.org/dev/core/issues/1719):
363 [17100](https://github.com/civicrm/civicrm-core/pull/17100))**
364
365 Fixes a bug where CiviCase would fail to fully create a CaseType if a Case
366 Status' name was invalid in an XML context.
367
368 - **Case.get API returning Case Clients As Part of Related Contacts
369 ([dev/core#1659](https://lab.civicrm.org/dev/core/issues/1659):
370 [16837](https://github.com/civicrm/civicrm-core/pull/16837))**
371
372 - **Convert fatals to statusBounces in case forms
373 ([17212](https://github.com/civicrm/civicrm-core/pull/17212))**
374
375 - **Add missing translations to case activity revisions
376 ([16987](https://github.com/civicrm/civicrm-core/pull/16987))**
377
378 - **Case Details field is empty
379 ([16995](https://github.com/civicrm/civicrm-core/pull/16995))**
380
381 Ensures that the details field value is saved when creating a new case from
382 the core form.
383
384 ### CiviContribute
385
386 - **Contribution Detail Report gives incorrect results when `force=1`
387 ([dev/report#20](https://lab.civicrm.org/dev/report/issues/20):
388 [17234](https://github.com/civicrm/civicrm-core/pull/17234))**
389
390 - **Financial ACL Report check always fails
391 ([dev/core#1700](https://lab.civicrm.org/dev/core/issues/1700):
392 [17046](https://github.com/civicrm/civicrm-core/pull/17046))**
393
394 Ensures that if Finacial Type ACL's are enabled and the extension
395 `biz.jmaconsulting.financialaclreport` is installed the warning that you need
396 to install the extension is not displayed.
397
398 - **On Behalf Of fails to populate in Email Receipt
399 ([dev/core#57](https://lab.civicrm.org/dev/core/issues/57):
400 [17026](https://github.com/civicrm/civicrm-core/pull/17026))**
401
402 Fixes a bug where the On Behalf Of section was not being included in email
403 receipts.
404
405 - **Fixes a regression when cancelling a recurring with no processor_id
406 ([17292](https://github.com/civicrm/civicrm-core/pull/17292))**
407
408 - **Fix multiselect/checkbox custom field defaults on contribution online form
409 ([16991](https://github.com/civicrm/civicrm-core/pull/16991))**
410
411 ### CiviEvent
412
413 - **Fix multiselect/checkbox custom field defaults on registration profile
414 ([16981](https://github.com/civicrm/civicrm-core/pull/16981))**
415
416 ### CiviMail
417
418 - **Mailing Error when civicrm_mailing_group has duplicate entries of recipient
419 groups([dev/mail#62](https://lab.civicrm.org/dev/mail/issues/62):
420 [17130](https://github.com/civicrm/civicrm-core/pull/17130))**
421
422 ### CiviMember
423
424 - **Membership batch entry: Fix join date population
425 ([dev/core#1718](https://lab.civicrm.org/dev/core/issues/1718):
426 [17099](https://github.com/civicrm/civicrm-core/pull/17099))**
427
428 Ensures that when using the membership batch entry tool the "join date" is
429 populated with existing data.
430
431 - **Fix bug where tax_amount is miscalculated on membership renewals
432 ([16772](https://github.com/civicrm/civicrm-core/pull/16772))**
433
434 ### Drupal Integration
435
436 - **UF Settings page doesn't show CiviCRM database details for Drupal 8 Views
437 ([dev/core#1742](https://lab.civicrm.org/dev/core/issues/1742):
438 [17232](https://github.com/civicrm/civicrm-core/pull/17232))**
439
440 ### WordPress Integration
441
442 - **Support Clean URLs when using Polylang
443 ([191](https://github.com/civicrm/civicrm-wordpress/pull/191),
444 [189](https://github.com/civicrm/civicrm-wordpress/pull/189) and
445 [176](https://github.com/civicrm/civicrm-wordpress/pull/176))**
446
447 Ensures clean URLs work in WordPress with Polylang.
448
449 - **Fix WordPress support for Get UF Locale
450 ([dev/core#1635](https://lab.civicrm.org/dev/core/issues/1635):
451 [16700](https://github.com/civicrm/civicrm-core/pull/16700))**
452
453 Ensures WordPress front end pages follow the CMS language set in CiviCRM
454 instead of using the default CiviCRM language.
455
456 - **Styling issues after upgrade to WordPress 5.3
457 ([dev/wordpress#46](https://lab.civicrm.org/dev/wordpress/issues/46):
458 [16882](https://github.com/civicrm/civicrm-core/pull/16882))**
459
460 Ensures Select fields look like Select2 fields for WordPress users.
461
462 - **CiviCRM front end pages broken on WP Latest (master)
463 ([dev/wordpress#49](https://lab.civicrm.org/dev/wordpress/issues/49):
464 [17352](https://github.com/civicrm/civicrm-core/pull/17352),
465 [17424](https://github.com/civicrm/civicrm-core/pull/17424),
466 [199](https://github.com/civicrm/civicrm-wordpress/pull/199), and
467 [194](https://github.com/civicrm/civicrm-wordpress/pull/194))**
468
469 `canonical_redirect()` will strip "page=CiviCRM" from front end pages. These
470 changes ensures that CiviCRM plays nicely with this WordPress change.
471
472 - **Public mailing URL links are broken after merge of REST API wrapper code
473 ([dev/wordpress#52](https://lab.civicrm.org/dev/wordpress/issues/52):
474 [195](https://github.com/civicrm/civicrm-wordpress/pull/195))**
475
476 - **CiviMail doesn't send to full recipient list with merge of REST API wrapper
477 code ([dev/wordpress#53](https://lab.civicrm.org/dev/wordpress/issues/53):
478 [196](https://github.com/civicrm/civicrm-wordpress/pull/196))**
479
480 ## <a name="misc"></a>Miscellany
481
482 - **CONTRIBUTORS.txt - Explain deprecation/archival ([17074](https://github.com/civicrm/civicrm-core/pull/17074))**
483
484 Contributors are now recognized in release notes. To ensure a full history,
485 the older `CONTRIBUTORS.txt` has been preserved, but it will not be updated for future releases.
486
487 - **Use isSerialized function rather guessing from html_type
488 ([16979](https://github.com/civicrm/civicrm-core/pull/16979))**
489
490 - **Mitigate flaky test failure about
491 "CRM_Utils_Check_Component_Env->checkVersion()"
492 ([17038](https://github.com/civicrm/civicrm-core/pull/17038))**
493
494 - **Simplify groupContactCache - remove redundant query
495 ([17011](https://github.com/civicrm/civicrm-core/pull/17011))**
496
497 - **Duplicate EmailCommon::buildQuickForm onto the trait
498 ([17052](https://github.com/civicrm/civicrm-core/pull/17052))**
499
500 - **Make transaction param optional in completeOrder
501 ([17053](https://github.com/civicrm/civicrm-core/pull/17053))**
502
503 - **Don't pass empty ids parameter, fix fatal
504 ([17086](https://github.com/civicrm/civicrm-core/pull/17086))**
505
506 - **Less svn ([17159](https://github.com/civicrm/civicrm-core/pull/17159))**
507
508 - **OptionValue - Use DB defaults instead of setting them in BAO::add
509 ([17170](https://github.com/civicrm/civicrm-core/pull/17170))**
510
511 - **Move batch-form support code back to the form
512 ([17176](https://github.com/civicrm/civicrm-core/pull/17176))**
513
514 - **Start using apiv4 in test setup
515 ([17020](https://github.com/civicrm/civicrm-core/pull/17020))**
516
517 - **Further removal of long-deprecated skipCleanMoney
518 ([17175](https://github.com/civicrm/civicrm-core/pull/17175))**
519
520 - **Add workflow_name column to civicrm_msg_template, deprecate workflow_id
521 ([17227](https://github.com/civicrm/civicrm-core/pull/17227))**
522
523 - **Misplaced text in the Additional Details section on New Contribution
524 ([dev/user-interface#19](https://lab.civicrm.org/dev/user-interface/issues/19):
525 [17135](https://github.com/civicrm/civicrm-core/pull/17135))**
526
527 - **Cleanup and throw exceptions in OpenCase form
528 ([17184](https://github.com/civicrm/civicrm-core/pull/17184))**
529
530 - **Cleanup core pseudoconstant buildOptions
531 ([17122](https://github.com/civicrm/civicrm-core/pull/17122))**
532
533 - **Gitlab issue template - Ask for link to stackexchange or chat conversations
534 ([17186](https://github.com/civicrm/civicrm-core/pull/17186))**
535
536 - **Remove deprecated calls to optionValueQuery and no-longer-need param
537 ([17182](https://github.com/civicrm/civicrm-core/pull/17182))**
538
539 - **Refactor api3 Payment.Get API to support options + most fields in
540 civicrm_financial_trxn
541 ([17071](https://github.com/civicrm/civicrm-core/pull/17071))**
542
543 - **Remove unused parameter, immediately overwritten parameter
544 ([17131](https://github.com/civicrm/civicrm-core/pull/17131))**
545
546 - **Remove unused parameter from function
547 ([17098](https://github.com/civicrm/civicrm-core/pull/17098))**
548
549 - **Remove outputHeader as a param for writeCSVFile as it is always true
550 ([17051](https://github.com/civicrm/civicrm-core/pull/17051))**
551
552 - **Remove var that is defined on parent
553 ([17102](https://github.com/civicrm/civicrm-core/pull/17102))**
554
555 - **Convert test to use APIV4 in setup for cleaner code
556 ([17153](https://github.com/civicrm/civicrm-core/pull/17153))**
557
558 - **[Test] Extend custom field test trait & some related tests
559 ([17037](https://github.com/civicrm/civicrm-core/pull/17037))**
560
561 - **E2E_Core_HookTest - Fix test failure due to leak
562 ([17251](https://github.com/civicrm/civicrm-core/pull/17251))**
563
564 - **[NFC][Test] cleanup on customDataTrait for tests
565 ([17022](https://github.com/civicrm/civicrm-core/pull/17022))**
566
567 - **[NFC][Test] Minor cleanup in test class
568 ([17002](https://github.com/civicrm/civicrm-core/pull/17002))**
569
570 - **[NFC][Test] Preliminary cleanup
571 ([17213](https://github.com/civicrm/civicrm-core/pull/17213))**
572
573 - **[NFC] [Test] minor code cleanup
574 ([17152](https://github.com/civicrm/civicrm-core/pull/17152))**
575
576 - **[NFC] Minor code cleanups
577 ([17019](https://github.com/civicrm/civicrm-core/pull/17019))**
578
579 - **[NFC] Superficial code clean up
580 ([17155](https://github.com/civicrm/civicrm-core/pull/17155))**
581
582 - **(NFC) Remove $Id$ artifacts from old SCM
583 ([17211](https://github.com/civicrm/civicrm-core/pull/17211))**
584
585 - **[NFC] A bit less svn in our code
586 ([17157](https://github.com/civicrm/civicrm-core/pull/17157))**
587
588 - **[NFC] Fix use of pattern-hated-by-Coleman
589 ([17049](https://github.com/civicrm/civicrm-core/pull/17049))**
590
591 - **[NFC] Cleanup CRM_Report_Form
592 ([17141](https://github.com/civicrm/civicrm-core/pull/17141))**
593
594 - **(NFC) Comment clarification in test class
595 ([17133](https://github.com/civicrm/civicrm-core/pull/17133))**
596
597 - **[NFC] Improve cleanup on membershipStatus to cope with undeleted memberships
598 ([16756](https://github.com/civicrm/civicrm-core/pull/16756))**
599
600 - **[NFC] Remove calculation of unused parameter
601 ([17093](https://github.com/civicrm/civicrm-core/pull/17093))**
602
603 - **(NFC) Gitlab Template - Request more detail about upgrade problems
604 ([17101](https://github.com/civicrm/civicrm-core/pull/17101))**
605
606 - **[NFC] Remove a handful of legacy svn notations
607 ([17070](https://github.com/civicrm/civicrm-core/pull/17070))**
608
609 - **[NFC/Test] - Fix typo in `if` statement that seems intended as a workaround
610 ([17258](https://github.com/civicrm/civicrm-core/pull/17258))**
611
612 - **[NFC] Add Comment to avoid someone removing field only used in CiviCase
613 extension ([17000](https://github.com/civicrm/civicrm-core/pull/17000))**
614
615 - **[NFC] Test cleanup
616 ([17224](https://github.com/civicrm/civicrm-core/pull/17224))**
617
618 - **[NFC] Code cleanup around comments, strict comparison, formatting
619 ([17058](https://github.com/civicrm/civicrm-core/pull/17058))**
620
621 - **[NFC] Remove all the places where tests unnecessarily pass to
622 Membership::create
623 ([17088](https://github.com/civicrm/civicrm-core/pull/17088))**
624
625 - **[REF] SavedSearch - additional cleanup & bugfixes
626 ([17090](https://github.com/civicrm/civicrm-core/pull/17090))**
627
628 - **(REF) dev/core#1744 - Cleanup event naming
629 ([17240](https://github.com/civicrm/civicrm-core/pull/17240))**
630
631 - **[REF] [Test] IDE cleanup on ReportTemplateTest
632 ([17197](https://github.com/civicrm/civicrm-core/pull/17197))**
633
634 - **[REF] Simplify non-creditcard participant.create
635 ([16584](https://github.com/civicrm/civicrm-core/pull/16584))**
636
637 - **[REF] Fix install on Drupal 8 using new setup code
638 ([17334](https://github.com/civicrm/civicrm-core/pull/17334))**
639
640 - **[REF] Minor var simplification
641 ([17121](https://github.com/civicrm/civicrm-core/pull/17121))**
642
643 - **[REF] Consistently lookup dispatcher via `Civi::dispatcher()`
644 ([17154](https://github.com/civicrm/civicrm-core/pull/17154))**
645
646 - **(REF,NFC) TokenProcessor - Minor DX improvements
647 ([17231](https://github.com/civicrm/civicrm-core/pull/17231))**
648
649 - **[REF] Permit domain tokens being used within Thank You letters
650 ([17230](https://github.com/civicrm/civicrm-core/pull/17230))**
651
652 - **(REF) CRM_Utils_Hook - Remove deprecated formulations of `invoke(int,…)`
653 ([17124](https://github.com/civicrm/civicrm-core/pull/17124))**
654
655 - **[REF] Switch CRM_Utils_Array::value to empty in conditionals
656 ([17091](https://github.com/civicrm/civicrm-core/pull/17091))**
657
658 - **[REF] Minor code cleanup
659 ([17225](https://github.com/civicrm/civicrm-core/pull/17225))**
660
661 - **[REF] Minor code cleanup.
662 ([17222](https://github.com/civicrm/civicrm-core/pull/17222))**
663
664 - **[REF] Reduce boilerplate code in BAO add/create functions
665 ([17172](https://github.com/civicrm/civicrm-core/pull/17172))**
666
667 - **[REF] Minor cleanup around action schedule code.
668 ([17151](https://github.com/civicrm/civicrm-core/pull/17151))**
669
670 - **[REF] get rid of variable variable structure
671 ([17089](https://github.com/civicrm/civicrm-core/pull/17089))**
672
673 - **[REF] Remove duplicate checks for an array key existing
674 ([17069](https://github.com/civicrm/civicrm-core/pull/17069))**
675
676 - **[REF] Import - extract duplicate code to function
677 ([17080](https://github.com/civicrm/civicrm-core/pull/17080))**
678
679 - **[REF] Cleanup a few instances where we use old call to get loggedInUserID
680 ([17196](https://github.com/civicrm/civicrm-core/pull/17196))**
681
682 - **[REF] Simplify determination of enabled components
683 ([17195](https://github.com/civicrm/civicrm-core/pull/17195))**
684
685 - **[REF] stop overriding postProcess function in activity report detail
686 ([17194](https://github.com/civicrm/civicrm-core/pull/17194))**
687
688 - **[REF] Reconcile CRM_Utils_System::getUrlPath and
689 CRM_Utils_System::currentPath
690 ([17068](https://github.com/civicrm/civicrm-core/pull/17068))**
691
692 - **[REF] Stop passing ids to membership::create from createRelatedMemberships
693 ([17087](https://github.com/civicrm/civicrm-core/pull/17087))**
694
695 - **[REF] move all functions associated with the submit function onto the Trait
696 ([17057](https://github.com/civicrm/civicrm-core/pull/17057))**
697
698 - **[REF] APIv4 Explorer - improve performance
699 ([17062](https://github.com/civicrm/civicrm-core/pull/17062))**
700
701 - **[REF] Clarify variable & tighten use.
702 ([17016](https://github.com/civicrm/civicrm-core/pull/17016))**
703
704 - **[REF] Use bool instead of boolean
705 ([17013](https://github.com/civicrm/civicrm-core/pull/17013))**
706
707 - **[REF] Formatting and use bool instead of boolean
708 ([17012](https://github.com/civicrm/civicrm-core/pull/17012))**
709
710 - **[REF] Move generic preProcess function to the trait
711 ([16954](https://github.com/civicrm/civicrm-core/pull/16954))**
712
713 - **[REF] Extract transferParticipantRegistration function
714 ([16976](https://github.com/civicrm/civicrm-core/pull/16976))**
715
716 - **REF Remove redundant param from completeOrder
717 ([17034](https://github.com/civicrm/civicrm-core/pull/17034))**
718
719 - **[REF] Update Contact email form to use the trait for EmailCommon functions
720 ([17031](https://github.com/civicrm/civicrm-core/pull/17031))**
721
722 - **[REF] Move generic instances of listTokens to trait
723 ([17029](https://github.com/civicrm/civicrm-core/pull/17029))**
724
725 - **[REF] CustomField code cleanup to use isSerialized method
726 ([17009](https://github.com/civicrm/civicrm-core/pull/17009))**
727
728 - **[REF] CustomField code cleanup
729 ([16968](https://github.com/civicrm/civicrm-core/pull/16968))**
730
731 - **[REF] Cleanup customField prepareCreate function
732 ([16996](https://github.com/civicrm/civicrm-core/pull/16996))**
733
734 - **[REF] Update custom data handing in contact import
735 ([16986](https://github.com/civicrm/civicrm-core/pull/16986))**
736
737 - **[REF] CustomGroup - cleanup handling of serialized fields in old function
738 ([16970](https://github.com/civicrm/civicrm-core/pull/16970))**
739
740 - **[REF] APIv4 - Enforce contact field permissions via metadata
741 ([17168](https://github.com/civicrm/civicrm-core/pull/17168))**
742
743 - **[REF] Code readability changes on activity tokens.
744 ([17161](https://github.com/civicrm/civicrm-core/pull/17161))**
745
746 - **[REF] Minor extraction
747 ([17160](https://github.com/civicrm/civicrm-core/pull/17160))**
748
749 - **[REF] CustomField - Remove pointless caching and move form variable to form
750 class ([16975](https://github.com/civicrm/civicrm-core/pull/16975))**
751
752 - **[REF] Call makeCSVTable function directly from writeRows
753 ([16980](https://github.com/civicrm/civicrm-core/pull/16980))**
754
755 - **[REF] CRM_Utils_Array::value -> empty
756 ([288](https://github.com/civicrm/civicrm-packages/pull/288))**
757
758 - **[REF] Update XML file to match updated title in DAO File
759 ([16969](https://github.com/civicrm/civicrm-core/pull/16969))**
760
761 - **[REF] Cleanup custom field handling... twice
762 ([16989](https://github.com/civicrm/civicrm-core/pull/16989))**
763
764 - **[REF] Cleanup CustomField BAO to use its own isSerialized function
765 ([16990](https://github.com/civicrm/civicrm-core/pull/16990))**
766
767 - **Cleanup custom field handling in ufGroup BAO
768 ([16984](https://github.com/civicrm/civicrm-core/pull/16984))**
769
770 - **Code cleanup - replace overcomplicated test for null with isset
771 ([16965](https://github.com/civicrm/civicrm-core/pull/16965))**
772
773 - **Update 5.24.2.md - Fix version number in title.
774 ([17043](https://github.com/civicrm/civicrm-core/pull/17043))**
775
776 ## <a name="credits"></a>Credits
777
778 This release was developed by the following code authors:
779
780 a-n The Artists Information Company - William Mortada; AGH Strategies - Alice
781 Frumin, Andie Hunt; Andrei Mondoc; Christian Wach; Circle Interactive - Dave
782 Jenkins, Pradeep Nayak; CiviCRM - Coleman Watts, Josh Gowans, Tim Otten;
783 CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Fuzion -
784 Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; All In
785 Appli.com - Guillaume Sorel; CompuCorp - Ivan; JMA Consulting - Seamus Lee;
786 Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology
787 Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Ray Wright; Third
788 Sector Design - Michael McAndrew; Timbsoft Technologies - Tunbola Ogunwande;
789 Wikimedia Foundation - Eileen McNaughton
790
791 Most authors also reviewed code for this release; in addition, the following
792 reviewers contributed their comments:
793
794 Andrew Cormick-Dockery; Andy Burns; Artful Robot - Rich Lott; Blackfly
795 Solutions - Alan Dixon; CiviCoop - Jaap Jansma; Fuzion - Peter Davis; GMCVO
796 Databases - Jade Gaunt; JMA Consulting - Monish Deb; MJCO - Mikey O'Toole;
797 Richard van Oosterhout; Squiffle Consulting - Aidan Saunders;
798 Tadpole Collective - Kevin Cristiano; Team Expansion - Greg Harris
799
800 ## <a name="feedback"></a>Feedback
801
802 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
803 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
804 and contact `@agh1`.