5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
12 ## <a name="synopsis"></a>Synopsis
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | no |
17 | **Change the database schema?** | **yes** |
18 | **Alter the API?** | **yes** |
19 | Require attention to configuration options? | no |
20 | **Fix problems installing or upgrading to a previous version?** | **yes** |
21 | **Introduce features?** | **yes** |
22 | **Fix bugs?** | **yes** |
24 ## <a name="features"></a>Features
28 - **Civi::log()->debug() should only log if debugging is enabled
29 ([community/feature-request#12](https://lab.civicrm.org/community/feature-request/-/issues/12):
30 [20079](https://github.com/civicrm/civicrm-core/pull/20079))**
32 Makes it easier to route log messages based on their topic (e.g.
33 CiviContribute-related logs vs CiviMail-related logs).
35 - **We should not be auto-generating 5.xx.beta1.mysql.tpl files
36 ([dev/release#16](https://lab.civicrm.org/dev/release/-/issues/16):
37 [19744](https://github.com/civicrm/civicrm-core/pull/19744))**
39 Streamlines the upgrader by removing a number of empty upgrade steps.
41 - **SearchBuilder: contact search for tags with child-tags broken when using '='
42 operator ([dev/core#2502](https://lab.civicrm.org/dev/core/-/issues/2502):
43 [20016](https://github.com/civicrm/civicrm-core/pull/20016))**
45 Adds unit test for SearchBuilder fix.
47 - **Import the base upgrader
48 ([dev/core#2547](https://lab.civicrm.org/dev/core/-/issues/2547):
49 [20090](https://github.com/civicrm/civicrm-core/pull/20090))**
51 Moves the extension upgrader, base upgrader class to core.
53 - **Add contact source column in some Reports
54 ([20112](https://github.com/civicrm/civicrm-core/pull/20112))**
56 Improves reports by adding a contact source column option.
58 - **SearchKit - Make contribution tasks available as actions
59 ([20004](https://github.com/civicrm/civicrm-core/pull/20004))**
61 Improves the SearchKit UI by making contribution tasks available as actions.
63 - **Move reCAPTCHA to core extension (Work Towards
64 [dev/core#2571](https://lab.civicrm.org/dev/core/-/issues/2571):
65 [20166](https://github.com/civicrm/civicrm-core/pull/20166),
66 [20193](https://github.com/civicrm/civicrm-core/pull/20193) and
67 [20199](https://github.com/civicrm/civicrm-core/pull/20199))**
69 Code cleanup in preparation of moving reCAPTCHA to its own extension.
71 - **Api4 Services - Lazy-load subscriber-objects
72 ([20221](https://github.com/civicrm/civicrm-core/pull/20221))**
74 Improves loading of APIv4 subscriber objects.
76 - **Authx - Retain authentication outcome/metadata
77 ([20026](https://github.com/civicrm/civicrm-core/pull/20026))**
79 Improves the internal APIs for Authx. Authx supports additional ways to
80 authenticate requests (e.g. passwords, API keys, JWTs). With this patchset, we
81 have an internal way to see how the user was authenticated, e.g.
83 - **Increase civicrm_queue_item.data field size
84 ([20107](https://github.com/civicrm/civicrm-core/pull/20107))**
86 Changes the data type for the `data` column on the `civicrm_queue_item` table
87 from TEXT to LONGTEXT.
89 - **Include more data in error message
90 ([20110](https://github.com/civicrm/civicrm-core/pull/20110))**
92 More explicit error messaging.
94 - **Add 'contact-actions-ribbon' region
95 ([20108](https://github.com/civicrm/civicrm-core/pull/20108))**
97 Adds a region to the top of the contact summary screen where action buttons
102 - **Add pager to bottom of Manage Contribution Pages
103 ([20061](https://github.com/civicrm/civicrm-core/pull/20061))**
105 Improves the UI by adding a pager to the Manage Contribution Pages form.
107 - **Add installments to propertyBag
108 ([20023](https://github.com/civicrm/civicrm-core/pull/20023))**
110 Adds installments property to propertyBag.
112 - **Define return parameters for doPayment (Work Towards
113 [dev/financial#141](https://lab.civicrm.org/dev/financial/-/issues/141):
114 [20021](https://github.com/civicrm/civicrm-core/pull/20021))**
116 Ensures the core doPayment function returns payment_status.
118 - **Add support for receipt task outside the search process
119 ([19848](https://github.com/civicrm/civicrm-core/pull/19848))**
121 Adds support for url-based receipt sending.
125 - **Make it possible to make a copy of a draft mailing
126 ([dev/mail#90](https://lab.civicrm.org/dev/mail/-/issues/90):
127 [20058](https://github.com/civicrm/civicrm-core/pull/20058))**
129 Allow re-use mailing of draft mailings and adhoc mailings.
131 ### Drupal Integration
133 - **In Drupal8, CMS intergration don't show table mapping
134 ([dev/core#2490](https://lab.civicrm.org/dev/core/-/issues/2490):
135 [19989](https://github.com/civicrm/civicrm-core/pull/19989))**
137 Hides table mapping for Drupal8 integrations because it is not necessary.
139 - **Consider joining the GitHub Sponsors program (Work Towards
140 [community/sustainability#20](https://lab.civicrm.org/community/sustainability/-/issues/20):
141 [644](https://github.com/civicrm/civicrm-drupal/pull/644) and
142 [63](https://github.com/civicrm/civicrm-drupal-8/pull/63))**
144 Add FUNDING.yml to display a SPONSOR link that directs to c.o.
146 ## <a name="bugs"></a>Bugs resolved
150 - **Activity Type and Case Type not being combined correctly in Advanced Search
151 ([dev/report#53](https://lab.civicrm.org/dev/report/-/issues/53):
152 [20002](https://github.com/civicrm/civicrm-core/pull/20002))**
154 Ensures when running an advanced search that displays related contacts with case
155 parameters set, only contacts related to the relevant cases are displayed.
157 - **Petition confirmation email places space at end of confirmation URL
158 ([dev/core#403](https://lab.civicrm.org/dev/core/-/issues/403):
159 [20080](https://github.com/civicrm/civicrm-core/pull/20080))**
161 Remove trailing white space in url.
163 - **Fix invalidate cache for smart groups
164 ([dev/core#2516](https://lab.civicrm.org/dev/core/-/issues/2516):
165 [19986](https://github.com/civicrm/civicrm-core/pull/19986))**
167 Method CRM_Contact_BAO_GroupContactCache::invalidateGroupContactCache() is
168 described as touching smart groups but there is no condition for smart groups.
170 - **APIv4 - Fix unserialize settings
171 ([20048](https://github.com/civicrm/civicrm-core/pull/20048))**
173 Fixes a bug in the APIv4 "Setting" entity where serialized values were not
174 getting returned properly.
176 - **Globally reset angular hashPrefix
177 ([20152](https://github.com/civicrm/civicrm-core/pull/20152))**
179 Globally reset the AngularJS hash prefix for consistency across all modules
180 and pages in CiviCRM.
182 - **PayPal fails to create contribution following duplicate merge when
183 membership record has been deleted
184 ([dev/core#2593](https://lab.civicrm.org/dev/core/-/issues/2593):
185 [20244](https://github.com/civicrm/civicrm-core/pull/20244))**
187 Stop passing membership id into recur notify.
189 - **Afform - Set default position for contact layout editor
190 ([20228](https://github.com/civicrm/civicrm-core/pull/20228))**
192 Makes Afform blocks appear in their default positions in the "System Default"
193 layout in Contact Summary Editor 2.0+.
195 - **Search Kit links improvements
196 ([20134](https://github.com/civicrm/civicrm-core/pull/20134))**
198 Fixes some problems with creating links in Search Kit and improves the UX
199 around editing links.
201 - **Uninstall for `org.civicrm.search` extension fails
202 ([dev/core#2556](https://lab.civicrm.org/dev/core/-/issues/2556):
203 [20124](https://github.com/civicrm/civicrm-core/pull/20124))**
205 Renames the extension org.civicrm.search to org.civicrm.search_kit.
207 - **Redundant indexes (Work Towards
208 [dev/core#2575](https://lab.civicrm.org/dev/core/-/issues/2575):
209 [20245](https://github.com/civicrm/civicrm-core/pull/20245))**
211 Removes a couple of indexes on the id field as they are duplicates.
213 - **system workflow template uses backend URL
214 ([dev/core#2582](https://lab.civicrm.org/dev/core/-/issues/2582):
215 [20203](https://github.com/civicrm/civicrm-core/pull/20203))**
217 - **Unable to send transactional email to more than 2 recipients if there is an
218 attachment ([dev/core#2588](https://lab.civicrm.org/dev/core/-/issues/2588):
219 [20222](https://github.com/civicrm/civicrm-core/pull/20222) and
220 [20227](https://github.com/civicrm/civicrm-core/pull/20227))**
222 - **Afform - Fix saving joined entities (email, address, phone, etc)
223 ([20264](https://github.com/civicrm/civicrm-core/pull/20264))**
225 - **Afform - Fix loading entities from url args
226 ([20145](https://github.com/civicrm/civicrm-core/pull/20145))**
228 - **Afform - Improve integration with ContactLayout editor
229 ([20042](https://github.com/civicrm/civicrm-core/pull/20042))**
231 - **Afform - include Generic.html by default
232 ([dev/core#2533](https://lab.civicrm.org/dev/core/-/issues/2533):
233 [20141](https://github.com/civicrm/civicrm-core/pull/20141))**
235 - **SearchKit - Fix updating Entity Ref fields
236 ([20125](https://github.com/civicrm/civicrm-core/pull/20125))**
238 - **SearchKit - Exclude serialized fields from implicit join selection
239 ([20156](https://github.com/civicrm/civicrm-core/pull/20156))**
241 - **SearchKit - Fix display of contact reference fields (single-value)
242 ([20117](https://github.com/civicrm/civicrm-core/pull/20117))**
244 - **APIv4 - Setting api misc fixes & tests
245 ([20191](https://github.com/civicrm/civicrm-core/pull/20191))**
247 - **Save entities created by api v4 to managed
248 ([20105](https://github.com/civicrm/civicrm-core/pull/20105))**
250 - **APIv4 - Fix Setting api to work with index param
251 ([20072](https://github.com/civicrm/civicrm-core/pull/20072))**
253 - **Fix enotice when Log service is swapped out
254 ([20146](https://github.com/civicrm/civicrm-core/pull/20146))**
256 - **Fix PayPal IPN URL and WordPress URLs when Permalinks are set to "Plain"
257 ([20063](https://github.com/civicrm/civicrm-core/pull/20063))**
259 - **fix capitalization to allow proper access to 'access AJAX API' perm.
260 ([20200](https://github.com/civicrm/civicrm-core/pull/20200))**
262 - **Fix a copy-and-paste error in the field definitions for OAuthSysToken
263 ([20157](https://github.com/civicrm/civicrm-core/pull/20157))**
265 - **Fixes issue with state/province & country not translating values
266 ([20169](https://github.com/civicrm/civicrm-core/pull/20169))**
268 - **Enotice fix ([20122](https://github.com/civicrm/civicrm-core/pull/20122))**
270 - **Extensions - Setup `<classloader>` during installation
271 ([20091](https://github.com/civicrm/civicrm-core/pull/20091))**
273 - **Extensions - Setup <classloader> during "enable" and "uninstall"
274 ([20116](https://github.com/civicrm/civicrm-core/pull/20116))**
276 - **Fix for importing preferred language (and other fields) by label
277 ([19886](https://github.com/civicrm/civicrm-core/pull/19886))**
279 - **Fix AuthX Setting Labels
280 ([20055](https://github.com/civicrm/civicrm-core/pull/20055))**
282 - **Removed limit of 25 groups and past mailings
283 ([20069](https://github.com/civicrm/civicrm-core/pull/20069))**
285 - **When generating boilerplate code from xml, make error text more helpful and
287 ([20054](https://github.com/civicrm/civicrm-core/pull/20054))**
289 - **File CustomField: avoid renaming an empty file
290 ([19890](https://github.com/civicrm/civicrm-core/pull/19890))**
292 - **Calling UFGroup.create to update a profile without specifying is_active=1
294 ([dev/core#2501](https://lab.civicrm.org/dev/core/-/issues/2501):
295 [19995](https://github.com/civicrm/civicrm-core/pull/19995))**
297 - **CiviReport does not localize custom fields of type Number
298 ([dev/core#2505](https://lab.civicrm.org/dev/core/-/issues/2505):
299 [20123](https://github.com/civicrm/civicrm-core/pull/20123) and
300 [20053](https://github.com/civicrm/civicrm-core/pull/20053))**
302 - **Autocomplete-select custom field (Multi-Select=true) values with checked are
303 reset in case of form rule errors
304 ([dev/core#2506](https://lab.civicrm.org/dev/core/-/issues/2506):
305 [20137](https://github.com/civicrm/civicrm-core/pull/20137))**
307 - **Search kit: Links to case (and other) activities go to the wrong form
308 ([dev/core#2509](https://lab.civicrm.org/dev/core/-/issues/2509):
309 [20118](https://github.com/civicrm/civicrm-core/pull/20118),
310 [20114](https://github.com/civicrm/civicrm-core/pull/20114)
311 [20060](https://github.com/civicrm/civicrm-core/pull/20060) and
312 [20106](https://github.com/civicrm/civicrm-core/pull/20106))**
314 - **Empty extension requires tag misevaluated
315 ([dev/core#2536](https://lab.civicrm.org/dev/core/-/issues/2536):
316 [20064](https://github.com/civicrm/civicrm-core/pull/20064))**
318 - **Clarify scheduled reminder options: Event Start Date -> Event Start, etc
319 ([dev/core#2541](https://lab.civicrm.org/dev/core/-/issues/2541):
320 [20070](https://github.com/civicrm/civicrm-core/pull/20070))**
322 - **Errors on merging contacts with websites
323 ([dev/core#2549](https://lab.civicrm.org/dev/core/-/issues/2549):
324 [20101](https://github.com/civicrm/civicrm-core/pull/20101))**
328 - **Set html type of campaign fields
329 ([20215](https://github.com/civicrm/civicrm-core/pull/20215))**
331 Cleanup metadata for the campaign_id field.
333 - **APIv4 - Don't show campaign_id in getFields if campaign component disabled
334 ([20219](https://github.com/civicrm/civicrm-core/pull/20219))**
338 - **Undefined index: contribution in
339 CRM_Contribute_BAO_Contribution::getContributionTokenValues()
340 ([dev/core#2568](https://lab.civicrm.org/dev/core/-/issues/2568):
341 [20188](https://github.com/civicrm/civicrm-core/pull/20188))**
343 Fixes an undefined index error after sending thank-you emails/letters for
346 - **CiviCRM 5.35.1, truncation of money values where $1,000 donation is recorded
347 as $1 which appears to be truncating at the thousand separator when using the
348 Australian (AU) and US Locale
349 ([dev/core#2493](https://lab.civicrm.org/dev/core/-/issues/2493):
350 [19991](https://github.com/civicrm/civicrm-core/pull/19991))**
352 Default to not cleaning money for order.create api.
354 - **Recurring contributions label on contribution pages is unstylable text,
355 leading to problems with themes
356 ([dev/core#1452](https://lab.civicrm.org/dev/core/-/issues/1452):
357 [20092](https://github.com/civicrm/civicrm-core/pull/20092))**
359 - **Fix money formatting opps
360 ([20277](https://github.com/civicrm/civicrm-core/pull/20277))**
362 - **Make reCAPTCHA not conditional on paymentprocessor on contribution page
363 ([20180](https://github.com/civicrm/civicrm-core/pull/20180))**
365 - **Contribution.sendconfirmation API3 function should return
366 ([20182](https://github.com/civicrm/civicrm-core/pull/20182))**
368 - **Suppress legacy warnings by default in propertyBag to allow transition to
369 propertyBag without hitting legacy warnings on unconverted payment processors
370 ([20038](https://github.com/civicrm/civicrm-core/pull/20038))**
372 - **Make it clear that doDirectPayment/doTransferCheckout are deprecated and
374 ([20020](https://github.com/civicrm/civicrm-core/pull/20020))**
376 - **Fix Payment.create to update (recalculate) contribution fee_amount
377 ([20008](https://github.com/civicrm/civicrm-core/pull/20008))**
381 - **Cannot "Transfer or Cancel" event participant as admin user
382 ([dev/event#54](https://lab.civicrm.org/dev/event/-/issues/54):
383 [20150](https://github.com/civicrm/civicrm-core/pull/20150))**
387 - **Set the smarty variables for mem_status and mem_join_date for back-end
389 ([20224](https://github.com/civicrm/civicrm-core/pull/20224))**
391 - **Membership form Remove check for installments as not on the form (copied
393 ([19964](https://github.com/civicrm/civicrm-core/pull/19964))**
395 ### Drupal integration
397 - **Make APIv4 Subscribers Public to fix D9 install
398 ([20254](https://github.com/civicrm/civicrm-core/pull/20254))**
400 Fixes a "The "Civi_Api4_Event_Subscriber_PermissionCheckSubscriber" service or
401 alias has been removed..." failure on the D9 demo install.
403 - **Fix Drupal8 CiviCRM menu translation on multilingual (and ajax calls)
404 ([20085](https://github.com/civicrm/civicrm-core/pull/20085))**
406 ### Joomla integration
408 - **Cannot edit CiviCRM Joomla permissions (access control) in 5.37.0
409 ([dev/core#2601](https://lab.civicrm.org/dev/core/-/issues/2601):
410 [20256](https://github.com/civicrm/civicrm-core/pull/20256))**
412 ### Wordpress Integration
414 - **WordPress - redirect after login from event registration or contribution
415 page ([dev/core#2436](https://lab.civicrm.org/dev/core/-/issues/2436):
416 [19718](https://github.com/civicrm/civicrm-core/pull/19718))**
418 - **Update WP permission page for new string array keys
419 ([20045](https://github.com/civicrm/civicrm-core/pull/20045))**
421 ## <a name="misc"></a>Miscellany
423 - **Add amount as standard property to PaymentPropertyBag
424 ([20037](https://github.com/civicrm/civicrm-core/pull/20037))**
426 - **Use propertyBag in doPayment
427 ([20022](https://github.com/civicrm/civicrm-core/pull/20022))**
429 - **Move tpl assignment to email function
430 ([20013](https://github.com/civicrm/civicrm-core/pull/20013))**
432 - **Initial refactor of PayPal core processor to stop using
433 doDirectPayment/doTransferCheckout
434 ([20030](https://github.com/civicrm/civicrm-core/pull/20030))**
436 - **Convert Dummy payment processor to use doPayment function
437 ([20029](https://github.com/civicrm/civicrm-core/pull/20029))**
439 - **Switch to Call contribution api
440 ([20041](https://github.com/civicrm/civicrm-core/pull/20041))**
442 - **Alter dedupe code to call api rather than bao->save()
443 ([20036](https://github.com/civicrm/civicrm-core/pull/20036))**
445 - **Fix the MOST out-of-date parts of the afform readme
446 ([20100](https://github.com/civicrm/civicrm-core/pull/20100))**
448 - **oauth-client - Add test for existing Auth Code flow behavior
449 ([20162](https://github.com/civicrm/civicrm-core/pull/20162))**
451 - **add me ([20183](https://github.com/civicrm/civicrm-core/pull/20183))**
453 - **Make send letter function available to searchkit, individual contributions
454 ([20187](https://github.com/civicrm/civicrm-core/pull/20187))**
456 - **Extract sales tax test config to a trait
457 ([20233](https://github.com/civicrm/civicrm-core/pull/20233))**
459 - **APIv4 - Remove unnecessary custom getActions class
460 ([20181](https://github.com/civicrm/civicrm-core/pull/20181))**
462 - **APIv4 - Remove unnecessary class override (handled by generic)
463 ([20173](https://github.com/civicrm/civicrm-core/pull/20173))**
465 - **APIv4 - Improve entity name lookup
466 ([20056](https://github.com/civicrm/civicrm-core/pull/20056))**
468 - **APIv4 - Deprecate nonstandard syntax for implicit joins
469 ([20130](https://github.com/civicrm/civicrm-core/pull/20130))**
471 - **Extract out getReceiveDate
472 ([20007](https://github.com/civicrm/civicrm-core/pull/20007))**
474 - **Simplify mailing check
475 ([20076](https://github.com/civicrm/civicrm-core/pull/20076))**
477 - **Remove unused functions
478 ([20099](https://github.com/civicrm/civicrm-core/pull/20099))**
480 - **Replace string org.civicrm.search -> org.civicrm.search_kit
481 ([20132](https://github.com/civicrm/civicrm-core/pull/20132))**
483 - **Move more functions to the pdfLetter class
484 ([20143](https://github.com/civicrm/civicrm-core/pull/20143))**
486 - **Remove apparent copy & paste from Contribution pdf letter function
487 ([20161](https://github.com/civicrm/civicrm-core/pull/20161))**
489 - **Remove reference to trxn_id, not on form, from previously shared code
490 ([19965](https://github.com/civicrm/civicrm-core/pull/19965))**
492 - **Add deprected warning to apparently unused functions
493 ([20192](https://github.com/civicrm/civicrm-core/pull/20192))**
495 - **[REF] Add strict types to Utils_Mail::Send
496 ([20171](https://github.com/civicrm/civicrm-core/pull/20171))**
498 - **REF Cleanup ReCAPTCHA code
499 ([20167](https://github.com/civicrm/civicrm-core/pull/20167))**
501 - **[REF] Post move cleanup - switch from $form to $this
502 ([20160](https://github.com/civicrm/civicrm-core/pull/20160))**
504 - **REF reCAPTCHA Simplify buildCustom function on Registration form
505 ([20164](https://github.com/civicrm/civicrm-core/pull/20164))**
507 - **REF reCAPTCHA Simplify buildCustom function on Signature form
508 ([20165](https://github.com/civicrm/civicrm-core/pull/20165))**
510 - **[REF] Minor tidy up - use writeRecord
511 ([20159](https://github.com/civicrm/civicrm-core/pull/20159))**
513 - **[REF] Move more functions back to pdfLetter class
514 ([20155](https://github.com/civicrm/civicrm-core/pull/20155))**
516 - **[REF] Fix Security status check urls to work on WordPress
517 ([20111](https://github.com/civicrm/civicrm-core/pull/20111))**
519 - **[REF] Move functions back to class that uses it
520 ([20136](https://github.com/civicrm/civicrm-core/pull/20136))**
522 - **[Ref] Simplify getMembershipParameters
523 ([20014](https://github.com/civicrm/civicrm-core/pull/20014))**
525 - **(REF) Payflow Pro - Migrate code into a core extension
526 ([20043](https://github.com/civicrm/civicrm-core/pull/20043))**
528 - **[REF] Minor code cleanup
529 ([20175](https://github.com/civicrm/civicrm-core/pull/20175))**
531 - **[REF] Complete decommissioning of
532 CRM/Contribute/Form/Task/PDFLetterCommon.php
533 ([20172](https://github.com/civicrm/civicrm-core/pull/20172))**
535 - **[REF] Cleanup interaction with membership & membership id
536 ([20153](https://github.com/civicrm/civicrm-core/pull/20153))**
538 - **[REF] Fix error where entryURL does not contain id of the contributio…
539 ([19917](https://github.com/civicrm/civicrm-core/pull/19917))**
541 - **[REF] Simplify interaction with contributionRecur
542 ([20017](https://github.com/civicrm/civicrm-core/pull/20017))**
544 - **[REF] Minor tidy up
545 ([20194](https://github.com/civicrm/civicrm-core/pull/20194))**
547 - **[REF] Remove redundant code
548 ([20138](https://github.com/civicrm/civicrm-core/pull/20138))**
550 - **[REF] [ipn] Simplification around contributionRecur ID
551 ([19903](https://github.com/civicrm/civicrm-core/pull/19903))**
553 - **REF Update Pear/log to fix issues with install CiviCRM on Drupal 9.2
554 ([20218](https://github.com/civicrm/civicrm-core/pull/20218))**
556 - **[REF] [Towards membership api] extract getContributionSource
557 ([19966](https://github.com/civicrm/civicrm-core/pull/19966))**
559 - **[REF] [Towards membership api] Simplify determination on contribution recur
560 contact id ([19902](https://github.com/civicrm/civicrm-core/pull/19902))**
562 - **[Ref] One more place to use total fn
563 ([20010](https://github.com/civicrm/civicrm-core/pull/20010))**
565 - **[NFC] Consistency fix when defining CIVICRM_TEST
566 ([64](https://github.com/civicrm/civicrm-drupal-8/pull/64))**
568 - **[NFC] [Test] Minor preliminary cleanup
569 ([20006](https://github.com/civicrm/civicrm-core/pull/20006))**
571 - **[NFC] [Test] Preliminary cleanup
572 ([20012](https://github.com/civicrm/civicrm-core/pull/20012))**
574 - **[NFC] Code cleanup, docblocks, strict comparison, type hints
575 ([20240](https://github.com/civicrm/civicrm-core/pull/20240))**
577 - **[NFC] code cleanups in test class
578 ([20237](https://github.com/civicrm/civicrm-core/pull/20237))**
580 - **[NFC] Regenerate Grant DAO
581 ([20104](https://github.com/civicrm/civicrm-core/pull/20104))**
583 - **[NFC/Unit Test] - Help avoid problems when using assertApproxEquals with
584 integers instead of fractions
585 ([20089](https://github.com/civicrm/civicrm-core/pull/20089))**
587 - **(NFC) Fix possible flacky tests by splitting the parts of the checksum
588 ([20088](https://github.com/civicrm/civicrm-core/pull/20088))**
590 - **Add unit test for core#19628
591 ([19972](https://github.com/civicrm/civicrm-core/pull/19972))**
593 ## <a name="credits"></a>Credits
595 This release was developed by the following code authors:
597 AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Francis Whittle, Justin
598 Freeman; Benjamin W; Caltha - Tomasz Pietrzkowski; Christian Wach; CiviCoop -
599 Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CompuCorp - Ahed Eid, Omar Abu
600 Hussein; Coop SymbioTIC - Mathieu Lutfy; Dave D; Francesc Bassas i Bullich;
601 Fuzion - Jitendra Purohit; iXiam - Vangelis Pantazis; JMA Consulting - Monish
602 Deb, Seamus Lee; John Kingsnorth; Kartik Kathuria; Wildsight - Lars SG;
603 Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJCO -
604 Mikey O'Toole; MJW Consulting - Matthew Wire; Olivier Hertrich; Progressive
605 Technology Project - Jamie McClelland; Squiffle Consulting - Aidan Saunders;
606 Wikimedia Foundation - Eileen McNaughton
608 Most authors also reviewed code for this release; in addition, the following
609 reviewers contributed their comments:
611 Artful Robot - Rich Lott; Australian Greens - John Twyman; Caltha - Tomasz
612 Pietrzkowski; Christian Wach; CiviCoop - Jaap Jansma; CiviDesk - Yashodha Chaku;
613 JMA Consulting - Edsel Lopez, Joe Murray; Richard van Oosterhout; Semper IT -
614 Karin Gerritsen; SYSTOPIA Organisationsberatung - Björn Endres; Tadpole
615 Collective - Kevin Cristiano; Web Access - Kurund Jalmi;
617 ## <a name="feedback"></a>Feedback
619 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
620 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm