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? | |
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 - **Menubar - Add "find menu item" search feature
29 ([16597](https://github.com/civicrm/civicrm-core/pull/16597))**
31 Adds a new "Find menu item" search under the "Home" (Civi logo) menu which
32 allows user to locate menu items by typing a few letters.
34 - **Allow advanced search for contributions without a soft credit related
35 ([dev/core#1386](https://lab.civicrm.org/dev/core/issues/1386):
36 [15834](https://github.com/civicrm/civicrm-core/pull/15834) and
37 [16622](https://github.com/civicrm/civicrm-core/pull/16622))**
39 Improves the Advanced Search UI "Contributions" section "Contributions or Soft
40 Credits?" field field by adding a fifth option "Contributions without a soft
41 credit" and updating the labels for the other options.
43 - **Allow payment processors to indicate whether they require an email address
44 ([dev/core#1584](https://lab.civicrm.org/dev/core/issues/1584):
45 [16503](https://github.com/civicrm/civicrm-core/pull/16503))**
47 Adds a function to indicate whether a payment processor requires an email
48 address which can be used to determine whether drupal webform should require
51 - **Show full description under select2 options
52 ([dev/core#1587](https://lab.civicrm.org/dev/core/issues/1587):
53 [16507](https://github.com/civicrm/civicrm-core/pull/16507) and
54 [16510](https://github.com/civicrm/civicrm-core/pull/16510))**
56 Improves the usability of Select-2 drop downs by displaying the
57 full description in a tool tip when hovering over an option.
59 - **Migrate installers to "setup" API (Work Towards
60 [dev/core#1615](https://lab.civicrm.org/dev/core/issues/1615):
61 [16618](https://github.com/civicrm/civicrm-core/pull/16618))**
63 Migrates `civicrm-setup` from its own git repo to `civicrm-core.git:setup/`.
65 - **APIv4-based smart groups
66 ([16666](https://github.com/civicrm/civicrm-core/pull/16666))**
68 Allows smart groups to be created with APIv4 params in addition to via search
69 form values. Adds a button to save smart groups from the APIv4 explorer.
71 - **Style & layout clean up
72 ([16680](https://github.com/civicrm/civicrm-core/pull/16680))**
74 Improves the Contribution Invoice template by cleaning it up, improving
75 the layout and making the CiviCRM logo comply with the display "empowered by
78 - **Relationship report - add sort order for end date
79 ([16512](https://github.com/civicrm/civicrm-core/pull/16512))**
81 Improves the Relationship report by making end date available as a field to
84 - **add column for report
85 ([16523](https://github.com/civicrm/civicrm-core/pull/16523))**
87 Adds "is active?" as an option for the "Columns" tab for the Relationship
90 - **Make php 7.3 the recommended php version
91 ([16459](https://github.com/civicrm/civicrm-core/pull/16459))**
93 Makes the recommended php version 7.3.
95 - **Increase php min recommended version
96 ([16668](https://github.com/civicrm/civicrm-core/pull/16668))**
98 Makes the minimum recommended php version 7.2 (it was 7.1).
100 - **Add pseudoconstant for priceset
101 ([16665](https://github.com/civicrm/civicrm-core/pull/16665) and
102 [16648](https://github.com/civicrm/civicrm-core/pull/16648))**
104 Adds a pseudo constant for price set so that the API accepts `price_set_id` by
107 - **[Feature] Add in new hook alterUFFields to allow extensions to modify which
108 fields can be added to a profile
109 ([16655](https://github.com/civicrm/civicrm-core/pull/16655))**
111 Adds a new hook `hook_civicrm_alterUFFields` which allows extensions to modify
114 - **Enable the "sequentialcreditnotes" extension on new installations
115 ([16598](https://github.com/civicrm/civicrm-core/pull/16598))**
117 Ensures the new core extension `sequenttialcreditnotes` is added on upgrade
120 - **Move settings definition on contribution settings form to metadata.
121 ([16513](https://github.com/civicrm/civicrm-core/pull/16513))**
123 Moves from hard coded settings on contribution settings forms to setting a
124 spec for adding settings to a contribution form making it possible for
125 extension developers to modify the settings using a hook (like the
126 `sequentialcreditnotes` extension).
128 - **Making the poor performance associated with the `creditnote_id` field opt in
129 rather than opt out (Work Towards
130 [dev/financial#84](https://lab.civicrm.org/dev/financial/issues/84):
131 [16531](https://github.com/civicrm/civicrm-core/pull/16531) and
132 [16664](https://github.com/civicrm/civicrm-core/pull/16664))**
134 Refactors code in preparation of make the credit note field opt in.
135 Additionally, makes it possible to hide extensions by tagging them
136 "mgmt:hidden" and hides the `sequentialcreditnotes` extension.
138 - **Upgrade Net_SMTP Package and remove now unneeded patches and move to using
139 composer patches rather than patching in a script file
140 ([16498](https://github.com/civicrm/civicrm-core/pull/16498))**
142 Updates the `Net_SMTP` package to the latest version of the library and
143 standardizes patches.
145 - **info.xml - Allow extensions to define a list of tags
146 ([16551](https://github.com/civicrm/civicrm-core/pull/16551))**
148 Makes it so that extension developers can register tags in the info.xml file.
150 - **Speed boost for civicrm/ajax/checkemail
151 ([15824](https://github.com/civicrm/civicrm-core/pull/15824))**
153 Performance improvement for `civicrm/ajax/checkemail` which is used when
154 adding a cc email address to an email message among other places.
156 - **Improve activity query performance in Constituent Detail Report
157 ([13078](https://github.com/civicrm/civicrm-core/pull/13078))**
159 Improves performance of the "Constituent Detail Report" template.
161 - **Added conditional check so that it can be altered by hook
162 ([16499](https://github.com/civicrm/civicrm-core/pull/16499))**
164 Added a conditional check for printing blocks so that they can be easily
167 - **Enable jQuery validate on register/contribution forms
168 ([16494](https://github.com/civicrm/civicrm-core/pull/16494))**
170 Makes jQuery validate available by default on frontend contribution /
175 - **Add ts() for a sentence 'Add to case as role'
176 ([16630](https://github.com/civicrm/civicrm-core/pull/16630))**
178 Improves translation by making the string 'Add to case as role'
181 - **Add CiviCase option for showing case activities in normal views
182 ([16360](https://github.com/civicrm/civicrm-core/pull/16360))**
184 Provides a setting controlling whether activities that belong to cases are
185 visible outside of cases.
189 - **Proposal: Add in payment_processor-{payment processor type} class attribute
191 ([dev/financial#105](https://lab.civicrm.org/dev/financial/issues/105):
192 [15940](https://github.com/civicrm/civicrm-core/pull/15940))**
194 Adds a css class to each radio button for payment processor options so that
195 they can be styled distinctly.
197 - **Payment edit link cannot be modified
198 ([dev/financial#117](https://lab.civicrm.org/dev/financial/issues/117):
199 [16504](https://github.com/civicrm/civicrm-core/pull/16504))**
201 Makes it so the edit payment link on view of a Contribution can be modified by
202 `hook_civicrm_links`.
204 - **Proposal - move source & received date to near the top on ContributionView
205 form ([dev/financial#118](https://lab.civicrm.org/dev/financial/issues/118):
206 [16565](https://github.com/civicrm/civicrm-core/pull/16565))**
208 Improves the UI of Contributions in view mode by moving the source and date
209 fields closer to the top.
213 - **Pass template_type through to alterMailing hook
214 ([16529](https://github.com/civicrm/civicrm-core/pull/16529))**
216 Improves `hook_civicrm_alterMailing` by passing the `template_type`
217 (traditional or mosaico).
219 ### Drupal Integration
221 - **Use `civicrm-setup` to handle installation
222 ([dev/drupal#4](https://lab.civicrm.org/dev/drupal/issues/4):
223 [16628](https://github.com/civicrm/civicrm-core/pull/16628))**
225 Improves the installation process for drupal 8 by making it so `civicrm-setup`
226 reports the pending action.
228 ## <a name="bugs"></a>Bugs resolved
232 - **Export Problems from Advanced Search - Searchable Numeric Fields Throw SQL
233 Error & Not all Rows Exported
234 ([CRM-607](https://issues.civicrm.org/jira/browse/CRM-607):
235 [16627](https://github.com/civicrm/civicrm-core/pull/16627))**
237 Fixes a syntax error for smart groups that reference custom fields that have
240 - **Do not CC or BCC (Event) Contribution invoice
241 ([dev/core#1436](https://lab.civicrm.org/dev/core/issues/1436):
242 [16005](https://github.com/civicrm/civicrm-core/pull/16005))**
244 Ensures Contribution Invoices are not sent to the CC and BCC email address(s)
245 configured for Event Confirmation purposes.
247 - **Group search form template does not add Datatables CSS classes (DT_RowClass)
248 ([dev/core#1547](https://lab.civicrm.org/dev/core/issues/1547):
249 [16359](https://github.com/civicrm/civicrm-core/pull/16359))**
251 Ensures child groups are nested on the Manage Groups form.
253 - **Multisite domain group fails on 5.20.0 (Work Towards
254 [dev/core#1450](https://lab.civicrm.org/dev/core/issues/1450):
255 [16095](https://github.com/civicrm/civicrm-core/pull/16095))**
257 Improves performance of the multi site domain group to keep it from crashing
258 on sites with large domain groups.
260 - **scheduled reminder: select participant role permissions require admin &
261 don't match rest of scheduled reminder permissions
262 ([dev/core#1568](https://lab.civicrm.org/dev/core/issues/1568):
263 [16455](https://github.com/civicrm/civicrm-core/pull/16455))**
265 Ensures that non-administrator users setting scheduled reminders can limit by
268 - **Custom Group Types not filterable
269 ([dev/core#1577](https://lab.civicrm.org/dev/core/issues/1577):
270 [16475](https://github.com/civicrm/civicrm-core/pull/16475))**
272 Ensures that the "Custom Group Type" filter works on the "Manage Groups" form.
274 - **E_WARNING on New/Edit Tag screen
275 ([dev/core#1593](https://lab.civicrm.org/dev/core/issues/1593) and
276 [dev/core#1536](https://lab.civicrm.org/dev/core/issues/1536):
277 [16554](https://github.com/civicrm/civicrm-core/pull/16554))**
279 Fixes count E_WARNING on the Tag screen.
281 - **Extension unit tests broken in master
282 ([dev/core#1594](https://lab.civicrm.org/dev/core/issues/1594):
283 [16544](https://github.com/civicrm/civicrm-core/pull/16544))**
285 Ensures extension unit tests run.
287 - **Undefined offset 0 in system check for custom fields after upgrade to 5.23
288 ([dev/core#1636](https://lab.civicrm.org/dev/core/issues/1636):
289 [16707](https://github.com/civicrm/civicrm-core/pull/16707))**
291 Fixes an E_NOTICE "Undefined index 0 line 109 in
292 CRM/Utils/Check/Component/Schema.php" when logging in to a site with smart
293 groups that don't have `form_values[0]` (most likely made thru the API).
295 - **Fix SettingTrait YesNo translation
296 ([16685](https://github.com/civicrm/civicrm-core/pull/16685))**
298 Ensures "Yes/no" radio admin settings are correctly translated.
300 - **TokenProcessor - fix greetings tokens
301 ([16624](https://github.com/civicrm/civicrm-core/pull/16624))**
303 Ensure greetings tokens get populated as expected.
305 - **Contact Type Values with Cap in order to be well translated with ts()
306 ([16638](https://github.com/civicrm/civicrm-core/pull/16638))**
308 Ensures Contact Types get translated in the task menu.
310 - **CommunicationPreferences 'loclize' -> 'localize'
311 ([16633](https://github.com/civicrm/civicrm-core/pull/16633))**
313 Ensures the "Communication Preferences" field options get localized.
315 - **Convert civicrm_note.modified_date to timestamp
316 ([16338](https://github.com/civicrm/civicrm-core/pull/16338))**
318 Ensures the `civicrm_note.modified_date` field stores the date and time before
319 this change this field only stored the date.
321 - **Fix two more php-finding regexes
322 ([16606](https://github.com/civicrm/civicrm-core/pull/16606))**
324 Ensures the APIv4 explorer loads regardless regardless of the enclosing path.
326 - **Settings Fix setting readonly attribute
327 ([16451](https://github.com/civicrm/civicrm-core/pull/16451))**
329 Ensures that when a setting is defined via "civicrm.settings.php" it is set to
332 - **Fix issues with retrieving supportsTestMode/supportsLiveMode for payment
333 processors ([15330](https://github.com/civicrm/civicrm-core/pull/15330))**
335 Improves performance and ensures that one cannot select a live payment
336 processor on the back end payment form in test mode.
338 - **State/province not copied on shared address
339 ([dev/core#1605](https://lab.civicrm.org/dev/core/issues/1605):
340 [16649](https://github.com/civicrm/civicrm-core/pull/16649))**
342 - **Activity Summary civireport gives fatal error when grouping activity date by
343 quarter ([dev/core#1619](https://lab.civicrm.org/dev/core/issues/1619):
344 [16643](https://github.com/civicrm/civicrm-core/pull/16643))**
346 - **Fix parameter format for upgrade call to install/enable
347 sequentialcreditnotes
348 ([16686](https://github.com/civicrm/civicrm-core/pull/16686))**
350 - **Activity Report: filtering by "is null" or "is not null" is ignored
351 ([dev/core#1627](https://lab.civicrm.org/dev/core/issues/1627):
352 [16672](https://github.com/civicrm/civicrm-core/pull/16672))**
354 - **Fix backoffice participant partial payments to be stdised & not miscalculate
355 net_amount ([16442](https://github.com/civicrm/civicrm-core/pull/16442))**
357 - **Throwing API_Exception if file fails to copy when creating attachment
358 ([16465](https://github.com/civicrm/civicrm-core/pull/16465))**
360 - **Do not enable core payment processor types that we believe likely don't work
362 ([16362](https://github.com/civicrm/civicrm-core/pull/16362))**
364 - **Resolve notices if first donation amount and date columns were disabled
365 ([16491](https://github.com/civicrm/civicrm-core/pull/16491))**
367 - **Allow any casting done in Type::validate to bubble up to
368 Request::retrieveValue
369 ([16525](https://github.com/civicrm/civicrm-core/pull/16525))**
371 - **Fix a PHP notice for users with limited permissions when loading a contact's
372 summary ([16515](https://github.com/civicrm/civicrm-core/pull/16515))**
374 - **Do not fatally fail on angular pages if an extension is missing
375 ([16533](https://github.com/civicrm/civicrm-core/pull/16533))**
377 - **fix contribution summary report's statistics when grouping and having
378 ([16467](https://github.com/civicrm/civicrm-core/pull/16467))**
380 - **Don't cache the full path of extensions so they don't break with dynamic
382 ([dev/cloud-native#21](https://lab.civicrm.org/dev/cloud-native/issues/21):
383 [15410](https://github.com/civicrm/civicrm-core/pull/15410))**
385 - **Monetary Amount Display setting not respected for price set totals
386 ([dev/core#1019](https://lab.civicrm.org/dev/core/issues/1019):
387 [16487](https://github.com/civicrm/civicrm-core/pull/16487))**
389 - **mailing label primary address selection ignored if global option
390 searchPrimaryDetailsOnly disabled
391 ([dev/core#1158](https://lab.civicrm.org/dev/core/issues/1158):
392 [14928](https://github.com/civicrm/civicrm-core/pull/14928) and
393 [16640](https://github.com/civicrm/civicrm-core/pull/16640))**
395 - **APIv4 - Correctly return null values from DAO save actions
396 ([16645](https://github.com/civicrm/civicrm-core/pull/16645))**
398 - **Api4 - Display sql errors in explorer
399 ([16641](https://github.com/civicrm/civicrm-core/pull/16641))**
401 - **"DB Error: unknown error" when merging if duplicate contact has null
402 created_date ([dev/core#1589](https://lab.civicrm.org/dev/core/issues/1589):
403 [16543](https://github.com/civicrm/civicrm-core/pull/16543))**
407 - **Secondarily order campaign dashboard by id
408 ([15316](https://github.com/civicrm/civicrm-core/pull/15316))**
410 Improves the "Campaign Dashboard" by organizing Campaigns by Start Date and
411 then Id so that if campaigns are rapidly added they show up in the correct
416 - **Case Activities Report includes core activities *always*
417 ([dev/core#1366](https://lab.civicrm.org/dev/core/issues/1366):
418 [16669](https://github.com/civicrm/civicrm-core/pull/16669),
419 [16660](https://github.com/civicrm/civicrm-core/pull/16660) and
420 [15998](https://github.com/civicrm/civicrm-core/pull/15998))**
422 Improves printing/generating the Case Activity Audit by skipping a screen
423 that does not work and cleaning up the code.
425 - **Incorrect boolean comparisons in ang/crmCaseType/list.html for is_active and
426 is_reserved ([dev/core#1451](https://lab.civicrm.org/dev/core/issues/1451):
427 [16035](https://github.com/civicrm/civicrm-core/pull/16035))**
429 Ensures the correct drop down actions are displayed on the case type listing
432 - **My Case dashlet doesn't sort by name but contact_id instead
433 ([dev/core#1623](https://lab.civicrm.org/dev/core/issues/1623):
434 [16647](https://github.com/civicrm/civicrm-core/pull/16647))**
436 Ensures the case dashlet sorts by contact sort name.
438 - **Remove hardcoded settings from form and use SettingForm.tpl for Case
439 settings ([16600](https://github.com/civicrm/civicrm-core/pull/16600))**
443 - **when importing contributions, can't match contact on phone number
444 ([dev/core#1438](https://lab.civicrm.org/dev/core/issues/1438):
445 [16009](https://github.com/civicrm/civicrm-core/pull/16009))**
447 Ensures when importing contributions, phone number is listed as a field to
448 match on and that matching via phone number works as expected.
450 - **Invoice does not assign/display the contact's country
451 ([dev/financial#109](https://lab.civicrm.org/dev/financial/issues/109):
452 [15964](https://github.com/civicrm/civicrm-core/pull/15964))**
454 - **CRM_Utils_Money::equals should round to monetary values then compare, not do
455 a difference comparison.
456 ([dev/financial#104](https://lab.civicrm.org/dev/financial/issues/104):
457 [15856](https://github.com/civicrm/civicrm-core/pull/15856))**
459 - **Count refunds when calculating amount due for an invoice
460 ([16506](https://github.com/civicrm/civicrm-core/pull/16506))**
464 - **Unsubscribe broken on multilingual sites -- may cause mass unsubscribes to
465 all groups ([dev/core#1622](https://lab.civicrm.org/dev/core/issues/1622):
466 [16634](https://github.com/civicrm/civicrm-core/pull/16634))**
470 - **Deleting memberships does not delete its related line item.
471 ([dev/membership#17](https://lab.civicrm.org/dev/membership/issues/17):
472 [15859](https://github.com/civicrm/civicrm-core/pull/15859))**
474 - **Related / Inherited Memberships: Custom fields not filled with data
475 ([dev/core#1365](https://lab.civicrm.org/dev/core/issues/1365):
476 [15884](https://github.com/civicrm/civicrm-core/pull/15884))**
478 ### Drupal Integration
480 - **Multi-select custom data shows values not labels in drupal user record
481 ([CRM-984](https://issues.civicrm.org/jira/browse/CRM-984):
482 [549](https://github.com/civicrm/civicrm-drupal/pull/549))**
484 Ensures that the "Add CiviCRM Tag to Contact" action lists Tags as options
487 - **Check email when creating a user in drupal 8
488 ([15390](https://github.com/civicrm/civicrm-core/pull/15390))**
490 Ensures when creating a new Drupal8 user via a CiviCRM profile, the email
491 address entered is validated as a unique user email.
493 - **`E2E_Cache_*Test` raises dependency-hell in D8
494 ([dev/core#1562](https://lab.civicrm.org/dev/core/issues/1562):
495 [16522](https://github.com/civicrm/civicrm-core/pull/16522))**
497 ### WordPress Integration
499 - **Fix display of administrator permissions in WordPress Multisite
500 ([dev/core#1628](https://lab.civicrm.org/dev/core/issues/1628):
501 [16675](https://github.com/civicrm/civicrm-core/pull/16675))**
503 Ensures that users with the role "Network
504 Administrator" can limit the permissions for users with the role "Site
505 Administrator" for WordPress with Multisite.
507 - **Fix synchronisation of Users to Contacts in WordPress Multisite
508 ([dev/core#1629](https://lab.civicrm.org/dev/core/issues/1629):
509 [16676](https://github.com/civicrm/civicrm-core/pull/16676))**
511 For WordPress Multisite's ensures that only users of a particular sub site are
512 synced to CiviCRM for that sub site.
514 ## <a name="misc"></a>Miscellany
516 - **Remove fatal from form
517 ([16500](https://github.com/civicrm/civicrm-core/pull/16500))**
519 - **Add deprecation notices on PartialAmount params
520 ([16505](https://github.com/civicrm/civicrm-core/pull/16505))**
522 - **fix headers ([16492](https://github.com/civicrm/civicrm-core/pull/16492))**
524 - **API Kernel - cleanup deprecated fn & unused param
525 ([16511](https://github.com/civicrm/civicrm-core/pull/16511))**
527 - **Common.js - remove duplicate function
528 ([16508](https://github.com/civicrm/civicrm-core/pull/16508))**
530 - **Fix calls to Request::retrieve
531 ([16526](https://github.com/civicrm/civicrm-core/pull/16526))**
533 - **APIv4 - merge ActionUtil with Request::create
534 ([16516](https://github.com/civicrm/civicrm-core/pull/16516))**
537 ([16486](https://github.com/civicrm/civicrm-core/pull/16486))**
539 - **Remove reference to mysql 5.0 & 5.1
540 ([16539](https://github.com/civicrm/civicrm-core/pull/16539))**
542 - **Change "Added By" to "Added by"
543 ([16527](https://github.com/civicrm/civicrm-core/pull/16527))**
545 - **Remove old defines for flexmailer that haven't been required since CiviCRM
546 5.x ([16528](https://github.com/civicrm/civicrm-core/pull/16528))**
548 - **Make savedSearch bao sane
549 ([16575](https://github.com/civicrm/civicrm-core/pull/16575))**
551 - **Add deprecation notice
552 ([16585](https://github.com/civicrm/civicrm-core/pull/16585))**
554 - **Move determination of year & month to formatCreditCardDetails
555 ([16562](https://github.com/civicrm/civicrm-core/pull/16562))**
557 - **Add description to params for api3 Payment.get
558 ([16602](https://github.com/civicrm/civicrm-core/pull/16602))**
560 - **Move sequentialcreditnotes under `ext/` folder
561 ([16616](https://github.com/civicrm/civicrm-core/pull/16616))**
563 - **Removed Invalid Parameter from function doc
564 ([16631](https://github.com/civicrm/civicrm-core/pull/16631))**
566 - **civicrm.settings.php.template - Simplify examples of `$civicrm_setting`
567 ([16636](https://github.com/civicrm/civicrm-core/pull/16636))**
569 - **Remove unused columns from civicrm_saved_search
570 ([16637](https://github.com/civicrm/civicrm-core/pull/16637))**
572 - **News dashboard - Code cleanup to update js & css
573 ([16632](https://github.com/civicrm/civicrm-core/pull/16632))**
575 - **Fix mistake in comment
576 ([16657](https://github.com/civicrm/civicrm-core/pull/16657))**
578 - **Remove helper function now that contribution settings is not weirdly stored
579 ([16566](https://github.com/civicrm/civicrm-core/pull/16566))**
581 - **added sudo constant for sms api type
582 ([16679](https://github.com/civicrm/civicrm-core/pull/16679))**
584 - **Add setEntityId() to entityForm
585 ([16020](https://github.com/civicrm/civicrm-core/pull/16020))**
587 - **Remove deprecated function CRM_Contact_BAO_GroupContactCache::remove
588 ([16682](https://github.com/civicrm/civicrm-core/pull/16682))**
590 - **Ancient switch statement that provides hardcoded translation doesn't do
592 ([dev/translation#37](https://lab.civicrm.org/dev/translation/issues/37):
593 [16619](https://github.com/civicrm/civicrm-core/pull/16619))**
595 - **Cleanup copyValues DAO function
596 ([16589](https://github.com/civicrm/civicrm-core/pull/16589))**
598 - **Remove unused code
599 ([16493](https://github.com/civicrm/civicrm-core/pull/16493))**
601 - **remove unnecessary file
602 ([16502](https://github.com/civicrm/civicrm-core/pull/16502))**
604 - **[REF] Fix static call to non-static function.
605 ([16552](https://github.com/civicrm/civicrm-core/pull/16552))**
607 - **[REF] Change function signature to support moving this off the form layer
608 ([16677](https://github.com/civicrm/civicrm-core/pull/16677))**
610 - **[REF] Remove FPDI library from packages as it is deployed by composer
611 ([287](https://github.com/civicrm/civicrm-packages/pull/287))**
613 - **[REF] Use relative path for finding the advmultiseletct javascript
614 ([286](https://github.com/civicrm/civicrm-packages/pull/286))**
616 - **[REF] Remove patch from dompdf cleanup script that is no longer needed
617 ([16490](https://github.com/civicrm/civicrm-core/pull/16490))**
619 - **(REF) Move CIVICRM_MAIL_LOG logic from patch-files to wrapper-class
620 ([16497](https://github.com/civicrm/civicrm-core/pull/16497))**
622 - **[REF] Remove never used property
623 ([16540](https://github.com/civicrm/civicrm-core/pull/16540))**
625 - **REF Refactor ActivityTokens to use a trait that can be shared with other
626 entities ([16468](https://github.com/civicrm/civicrm-core/pull/16468))**
628 - **[REF] Extract function to getTransactionInfo
629 ([16545](https://github.com/civicrm/civicrm-core/pull/16545))**
631 - **[REF] Update civicrm_generated following merge of #16362
632 ([16605](https://github.com/civicrm/civicrm-core/pull/16605))**
634 - **[REF] Extract self-service eligibility code into its own function
635 ([16615](https://github.com/civicrm/civicrm-core/pull/16615))**
637 - **[REF] Only call getACLs when contact_id is present, remove handling
638 ([16667](https://github.com/civicrm/civicrm-core/pull/16667))**
640 - **[REF] Deprecate _html2pdf_tcpdf function in favour of _html2pdf_dompdf
641 ([16662](https://github.com/civicrm/civicrm-core/pull/16662))**
643 - **[REF] simple function extraction
644 ([16642](https://github.com/civicrm/civicrm-core/pull/16642))**
646 - **[REF] Removed unused function
647 ([16663](https://github.com/civicrm/civicrm-core/pull/16663))**
649 - **[REF] Refactor adding payment processor radio section onto register and
650 contribution main forms
651 ([16595](https://github.com/civicrm/civicrm-core/pull/16595))**
653 - **[REF] Add in pre and post hooks to UFField Entity
654 ([16653](https://github.com/civicrm/civicrm-core/pull/16653))**
656 - **[NFC] Use insert ignore for inserts into civicrm_extension to stop warnings
657 on duplicate entry for sequential credit notes extension
658 ([16644](https://github.com/civicrm/civicrm-core/pull/16644))**
660 - **[NFC] dev/core#1466 Update Documentation URLS to be the correct links in the
661 security component check
662 ([dev/core#1466](https://lab.civicrm.org/dev/core/issues/1466):
663 [16085](https://github.com/civicrm/civicrm-core/pull/16085))**
665 - **[NFC] Convert Custom Field BAO file to use short array syntax
666 ([16613](https://github.com/civicrm/civicrm-core/pull/16613))**
668 - **[NFC] dev/core#1621 Extend unit tests to ensure that entity financial
669 account is correctly deleted when financial type is deleted
670 ([dev/core#1621](https://lab.civicrm.org/dev/core/issues/1621):
671 [16639](https://github.com/civicrm/civicrm-core/pull/16639))**
673 - **[NFC] Minor code cleanup
674 ([16563](https://github.com/civicrm/civicrm-core/pull/16563))**
676 - **[NFC] Preliminary cleanup
677 ([16557](https://github.com/civicrm/civicrm-core/pull/16557))**
679 - **(NFC) Fix typo - no hyphen in 'override'
680 ([16571](https://github.com/civicrm/civicrm-core/pull/16571))**
682 - **(NFC) Remove `$Id$` from header
683 ([16582](https://github.com/civicrm/civicrm-core/pull/16582))**
685 - **[NFC] Test cleanup.
686 ([16581](https://github.com/civicrm/civicrm-core/pull/16581))**
688 - **[NFC] Add missing letter "h" in upgrade script for task description
689 ([16687](https://github.com/civicrm/civicrm-core/pull/16687))**
691 - **[TEST] Unit test environment no longer working on windows after latest
693 ([dev/core#1572](https://lab.civicrm.org/dev/core/issues/1572):
694 [16477](https://github.com/civicrm/civicrm-core/pull/16477))**
696 - **[TEST] CRM_Event_BAO_AdditionalPaymentTest::testAddPartialPayment should
697 have status transition checks fixed & enabled
698 ([dev/financial#102](https://lab.civicrm.org/dev/financial/issues/102):
699 [16564](https://github.com/civicrm/civicrm-core/pull/16564))**
701 ## <a name="credits"></a>Credits
703 This release was developed by the following code authors:
705 a-n The Artists Information Company - William Mortada; AGH Strategies - Alice
706 Frumin, Andrew Hunt; Agileware - Agileware Team, Francis Whittle; Alexy
707 Mikhailichenko; breheret; Calibrate - Wouter Hechtermans; CEPR - Josh Brown;
708 Chris Burgess; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCoop -
709 Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku;
710 Coop SymbioTIC - Mathieu Lutfy; Dave D; Electronic Frontier Foundation - Mark
711 Burdett; Francesc Bassas i Bullich; Freeform Solutions - Herb van den Dool;
712 Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick
713 Figel; GMCVO Databases - Jade Gaunt; iXiam - Luciano Spiegel; Jens Schuppe; JMA
714 Consulting - Monish Deb, Seamus Lee; Kartik Kathuria; Lighthouse Design and
715 Consulting - Brian Shaughnessy; Makoa - Usha F. Matisson; Megaphone Technology
716 Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology
717 Project - Jamie McClelland; Richard van Oosterhout; Roomify, LLC - Adrian
718 Rollett; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin
719 Cristiano; Wikimedia Foundation - Eileen McNaughton, Elliott Eggleston, Maggie
722 Most authors also reviewed code for this release; in addition, the following
723 reviewers contributed their comments:
725 a-n The Artists Information Company - William Mortada; Agileware - Justin
726 Freeman; Andrew Cormick-Dockery; Artful Robot - Rich Lott; Betty Dolfing;
727 British Humanist Association - Andrew West; CiviCoop - Jaap Jansma, Matthijs
728 Keijser; CiviDesk - Sunil Pawar; Joinery - Allen Shaw; MJCO - Mikey O'Toole;
729 Simon John Parker; Third Sector Design - Michael McAndrew;
731 ## <a name="feedback"></a>Feedback
733 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
734 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm