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 - **Add civicrm_admin_ui extension
29 ([22628](https://github.com/civicrm/civicrm-core/pull/22628))**
31 Adds a new bundled extension `civicrm_admin_ui`. This extension replaces 2
32 screens with SearchDisplay Afforms: Custom field groups and Custom fields.
34 - **Add deprecation notice to APIv3 Explorer
35 ([22811](https://github.com/civicrm/civicrm-core/pull/22811))**
37 Adds a notice to the APIv3 explorer to encourage users to use APIv4 instead.
39 - **Apiv4 entity parity (Work Towards
40 [dev/core#2486](https://lab.civicrm.org/dev/core/-/issues/2486):
41 [22754](https://github.com/civicrm/civicrm-core/pull/22754),
42 [22823](https://github.com/civicrm/civicrm-core/pull/22823),
43 [22624](https://github.com/civicrm/civicrm-core/pull/22624) and
44 [22799](https://github.com/civicrm/civicrm-core/pull/22799))**
46 Adds "Extension", "Mailing", "MailingGroup" and "MailingJob" entities to
49 - **APIv4 - Add tableName to Entity.get output
50 ([22829](https://github.com/civicrm/civicrm-core/pull/22829))**
52 Adds `tableName` to the APIv4 Entity.get action output, improving
53 flexibility for virtual entities.
55 - **APIv4 Explorer - Add REST syntax
56 ([22722](https://github.com/civicrm/civicrm-core/pull/22722))**
58 Displays REST syntax in the APIv4 Explorer.
60 - **APIv4 - Add metadata about class args
61 ([22831](https://github.com/civicrm/civicrm-core/pull/22831))**
63 The CustomValue API is a virtual entity, where multiple api entities all get
64 routed to the same class by virtue of all sharing the prefix "Custom_" and
65 pass a class arg to the php factory functions e.g.
66 CustomValue::get('MyCustomGroup').
68 Instead of hard-coding this idea into the API Explorer now it's part of the
69 entity metadata so that other APIs, notaby ECK, can use a similar pattern.
71 - **APIv4 Explorer - Add "copy" button to quickly copy code to clipboard
72 ([22896](https://github.com/civicrm/civicrm-core/pull/22896))**
74 Makes it easy to select and copy generated APIv4 Explorer code.
76 - **SearchKit - Update APIv3 Extension.get to use APIv4
77 ([22788](https://github.com/civicrm/civicrm-core/pull/22788))**
79 Updates SearchKit code to use newer version of the API when calling
82 - **SearchKit - Use crmDialogButtons for task popups
83 ([22790](https://github.com/civicrm/civicrm-core/pull/22790))**
85 Updates the buttons in SearchKit action popups to use standard dialog button
88 - **SearchKit - Add 'merge contacts' task
89 ([22768](https://github.com/civicrm/civicrm-core/pull/22768) and
90 [23035](https://github.com/civicrm/civicrm-core/pull/23035))**
92 Adds a "merge contacts" task to SearchKit.
94 - **SearchKit - Customizable "No Results" text
95 ([22770](https://github.com/civicrm/civicrm-core/pull/22770))**
97 Makes it so users can customize the "No Results" text in SearchKit.
99 - **SearchKit - Improve import UI to handle update & preview the import
100 ([22699](https://github.com/civicrm/civicrm-core/pull/22699))**
102 SearchKit has an import/export SavedSearch feature which allows you to
103 copy/paste api code in JSON format. This change enables update as well as create,
104 and improves that UI to give better user feedback about what will happen when
107 - **SearchKit - Support relative dates and datepicker with the DATE() sql fn
108 ([22783](https://github.com/civicrm/civicrm-core/pull/22783))**
110 Allows one to pick a relative or calendar date in conjunction with the DATE
111 ONLY field transformation.
113 - **Civi\Api4\Queue - Allow use with hook_managed
114 ([22796](https://github.com/civicrm/civicrm-core/pull/22796))**
116 Flags the entity Queue so that it can be used with hook_managed.
118 - **Define more usable queue DX for multithreaded background work (Work Towards
119 [dev/core#1304](https://lab.civicrm.org/dev/core/-/issues/1304):
120 [22812](https://github.com/civicrm/civicrm-core/pull/22812))**
122 Expands the schema for civicrm_queue (et al). By configuring properties on
123 civicrm_queue (et al), you can tell a generic queue-agent how to handle items
126 - **ManagedEntities - Allow "match" param to convert existing records to …
127 ([22883](https://github.com/civicrm/civicrm-core/pull/22883))**
129 This can help ease the pain of declaring managed entities which may or may not
130 already exist - now they can be matched by name or other unique identifier.
132 - **Database update from 5.47.2 to 5.47.3 fails with a non en_US database.
133 ([dev/core#3135](https://lab.civicrm.org/dev/core/-/issues/3151):
134 [23063](https://github.com/civicrm/civicrm-core/pull/23063))**
138 - **Add basic contribution example base for contribution workflows
139 ([22636](https://github.com/civicrm/civicrm-core/pull/22636))**
141 Makes it so that one can preview Contribution Message Templates.
143 - **Remove time component from the {contribution.receive_date} token
144 ([dev/core#3072](https://lab.civicrm.org/dev/core/-/issues/3072):
145 [23071](https://github.com/civicrm/civicrm-core/pull/23071))**
149 - **Introduce a way to link event participants from the associated booking.
150 ([dev/user-interface#45](https://lab.civicrm.org/dev/user-interface/-/issues/45):
151 [22732](https://github.com/civicrm/civicrm-core/pull/22732))**
153 Introduces a way to navigate to participants from the contribution view.
157 - **Mailing - Add `serialize` and `add` to `template_options` field
158 ([22785](https://github.com/civicrm/civicrm-core/pull/22785))**
160 Improves the mailing schema metadata for template_options and template_type
163 - **Start phasing out 'preferred_mail_format' (Work Towards
164 [dev/core#2866](https://lab.civicrm.org/dev/core/-/issues/2866):
165 [22775](https://github.com/civicrm/civicrm-core/pull/22775),
166 [22633](https://github.com/civicrm/civicrm-core/pull/22633) and
167 [22635](https://github.com/civicrm/civicrm-core/pull/22635))**
169 Ignores preferred mail format when sending a message. Instead sends both html
170 and plain text versions and lets the email client decide which to show.
171 Removes `preferred_mail_format` from email trait.
173 ### Drupal Integraton
175 - **civicrm.drush.inc - Add 'civicrm-pipe' subcommand
176 ([70](https://github.com/civicrm/civicrm-drupal-8/pull/70))**
178 Adds support for the subcommand `drush civicrm-pipe` (`drush cvpipe`).
180 ## <a name="bugs"></a>Bugs resolved
184 - **Update DOMPDF to 1.2.1 and update composer-compile-plugin as per master
185 ([23102](https://github.com/civicrm/civicrm-core/pull/23102))**
187 - **Contact Logging Detail report crashes when a contribution and contact are
189 ([dev/report#85](https://lab.civicrm.org/dev/report/-/issues/85):
190 [22242](https://github.com/civicrm/civicrm-core/pull/22242))**
192 - **Warning: is_dir(): open_basedir restriction in effect
193 ([dev/core#2927](https://lab.civicrm.org/dev/core/-/issues/2927):
194 [22277](https://github.com/civicrm/civicrm-core/pull/22277))**
196 Avoids flooding logs with `open_basedir` in effect.
198 - **Filter summary no longer appearing on results for Reports
199 ([dev/core#3153](https://lab.civicrm.org/dev/core/-/issues/3153):
200 [23086](https://github.com/civicrm/civicrm-core/pull/23086))**
202 - **Switch extension downloader and extensions feed to use Guzzle HTTP library
203 ([21097](https://github.com/civicrm/civicrm-core/pull/21097))**
205 This fixes some situations (eg. shared servers with open_basedir restrictions
206 in effect) where zip file was not downloaded properly and extension could not
207 be updated. It also means that we are no longer using our custom
208 CRM_Utils_HttpClient::fetch() function from within civicrm core.
210 - **RC Error: Call to undefined method
211 CRM_Contact_Page_View_Summary::addExpectedSmartyVariables()
212 ([dev/core#3104](https://lab.civicrm.org/dev/core/-/issues/3104):
213 [22897](https://github.com/civicrm/civicrm-core/pull/22897))**
215 - **Post-upgrade messages no longer being displayed
216 ([dev/core#3119](https://lab.civicrm.org/dev/core/-/issues/3119):
217 [22985](https://github.com/civicrm/civicrm-core/pull/22985))**
219 - **CiviReport - Title and Statistics appearing at top and bottom of reports
220 ([dev/core#3126](https://lab.civicrm.org/dev/core/-/issues/3126):
221 [22976](https://github.com/civicrm/civicrm-core/pull/22976))**
223 - **APIv4 - Fix setting/getting a multi-record customfield with date+time
224 ([22731](https://github.com/civicrm/civicrm-core/pull/22731))**
226 - **APIv4 - Fix typo in Entity.getFields
227 ([22776](https://github.com/civicrm/civicrm-core/pull/22776))**
229 - **Fix apiv4 Contribution delete & all line items
230 ([22749](https://github.com/civicrm/civicrm-core/pull/22749))**
232 - **Fix API4 Explorer undefined variable error
233 ([22849](https://github.com/civicrm/civicrm-core/pull/22849))**
235 - **Afform - Fix saving and editing entity blocks
236 ([22963](https://github.com/civicrm/civicrm-core/pull/22963),
237 [22986](https://github.com/civicrm/civicrm-core/pull/22986), and
238 [23104](https://github.com/civicrm/civicrm-core/pull/23104))**
240 - **Afform Gui - Fix selecting html element of text box
241 ([22929](https://github.com/civicrm/civicrm-core/pull/22929))**
243 - **Afform - fix missing submit actions
244 ([23024](https://github.com/civicrm/civicrm-core/pull/23024))**
246 - **SearchKit - Fix support for non-DAO entities
247 ([22764](https://github.com/civicrm/civicrm-core/pull/22764))**
249 - **Fix deleting afforms when deleting saved search
250 ([22997](https://github.com/civicrm/civicrm-core/pull/22997))**
252 A typo in the code was preventing afforms from being deleted with a
253 corresponding saved search, and may have led to afforms being deleted
256 - **SearchKit - Fix multi-valued afform filters
257 ([23012](https://github.com/civicrm/civicrm-core/pull/23012))**
259 Fixes a SearchKit regression causing multi-select afform filters to stop
262 - **Search Kit: Unable to Aggregate on a Custom Field
263 ([dev/core#3143](https://lab.civicrm.org/dev/core/-/issues/3143):
264 [23070](https://github.com/civicrm/civicrm-core/pull/23070))**
266 - **Only acl line items based on contribution
267 ([22870](https://github.com/civicrm/civicrm-core/pull/22870))**
269 Ensures ACL query on line items only joins `entity_id` to contributions.
271 - **Add handling for civimember disabled
272 ([22864](https://github.com/civicrm/civicrm-core/pull/22864))**
274 - **Revert membership debug handling in IPN
275 ([22475](https://github.com/civicrm/civicrm-core/pull/22475))**
277 - **Format money in custom fields once, on the tpl layer
278 ([22728](https://github.com/civicrm/civicrm-core/pull/22728))**
280 - **New Individual: Unfilled fields "Custom Email Greeting", "Custom Postal
281 Greeting", "Custom Addressee" are hidden
282 ([dev/core#483](https://lab.civicrm.org/dev/core/-/issues/483):
283 [22380](https://github.com/civicrm/civicrm-core/pull/22380))**
285 - **Fix regression with flexible merging of contact information
286 ([22720](https://github.com/civicrm/civicrm-core/pull/22720))**
288 - **Recent update to {receipt_text} token gives warning in system check after
289 upgrade ([22821](https://github.com/civicrm/civicrm-core/pull/22821))**
291 - **Remove "Search Builder" from menubar on new installs.
292 ([22778](https://github.com/civicrm/civicrm-core/pull/22778))**
294 - **Pseudoconstants - Fix and improve handling of option callbacks
295 ([22730](https://github.com/civicrm/civicrm-core/pull/22730))**
297 - **Refresh entity list after updating custom group (self_hook_*)
298 ([22868](https://github.com/civicrm/civicrm-core/pull/22868))**
300 - **Avoid null column showing on groups search page
301 ([22724](https://github.com/civicrm/civicrm-core/pull/22724))**
303 - **Call to undefined function civicrm_api3_create_error() in
304 civicrm/civicrm/CRM/Core/Page/AJAX/Attachment.php:65
305 ([22872](https://github.com/civicrm/civicrm-core/pull/22872))**
307 - **Fix backward-compatability for new method in CRM_Contact_BAO_Query_Hook
308 ([22933](https://github.com/civicrm/civicrm-core/pull/22933))**
310 - **Fix submit handling of thousands when creating data entry batch
311 ([22772](https://github.com/civicrm/civicrm-core/pull/22772))**
313 - **Avoid PHP undefined index notices on extension pages
314 ([22848](https://github.com/civicrm/civicrm-core/pull/22848))**
316 - **Fix issues with PHP GetText and 0 length files
317 ([22842](https://github.com/civicrm/civicrm-core/pull/22842))**
319 - **Remove reference to undefined variable in
320 CRM_Contact_Form_Inline_CommunicationPreferences
321 ([22840](https://github.com/civicrm/civicrm-core/pull/22840))**
323 - **Mark methods which are only used statically as static
324 ([22844](https://github.com/civicrm/civicrm-core/pull/22844))**
326 - **Use valid syntax for self-closing br elements
327 ([22711](https://github.com/civicrm/civicrm-core/pull/22711))**
329 - **civicrm_handler_filter_pseudo_constant - Guard against old or inactive
330 pseudoconstants ([656](https://github.com/civicrm/civicrm-drupal/pull/656))**
332 - **Contact token should show contact's info instead of logged in contact
333 ([22874](https://github.com/civicrm/civicrm-core/pull/22874))**
335 - **Fixes fatal error - function doesn't exist
336 ([275](https://github.com/civicrm/civicrm-wordpress/pull/275))**
338 - **Notice fixes ([22706](https://github.com/civicrm/civicrm-core/pull/22706))**
340 - **Some more notice fixes in smarty
341 ([22745](https://github.com/civicrm/civicrm-core/pull/22745))**
344 ([22719](https://github.com/civicrm/civicrm-core/pull/22719))**
346 - **Enotice fix ([22707](https://github.com/civicrm/civicrm-core/pull/22707))**
348 - **Mark AJAX methods as static
349 ([22895](https://github.com/civicrm/civicrm-core/pull/22895))**
351 - **Avoid e-notices on pages with tabs
352 ([22892](https://github.com/civicrm/civicrm-core/pull/22892))**
354 - **Flush the metadata cache when the domain is edited
355 ([22637](https://github.com/civicrm/civicrm-core/pull/22637))**
357 - **Remove broken call to function_exists in CRM_Utils_String::isUtf8
358 ([22803](https://github.com/civicrm/civicrm-core/pull/22803))**
360 - **Avoid PHP notices on the UF settings page.
361 ([22667](https://github.com/civicrm/civicrm-core/pull/22667))**
363 - **Fix deprecated warnings, smary grumpy-mode issues in legacy searches
364 ([22742](https://github.com/civicrm/civicrm-core/pull/22742))**
366 - **Return array for setdefaults
367 ([22948](https://github.com/civicrm/civicrm-core/pull/22948))**
371 - **CiviCase - Call hooks when creating relationships
372 ([22814](https://github.com/civicrm/civicrm-core/pull/22814))**
374 Ensures hooks are called when creating case relationships.
378 - **Bypass grumpy mode for contribution search totals & criteria
379 ([22744](https://github.com/civicrm/civicrm-core/pull/22744))**
381 - **Clean return values for dummy payment processor
382 ([22679](https://github.com/civicrm/civicrm-core/pull/22679))**
384 - **Adjust css class for payment processor to use `-`
385 ([22763](https://github.com/civicrm/civicrm-core/pull/22763))**
387 - **Fix pledge default on contribution page when the site has a WR for
388 "contribution" ([22801](https://github.com/civicrm/civicrm-core/pull/22801))**
390 - **Format money on transaction list
391 ([22438](https://github.com/civicrm/civicrm-core/pull/22438))**
393 - **Deprecate civicrm_contribution_recur.trxn_id
394 ([21539](https://github.com/civicrm/civicrm-core/pull/21539))**
396 - **php notices on contributionview
397 ([22866](https://github.com/civicrm/civicrm-core/pull/22866))**
399 - **php/smarty notices on contribution view part 2
400 ([22869](https://github.com/civicrm/civicrm-core/pull/22869))**
402 - **smarty/php notices on contribution view part 4
403 ([22894](https://github.com/civicrm/civicrm-core/pull/22894))**
405 - **Cleanup on contribution view
406 ([22698](https://github.com/civicrm/civicrm-core/pull/22698))**
408 - **Contribution view page crashes if you don't have event permissions
409 ([dev/core#3094](https://lab.civicrm.org/dev/core/-/issues/3094):
410 [22865](https://github.com/civicrm/civicrm-core/pull/22865))**
414 - **Don't perform event timezone check if CiviEvent is disabled
415 ([22898](https://github.com/civicrm/civicrm-core/pull/22898))**
419 - **CiviGrant - Don't auto-create any grant types
420 ([22913](https://github.com/civicrm/civicrm-core/pull/22913))**
422 - **Grant checkbox in display prefs does nothing anymore
423 ([dev/core#3159](https://lab.civicrm.org/dev/core/-/issues/3159):
424 [23105](https://github.com/civicrm/civicrm-core/pull/23105))**
426 - **Views - CiviGrant is now an extension
427 ([654](https://github.com/civicrm/civicrm-drupal/pull/654))**
429 Updates the Drupal Views integration to recognize that CiviGrant is now an
434 - **Move check for mailing workflow permisisons to BAO layer
435 ([22766](https://github.com/civicrm/civicrm-core/pull/22766))**
437 - **BAO_Mailing::create - stop passing by reference
438 ([22753](https://github.com/civicrm/civicrm-core/pull/22753))**
441 ([22818](https://github.com/civicrm/civicrm-core/pull/22818))**
443 Adds checkPerm to crmMailingSimpleDirective, enables ability of permission
444 checking in composer mail.
446 - **A/B testing report should show unique opens, not total opens
447 ([dev/core#2100](https://lab.civicrm.org/dev/core/-/issues/2100):
448 [20093](https://github.com/civicrm/civicrm-core/pull/20093))**
450 - **Mailing Report: do not recalculate the recipients when the count is zero
451 ([22800](https://github.com/civicrm/civicrm-core/pull/22800))**
453 - **5.44+ Unsubscribe from Smart Group form generates excessive process load
454 ([dev/core#3031](https://lab.civicrm.org/dev/core/-/issues/3031):
455 [23051](https://github.com/civicrm/civicrm-core/pull/23051))**
457 This splits the select query in two when checking if a contact was subscribed
458 to one or more groups.
462 - **New Membership fails when price set present but not selected
463 ([dev/core#3134](https://lab.civicrm.org/dev/core/-/issues/3134):
464 [23027](https://github.com/civicrm/civicrm-core/pull/23027))**
466 - **Fixes for smarty grumpy mode with membership
467 ([22752](https://github.com/civicrm/civicrm-core/pull/22752))**
469 - **Cleanup on Offline Membership Receipts (ensures variables present across
470 flows) ([22736](https://github.com/civicrm/civicrm-core/pull/22736))**
472 ## <a name="misc"></a>Miscellany
474 - **Move acl check for contributionView to the extension
475 ([22684](https://github.com/civicrm/civicrm-core/pull/22684))**
477 - **Move financial acls for membership to extension
478 ([22677](https://github.com/civicrm/civicrm-core/pull/22677))**
480 - **APIv4 - remove unnecessary field from System::check
481 ([22748](https://github.com/civicrm/civicrm-core/pull/22748))**
483 - **APIv4 - Add fixme about filtering custom fields by sub-type
484 ([22827](https://github.com/civicrm/civicrm-core/pull/22827))**
486 - **Cleanup around taxTerm assignment
487 ([22422](https://github.com/civicrm/civicrm-core/pull/22422))**
489 - **RecurForms test fixes
490 ([22784](https://github.com/civicrm/civicrm-core/pull/22784))**
492 - **Update unit test to use exception
493 ([22787](https://github.com/civicrm/civicrm-core/pull/22787))**
495 - **Added Cancel Recur Subscription test & setter for `supports` on Dummy
496 processor ([21895](https://github.com/civicrm/civicrm-core/pull/21895))**
498 - **Move HookInterface to \Civi\Core namespace
499 ([22834](https://github.com/civicrm/civicrm-core/pull/22834))**
501 - **Cody tidy in CRM_Core_State
502 ([22841](https://github.com/civicrm/civicrm-core/pull/22841))**
504 - **Remove reference to undefined variable
505 ([22839](https://github.com/civicrm/civicrm-core/pull/22839))**
507 - **added as a contributor
508 ([22876](https://github.com/civicrm/civicrm-core/pull/22876))**
510 - **Remove unused parameter, pass-by-ref
511 ([22756](https://github.com/civicrm/civicrm-core/pull/22756))**
513 - **Bump karma from 6.3.14 to 6.3.16
514 ([22875](https://github.com/civicrm/civicrm-core/pull/22875))**
516 - **Bump karma from 6.3.4 to 6.3.14
517 ([22758](https://github.com/civicrm/civicrm-core/pull/22758))**
519 - **Bump ajv from 6.6.1 to 6.12.6
520 ([22761](https://github.com/civicrm/civicrm-core/pull/22761))**
522 - **Remove unit tests based on older framework
523 ([71](https://github.com/civicrm/civicrm-drupal-8/pull/71))**
525 - **REF - Use function to get component name from permission
526 ([22688](https://github.com/civicrm/civicrm-core/pull/22688))**
528 - **[REF] Simplify Location::getValues
529 ([22757](https://github.com/civicrm/civicrm-core/pull/22757))**
531 - **[REF] Fix issue where spaces in payment_processor_type.name field cau…
532 ([22760](https://github.com/civicrm/civicrm-core/pull/22760))**
534 - **[REF] Cleanup billingBlock.js
535 ([22713](https://github.com/civicrm/civicrm-core/pull/22713))**
537 - **[REF] Results of running npm audit fix
538 ([22773](https://github.com/civicrm/civicrm-core/pull/22773))**
540 - **[REF] - Deprecate & delegate BAO::retrieve functions
541 ([22543](https://github.com/civicrm/civicrm-core/pull/22543))**
543 - **REF Deprecate API3 _ipn_process_transaction()
544 ([22488](https://github.com/civicrm/civicrm-core/pull/22488))**
546 - **(REF) CRM_Queue_Queue_* - Retain a copy of `$queueSpec`
547 ([22797](https://github.com/civicrm/civicrm-core/pull/22797))**
549 - **(REF) CRM_Queue_Task - Tighter signature
550 ([22794](https://github.com/civicrm/civicrm-core/pull/22794))**
552 - **[REF] Remove old require_once statements made obsolete by autoloader
553 ([22792](https://github.com/civicrm/civicrm-core/pull/22792))**
555 - **[REF] Simplification in Contact::getValues
556 ([22765](https://github.com/civicrm/civicrm-core/pull/22765))**
558 - **[REF] Fix css code style issues
559 ([22807](https://github.com/civicrm/civicrm-core/pull/22807))**
561 - **[REF] Remove unused api v2 function
562 ([22819](https://github.com/civicrm/civicrm-core/pull/22819))**
564 - **[REF] Update Guzzlehttp/psr7 version to be 1.8.5
565 ([22998](https://github.com/civicrm/civicrm-core/pull/22998))**
567 - **[REF] Rename SoftDeleteEntity -> SoftDeleteActionTrait
568 ([22944](https://github.com/civicrm/civicrm-core/pull/22944))**
570 - **[REF] APIv4 - use entityTypes event to load custom records
571 ([22824](https://github.com/civicrm/civicrm-core/pull/22824))**
573 - **[REF] Cleanup docblocks & unused vars in Membership BAO
574 ([22665](https://github.com/civicrm/civicrm-core/pull/22665))**
576 - **(NFC) tests/phpunit/CRM/Queue - Add common `@group`
577 ([22795](https://github.com/civicrm/civicrm-core/pull/22795))**
579 - **[NFC] Rename RecurForms test class
580 ([22820](https://github.com/civicrm/civicrm-core/pull/22820))**
582 - **[NFC] Batch entry - Avoid warnings when performing math on empty string.
583 ([22715](https://github.com/civicrm/civicrm-core/pull/22715))**
585 - **(NFC) contributor-key.yml - Fix syntax error
586 ([22921](https://github.com/civicrm/civicrm-core/pull/22921))**
588 - **(NFC) LoggingDetailTest - Improve reliability of test
589 ([22867](https://github.com/civicrm/civicrm-core/pull/22867))**
591 - **(NFC) Membership Tests - Update assertions to match behavior circa leap-day
592 ([22860](https://github.com/civicrm/civicrm-core/pull/22860))**
594 - **[NFC] Basic case create test with org
595 ([22846](https://github.com/civicrm/civicrm-core/pull/22846))**
597 ## <a name="credits"></a>Credits
599 This release was developed by the following code authors:
601 AGH Strategies - Alice Frumin, Andie Hunt; BrightMinded Ltd - Bradley
602 Taylor;Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman
603 Watts, Tim Otten; Coop SymbioTIC - Mathieu Lutfy; Dave D; Fuzion - Luke Stewart;
604 Grype Digital Inc. - Md Rashedul Islam; JMA Consulting - Monish Deb, Seamus Lee;
605 John Kingsnorth; Kartik Kathuria; Megaphone Technology Consulting - Jon
606 Goldberg; MJW Consulting - Matthew Wire; Registered Nurses' Association of
607 Ontario - Ian Wilson; Tadpole Collective - Kevin Cristiano; Wikimedia
608 Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green
610 Most authors also reviewed code for this release; in addition, the following
611 reviewers contributed their comments:
613 Agileware - Justin Freeman; Artful Robot - Rich Lott; Blackfly Solutions - Alan
614 Dixon; Bluehorn Digital - Matt Glaman; CiviCoop - Jaap Jansma; CiviDesk -
615 Yashodha Chaku; Progressive Technology Project - Jamie McClelland; Semper IT -
616 Karin Gerritsen; Skvare - Mark Hanna
618 ## <a name="feedback"></a>Feedback
620 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
621 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm