release-notes/5.46.0.md - Auto clean (https://gist.github.com/totten/acff49e6dd779473...
[civicrm-core.git] / release-notes / 5.46.0.md
index 1cf3e023464c4b2c011d07c11f3c91cf586bd9e3..1830506bc8b923004c4e374ca8c60c3a67dee3dc 100644 (file)
@@ -1,6 +1,6 @@
 # CiviCRM 5.46.0
 
-Released February 2, 2022
+Released February 3, 2022
 
 - **[Synopsis](#synopsis)**
 - **[Features](#features)**
@@ -13,377 +13,660 @@ Released February 2, 2022
 
 | *Does this version...?*                                         |         |
 |:--------------------------------------------------------------- |:-------:|
-| Fix security vulnerabilities?                                   |         |
-| Change the database schema?                                     |         |
-| Alter the API?                                                  |         |
-| Require attention to configuration options?                     |         |
-| Fix problems installing or upgrading to a previous version?     |         |
-| Introduce features?                                             |         |
-| Fix bugs?                                                       |         |
+| Fix security vulnerabilities?                                   |   no    |
+| **Change the database schema?**                                 | **yes** |
+| **Alter the API?**                                              | **yes** |
+| **Require attention to configuration options?**                 | **yes** |
+| **Fix problems installing or upgrading to a previous version?** | **yes** |
+| **Introduce features?**                                         | **yes** |
+| **Fix bugs?**                                                   | **yes** |
 
 ## <a name="features"></a>Features
 
 ### Core CiviCRM
 
-- **crm- Missing Summary ([22303](https://github.com/civicrm/civicrm-core/pull/22303))**
+- **re-jig demo roles to add restricted user
+  ([dev/core#2773](https://lab.civicrm.org/dev/core/-/issues/2773):
+  [22377](https://github.com/civicrm/civicrm-core/pull/22377))**
 
-## <a name="bugs"></a>Bugs resolved
+  Adds an ACL to demo data.
 
-### Core CiviCRM
+- **When adding custom data set change default selected option
+  ([dev/core#2977](https://lab.civicrm.org/dev/core/-/issues/2977):
+  [22244](https://github.com/civicrm/civicrm-core/pull/22244))**
+
+  Changes the defaults when adding custom data sets to make them more user
+  friendly.
+
+- **Expose email on hold as filter for reports
+  ([dev/core#3012](https://lab.civicrm.org/dev/core/-/issues/3012):
+  [22357](https://github.com/civicrm/civicrm-core/pull/22357))**
 
-- **dev/core#3028 - For invalid greetings, return '' instead of failing ([22650](https://github.com/civicrm/civicrm-core/pull/22650))**
+  Adds a email on hold filter to reports.
 
-- **Extensions - Add dependency status check ([22640](https://github.com/civicrm/civicrm-core/pull/22640))**
+- **Increment recommended PHP version
+  ([dev/core#2996](https://lab.civicrm.org/dev/core/-/issues/2996):
+  [22265](https://github.com/civicrm/civicrm-core/pull/22265))**
 
-- **ExtensionUpgrades - Skip trying to upgrade missing dependencies ([22623](https://github.com/civicrm/civicrm-core/pull/22623))**
+  Changes the minimum PHP version to 7.3 and the recommended PHP version to 7.4.
 
-- **APIv4 - Rename 'ReadOnly' trait to 'ReadOnlyEntity' to avoid PHP error ([22626](https://github.com/civicrm/civicrm-core/pull/22626))**
+- **APIv4 Explorer - Make selected language and format bookmarkable
+  ([22233](https://github.com/civicrm/civicrm-core/pull/22233))**
 
-- **SearchKit - Fix running searches for anonymous users ([22597](https://github.com/civicrm/civicrm-core/pull/22597))**
+  The APIv4 explorer already places params in the URL for easy bookmarking.
+  This extends it to work for the selected language tab and the selected output
+  format.
 
-- **Use api for entityRole - addresses save issue on the form ([22589](https://github.com/civicrm/civicrm-core/pull/22589))**
+- **SearchKit - Contextual "View" button
+  ([dev/core#3016](https://lab.civicrm.org/dev/core/-/issues/3016):
+  [22367](https://github.com/civicrm/civicrm-core/pull/22367))**
 
-- **[REF] Upgrade JQuery UI to 1.13.0 ([22583](https://github.com/civicrm/civicrm-core/pull/22583))**
+  Improves the SearchKit user interface
 
-- **[dev/core#3029] Avoid risking a TypeError when evaluating tokens for non-existent custom fields ([22537](https://github.com/civicrm/civicrm-core/pull/22537))**
+- **SearchKit - Add links for CustomField and CustomGroup entities
+  ([22302](https://github.com/civicrm/civicrm-core/pull/22302))**
 
-- **SearchKit - Fix token selector to use expression alias ([22539](https://github.com/civicrm/civicrm-core/pull/22539))**
+  Improves SearchKit user interface by adding links to custom field and custom
+  group entities.
 
-- **SearchKit - Facilitate popup forms ([22490](https://github.com/civicrm/civicrm-core/pull/22490))**
+- **SearchKit - Allow functions in the WHERE clause
+  ([22241](https://github.com/civicrm/civicrm-core/pull/22241))**
 
-- **Cleanup test class ([22493](https://github.com/civicrm/civicrm-core/pull/22493))**
+  Adds an advanced feature for SearchKit which allows SQL functions in the
+  WHERE clause.
 
-- **dev/core#3026 - 5.46 version of 22478 ([22479](https://github.com/civicrm/civicrm-core/pull/22479))**
+- **SearchKit - Import/Export saved search configuration
+  ([22229](https://github.com/civicrm/civicrm-core/pull/22229))**
 
-- **Crash when adding a relationship when CiviMember is disabled ([22451](https://github.com/civicrm/civicrm-core/pull/22451))**
+  Provides a UI for importing and exporting SavedSearches in JSON format. This
+  allows power-users to copy and paste their Searches between sites. For
+  extension developers, includes a direct link to generate a .mgd.php file from
+  the API Explorer.
 
-- **Use field value function to get html signature ([22445](https://github.com/civicrm/civicrm-core/pull/22445))**
+- **SearchKit - Facilitate popup forms
+  ([22490](https://github.com/civicrm/civicrm-core/pull/22490))**
 
-- **fixes report#93: SearchKit shows broken external URLs ([22437](https://github.com/civicrm/civicrm-core/pull/22437))**
+  This adds two bits of utility code to facilitate adding a popup form to an
+  Afform containing a Search Display.
 
-- **Fix input type for smarty number formatting (more forgiving) ([22429](https://github.com/civicrm/civicrm-core/pull/22429))**
+- **SearchKit - Allow aggregate columns to be links
+  ([22356](https://github.com/civicrm/civicrm-core/pull/22356))**
 
-- **[NFC] isDir unit test fails on php 7 'min' matrix ([22418](https://github.com/civicrm/civicrm-core/pull/22418))**
+  Allows aggregate columns to be rendered as a link in SearchKit Displays
 
-- **Remove unnecessary pass-by-ref ([22393](https://github.com/civicrm/civicrm-core/pull/22393))**
+- **CustomGroup - Add pseudoconstant for extends column
+  ([22282](https://github.com/civicrm/civicrm-core/pull/22282))**
 
-- **Privatise function ([22392](https://github.com/civicrm/civicrm-core/pull/22392))**
+  Adds missing pseudoconstant to schema, which will allow a SearchKit-based
+  display of custom groups.
 
-- **[REF] Remove handling for relationshipID ([22391](https://github.com/civicrm/civicrm-core/pull/22391))**
+- **Afform - UI and contextual titles for search displays
+  ([22319](https://github.com/civicrm/civicrm-core/pull/22319))**
 
-- **Ensure getDuplicateContacts always returns an array ([22394](https://github.com/civicrm/civicrm-core/pull/22394))**
+  Makes it easy to create drilldown search displays, passing in a URL arg to
+  specify a category/container. E.g. "Custom fields in group X", "Option values
+  for Individual Prefix", "Email addresses for Bob Smith".
 
-- **REF - Use `CRM_Contact_BAO_ContactType::basicTypes()` instead of hardcoded lists ([22389](https://github.com/civicrm/civicrm-core/pull/22389))**
+- **Add system status warning to display scheduled job failures
+  ([21762](https://github.com/civicrm/civicrm-core/pull/21762))**
 
-- **DedupeRules - Translate contact type labels, respect enabled contact types ([22383](https://github.com/civicrm/civicrm-core/pull/22383))**
+  Adds a system status message to display scheduled job errors.
 
-- **[REF] Further cleanup on employer create ([22390](https://github.com/civicrm/civicrm-core/pull/22390))**
+- **Add system status check for missing dedupe rules
+  ([22369](https://github.com/civicrm/civicrm-core/pull/22369))**
 
-- **Afform - UI and contextual titles for search displays ([22319](https://github.com/civicrm/civicrm-core/pull/22319))**
+  Adds a system status check to alert system administrators when an unsupervised
+  and/or supervised dedupe rule is missing.
 
-- **Smarty modifier - stop using isset to check taxTerm ([22323](https://github.com/civicrm/civicrm-core/pull/22323))**
+- **Extensions - Add dependency status check
+  ([22640](https://github.com/civicrm/civicrm-core/pull/22640))**
 
-- **dev/core#2752 Allow financial_trxns to be viewed ([21178](https://github.com/civicrm/civicrm-core/pull/21178))**
+  Adds a extensions dependency status check.
 
-- **Remove unused function ([22388](https://github.com/civicrm/civicrm-core/pull/22388))**
+- **Improve accessibility - associate label and fields
+  ([22361](https://github.com/civicrm/civicrm-core/pull/22361))**
 
-- **(NFC) Cleanup test class ([22384](https://github.com/civicrm/civicrm-core/pull/22384))**
+  Associates the labels on the event location form with the relevant inputs to
+  improve accessibility for screen reader users.
 
-- **dev/core#3001 escape single quotes when rendering tokens in html format ([22387](https://github.com/civicrm/civicrm-core/pull/22387))**
+- **Add state name to export fields
+  ([22318](https://github.com/civicrm/civicrm-core/pull/22318))**
 
-- **5.45.0 release notes: added late changes ([22386](https://github.com/civicrm/civicrm-core/pull/22386))**
+  Adds the ability to export the state name when exporting contacts.
 
-- **Add system status check for missing dedupe rules ([22369](https://github.com/civicrm/civicrm-core/pull/22369))**
+- **Add authx_login() API for backend script authentication (alt)
+  ([22292](https://github.com/civicrm/civicrm-core/pull/22292))**
 
-- **Ensure dashboardLinks assigned to prevent e-notice ([22378](https://github.com/civicrm/civicrm-core/pull/22378))**
+  Adds a function to login as a user. It is cross-platform; accepts contact ID,
+  user ID, or username; and it updates relevant services (eg Civi session;
+  Drupal $user; MySQL @civicrm_user_id).
 
-- **APIv4 Explorer - Format array params using add methods instead of set ([22382](https://github.com/civicrm/civicrm-core/pull/22382))**
+### CiviContribute
 
-- **[Ref] Add getter for priceSetID and use full form flow ([22267](https://github.com/civicrm/civicrm-core/pull/22267))**
+- **Payments - Where do we store IDs from payment processor? (Work Towards
+  [dev/financial#57](https://lab.civicrm.org/dev/financial/-/issues/57):
+  [21916](https://github.com/civicrm/civicrm-core/pull/21916))**
 
-- **SearchKit - Fix editable dates on standalone form ([22366](https://github.com/civicrm/civicrm-core/pull/22366))**
+  Hides the recur trxn_id if it matches the processor_id.
 
-- **SearchKit - Contextual "View" button ([22367](https://github.com/civicrm/civicrm-core/pull/22367))**
+- **Financial entity permissions (Work Towards
+  [dev/core#2752](https://lab.civicrm.org/dev/core/-/issues/2752):
+  [21178](https://github.com/civicrm/civicrm-core/pull/21178) and
+  [21181](https://github.com/civicrm/civicrm-core/pull/21181))**
 
-- **Fix E_WARNING access array offset on null when creating new contribution page ([22373](https://github.com/civicrm/civicrm-core/pull/22373))**
+  Allows financial_trxns to be viewed and use ACL, not blanket permissions on
+  FinancialAccount, FinancialType, EntityFinancialAccount.
 
-- **dev/report#90 - Don't crash search_kit on upgrade from 5.35 ([22375](https://github.com/civicrm/civicrm-core/pull/22375))**
+- **Demo sample data - Add in some mixed currency contributions
+  ([22307](https://github.com/civicrm/civicrm-core/pull/22307))**
 
-- **dev/core#2773 Add an ACL to demo data ([22377](https://github.com/civicrm/civicrm-core/pull/22377))**
+  Improves contribution sample data by adding some mixed currency contributions.
 
-- **enotice fix (with default modifiers) ([22372](https://github.com/civicrm/civicrm-core/pull/22372))**
+- **Add recurring conributions to sample data
+  ([22296](https://github.com/civicrm/civicrm-core/pull/22296))**
 
-- **Fix "Import Multi-Value Custom Data"  ([22365](https://github.com/civicrm/civicrm-core/pull/22365))**
+  Improves contributions sample data by adding recurring contributions.
 
-- **Do not escape showHideBlocks by default ([22371](https://github.com/civicrm/civicrm-core/pull/22371))**
+## <a name="bugs"></a>Bugs resolved
 
-- **Formatting cleanup ([22374](https://github.com/civicrm/civicrm-core/pull/22374))**
+### Core CiviCRM
 
-- **Ensure we don't get previously set honoree values in receipts ([21483](https://github.com/civicrm/civicrm-core/pull/21483))**
+- **"Open in new tab" on .crm-summary-link icons should open contact
+  page, not summary content.
+  ([dev/core#2926](https://lab.civicrm.org/dev/core/-/issues/2926):
+  [22303](https://github.com/civicrm/civicrm-core/pull/22303))**
 
-- **Fix notices on acl page ([22370](https://github.com/civicrm/civicrm-core/pull/22370))**
+- **Separate membership payment on contribution form with auto renewal not get
+  processed (Work Towards
+  [dev/core#567](https://lab.civicrm.org/dev/core/-/issues/567):
+  [22275](https://github.com/civicrm/civicrm-core/pull/22275))**
 
-- **SearchKit - Allow aggregate columns to be links ([22356](https://github.com/civicrm/civicrm-core/pull/22356))**
+  Adds a test shell to ensure membership payments with auto renewal get
+  processed.
 
-- **Fix PropertyBag setRecurInstallments to accept 0 ([21517](https://github.com/civicrm/civicrm-core/pull/21517))**
+- **Avoid warnings for is_dir() when open_basedir is in effect
+  ([dev/core#2927](https://lab.civicrm.org/dev/core/-/issues/2927):
+  [22107](https://github.com/civicrm/civicrm-core/pull/22107))**
 
-- **Use new money formatting util for smarty formatting ([22309](https://github.com/civicrm/civicrm-core/pull/22309))**
+- **Removes the limit of 15 max values for multiple values can also
+  be retrieved from URL in reports
+  ([dev/core#2979](https://lab.civicrm.org/dev/core/-/issues/2979):
+  [22214](https://github.com/civicrm/civicrm-core/pull/22214))**
 
-- **dev/financial#57 Hide recur trxn_id if it matches recur processor_id ([21916](https://github.com/civicrm/civicrm-core/pull/21916))**
+- **Fatal error when merging Housholds (getTemplateForGreeting)
+  ([dev/core#3028](https://lab.civicrm.org/dev/core/-/issues/3028):
+  [22650](https://github.com/civicrm/civicrm-core/pull/22650))**
 
-- **Improve accessibility - associate label and fields ([22361](https://github.com/civicrm/civicrm-core/pull/22361))**
+- **TypeError when trying to replace tokens for custom fields that don't exist
+  ([dev/core#3029](https://lab.civicrm.org/dev/core/-/issues/3029):
+  [22537](https://github.com/civicrm/civicrm-core/pull/22537))**
 
-- **Fix campaign dashboard to work with default escaping ([22364](https://github.com/civicrm/civicrm-core/pull/22364))**
+- **Escape single quotes in token html output
+  ([dev/core#3001](https://lab.civicrm.org/dev/core/-/issues/3001):
+  [22387](https://github.com/civicrm/civicrm-core/pull/22387) and
+  [22285](https://github.com/civicrm/civicrm-core/pull/22285))**
 
-- **Fix over-escaping when default escaping is on ([22363](https://github.com/civicrm/civicrm-core/pull/22363))**
+- **APIv4 - Rename 'ReadOnly' trait to 'ReadOnlyEntity' to avoid PHP error
+  ([22626](https://github.com/civicrm/civicrm-core/pull/22626))**
 
-- **Fix escape-by-default ([22362](https://github.com/civicrm/civicrm-core/pull/22362))**
+- **APIv4 - Fix saving NULL as custom field value
+  ([22328](https://github.com/civicrm/civicrm-core/pull/22328))**
 
-- **(dev/core#3012) Expose email on hold as filter for report ([22357](https://github.com/civicrm/civicrm-core/pull/22357))**
+- **APIv4 GroupContact create indicates user is added but are not
+  ([dev/core#2924](https://lab.civicrm.org/dev/core/-/issues/2924):
+  [22322](https://github.com/civicrm/civicrm-core/pull/22322))**
 
-- **APIv4 - Set 'activity_type_id' to required ([22359](https://github.com/civicrm/civicrm-core/pull/22359))**
+- **APIv4 - Make Groups a managed entity, fix 'null' bugs in BAO_Group
+  ([22228](https://github.com/civicrm/civicrm-core/pull/22228))**
 
-- **[NFC] docblock improvements to Import_Field classes ([22360](https://github.com/civicrm/civicrm-core/pull/22360))**
+- **APIv4 - Set 'activity_type_id' to required
+  ([22359](https://github.com/civicrm/civicrm-core/pull/22359))**
 
-- **Allow chart dropdown labels to be translatable. ([22349](https://github.com/civicrm/civicrm-core/pull/22349))**
+- **Use api for entityRole - addresses save issue on the form
+  ([22589](https://github.com/civicrm/civicrm-core/pull/22589))**
 
-- **Add state name to export fields ([22318](https://github.com/civicrm/civicrm-core/pull/22318))**
+- **SearchKit - Fix editable dates on standalone form
+  ([22366](https://github.com/civicrm/civicrm-core/pull/22366))**
 
-- **dev/drupal#172 - module status used incorrectly in drupal 8 to determine which modules to care about for managed entities ([22350](https://github.com/civicrm/civicrm-core/pull/22350))**
+- **SearchKit - Fix running searches for anonymous users
+  ([22597](https://github.com/civicrm/civicrm-core/pull/22597))**
 
-- **Remove unnecessary id attribute. ([22347](https://github.com/civicrm/civicrm-core/pull/22347))**
+- **SearchKit - Fix token selector to use expression alias
+  ([22539](https://github.com/civicrm/civicrm-core/pull/22539))**
 
-- **5.45 ([22354](https://github.com/civicrm/civicrm-core/pull/22354))**
+- **SearchKit - Fix UI for configuring display pager limit
+  ([22321](https://github.com/civicrm/civicrm-core/pull/22321))**
 
-- **Fix tests that fail after 2021 ([22352](https://github.com/civicrm/civicrm-core/pull/22352))**
+- **SearchKit - Fix column headers for custom fields in default display
+  ([22331](https://github.com/civicrm/civicrm-core/pull/22331))**
 
-- **SqlParallel - Enable more tests. Fix compatiblity with `release_time` ([22326](https://github.com/civicrm/civicrm-core/pull/22326))**
+- **SearchKit/Form: exposing a Date custom field has invalid year range
+  ([dev/report#84](https://lab.civicrm.org/dev/report/-/issues/84):
+  [22234](https://github.com/civicrm/civicrm-core/pull/22234))**
 
-- **dev/drupal#172 - Deprecated function call in Drupal 9.3 ([22337](https://github.com/civicrm/civicrm-core/pull/22337))**
+- **SearchKit: URLs to external sites no longer render
+  ([dev/report#93](https://lab.civicrm.org/dev/report/-/issues/93):
+  [22437](https://github.com/civicrm/civicrm-core/pull/22437))**
 
-- **Use JS escaping for {ts} calls in a JS context ([22348](https://github.com/civicrm/civicrm-core/pull/22348))**
+- **SearchKit: Chicken-and-egg problem upgrading from 5.35.2 to 5.44.0
+  ([dev/report#90](https://lab.civicrm.org/dev/report/-/issues/90):
+  [22375](https://github.com/civicrm/civicrm-core/pull/22375))**
 
-- **Fix membership test fail for Dec 31 ([22351](https://github.com/civicrm/civicrm-core/pull/22351))**
+  Don't crash SearchKit on upgrade from 5.35.
 
-- **Add workflow template classes for contributions ([22340](https://github.com/civicrm/civicrm-core/pull/22340))**
+- **DedupeRules - Translate contact type labels, respect enabled contact types
+  ([22383](https://github.com/civicrm/civicrm-core/pull/22383))**
 
-- **SearchKit - Allow functions in the WHERE clause ([22241](https://github.com/civicrm/civicrm-core/pull/22241))**
+  Fixes up the Dedupe Rules page to properly handle contact types.
 
-- **dev/core#2752  Use acl, not blanket permissions on FinancialAccount, FinancialType, EntityFinancialAccount ([21181](https://github.com/civicrm/civicrm-core/pull/21181))**
+- **Allow chart dropdown labels to be translatable.
+  ([22349](https://github.com/civicrm/civicrm-core/pull/22349))**
 
-- **[REF] Deprecated old getContributionStatuses ([22345](https://github.com/civicrm/civicrm-core/pull/22345))**
+- **SqlParallel - Enable more tests. Fix compatiblity with `release_time`
+  ([22326](https://github.com/civicrm/civicrm-core/pull/22326))**
 
-- **dev/core#3001 escape single quotes when rendering tokens in html format ([22285](https://github.com/civicrm/civicrm-core/pull/22285))**
+- **Use JS escaping for {ts} calls in a JS context
+  ([22348](https://github.com/civicrm/civicrm-core/pull/22348))**
 
-- **[REF] Simplify getContributionStatuses ([22280](https://github.com/civicrm/civicrm-core/pull/22280))**
+- **Find Activities Search, default search option for Activity Status will
+  exclude Activities by default which do not have a status of Scheduled or
+  Completed. Confuses and frustrates End Users.
+  ([21596](https://github.com/civicrm/civicrm-core/pull/21596))**
 
-- **5.45 to master ([22342](https://github.com/civicrm/civicrm-core/pull/22342))**
+- **Wrap another set of hardcoded strings in {ts}
+  ([22315](https://github.com/civicrm/civicrm-core/pull/22315))**
 
-- **SearchKit - Fix UI for configuring display pager limit ([22321](https://github.com/civicrm/civicrm-core/pull/22321))**
+- **Display label before input elements on SMTP settings page
+  ([22304](https://github.com/civicrm/civicrm-core/pull/22304))**
 
-- **[NFC] CRM_Core_Exception incorrectly called without message ([22339](https://github.com/civicrm/civicrm-core/pull/22339))**
+- **ExtensionUpgrades - Skip trying to upgrade missing dependencies
+  ([22623](https://github.com/civicrm/civicrm-core/pull/22623))**
 
-- **Find Activities Search, default search option for Activity Status will exclude Activities by default which do not have a status of Scheduled or Completed. Confuses and frustrates End Users. ([21596](https://github.com/civicrm/civicrm-core/pull/21596))**
+- **Fix input type for Smarty number formatting (more forgiving)
+  ([22429](https://github.com/civicrm/civicrm-core/pull/22429))**
 
-- **Fix params passed to setStatus method ([22338](https://github.com/civicrm/civicrm-core/pull/22338))**
+- **Ensure getDuplicateContacts always returns an array
+  ([22394](https://github.com/civicrm/civicrm-core/pull/22394))**
 
-- **Fix Profile helptext menu reference to reCaptcha (by r4zoli) ([22333](https://github.com/civicrm/civicrm-core/pull/22333))**
+- **Ensure dashboardLinks assigned to prevent e-notice
+  ([22378](https://github.com/civicrm/civicrm-core/pull/22378))**
 
-- **Wrap another set of hardcoded strings in {ts} ([22315](https://github.com/civicrm/civicrm-core/pull/22315))**
+- **enotice fix (with default modifiers)
+  ([22372](https://github.com/civicrm/civicrm-core/pull/22372))**
 
-- **Fix inaccuracies and mistakes in comments (especially phpdoc comments) ([22334](https://github.com/civicrm/civicrm-core/pull/22334))**
+- **Fix "Import Multi-Value Custom Data"  
+  ([22365](https://github.com/civicrm/civicrm-core/pull/22365))**
 
-- **Correctly mark updateStatusMessage method as static ([22335](https://github.com/civicrm/civicrm-core/pull/22335))**
+- **Do not escape showHideBlocks by default
+  ([22371](https://github.com/civicrm/civicrm-core/pull/22371))**
 
-- **Fix typo. CRM_Core_Execption should be CRM_Core_Exception ([22336](https://github.com/civicrm/civicrm-core/pull/22336))**
+- **Fix notices on ACL page
+  ([22370](https://github.com/civicrm/civicrm-core/pull/22370))**
 
-- **Remove unused method getGrantStatusOptGroup ([22332](https://github.com/civicrm/civicrm-core/pull/22332))**
+- **Fix PropertyBag setRecurInstallments to accept 0
+  ([21517](https://github.com/civicrm/civicrm-core/pull/21517))**
 
-- **Fix JS Error for Free event with multiple participant on registration… ([22310](https://github.com/civicrm/civicrm-core/pull/22310))**
+- **Fix over-escaping when default escaping is on
+  ([22363](https://github.com/civicrm/civicrm-core/pull/22363))**
 
-- **SearchKit - Fix column headers for custom fields in default display ([22331](https://github.com/civicrm/civicrm-core/pull/22331))**
+- **Fix escape-by-default
+  ([22362](https://github.com/civicrm/civicrm-core/pull/22362))**
 
-- **APIv4 - Fix saving NULL as custom field value ([22328](https://github.com/civicrm/civicrm-core/pull/22328))**
+- **Fix params passed to setStatus method
+  ([22338](https://github.com/civicrm/civicrm-core/pull/22338))**
 
-- **APIv4 - Set default status when creating GroupContact record ([22322](https://github.com/civicrm/civicrm-core/pull/22322))**
+- **Fix Profile helptext menu reference to reCaptcha (by r4zoli)
+  ([22333](https://github.com/civicrm/civicrm-core/pull/22333))**
 
-- **Add authx_login() API for backend script authentication (alt) ([22292](https://github.com/civicrm/civicrm-core/pull/22292))**
+- **Fix inaccuracies and mistakes in comments (especially phpdoc comments)
+  ([22334](https://github.com/civicrm/civicrm-core/pull/22334))**
 
-- **Demo sample data - Add in some mixed currency contributions ([22307](https://github.com/civicrm/civicrm-core/pull/22307))**
+- **Correctly mark updateStatusMessage method as static
+  ([22335](https://github.com/civicrm/civicrm-core/pull/22335))**
 
-- **Allow text to be translated and fix URL paths in calls to docURL() function. ([22311](https://github.com/civicrm/civicrm-core/pull/22311))**
+- **Fix typo. CRM_Core_Execption should be CRM_Core_Exception
+  ([22336](https://github.com/civicrm/civicrm-core/pull/22336))**
 
-- **Event Registration: initialize array ([22312](https://github.com/civicrm/civicrm-core/pull/22312))**
+- **APIv3 - Fix overzealous pseudoconstant matching
+  ([22298](https://github.com/civicrm/civicrm-core/pull/22298))**
 
-- **5.45 ([22317](https://github.com/civicrm/civicrm-core/pull/22317))**
+- **Allow text to be translated and fix URL paths in calls to docURL() function.
+  ([22311](https://github.com/civicrm/civicrm-core/pull/22311))**
 
-- **APIv3 - Fix overzealous pseudoconstant matching ([22298](https://github.com/civicrm/civicrm-core/pull/22298))**
+- **Fix char-set for default escaping
+  ([22306](https://github.com/civicrm/civicrm-core/pull/22306))**
 
-- **SearchKit - Add links for CustomField and CustomGroup entities ([22302](https://github.com/civicrm/civicrm-core/pull/22302))**
+- **Crash when adding a relationship when CiviMember is disabled
+  ([22451](https://github.com/civicrm/civicrm-core/pull/22451))**
 
-- **E-notice fix (smarty) ([22308](https://github.com/civicrm/civicrm-core/pull/22308))**
+- **Resources: set language-specific cacheCode, fixes AngularJS translation with
+  multilingual ([22236](https://github.com/civicrm/civicrm-core/pull/22236))**
 
-- **Fix char-set for default escaping ([22306](https://github.com/civicrm/civicrm-core/pull/22306))**
+- **Do not default-escape weight field on order
+  ([22256](https://github.com/civicrm/civicrm-core/pull/22256))**
 
-- **SearchKit - Tweak export explorer link icon + format ([22300](https://github.com/civicrm/civicrm-core/pull/22300))**
+- **Move require_once for Smarty modifier due to order issues
+  ([22252](https://github.com/civicrm/civicrm-core/pull/22252))**
 
-- **Display label before input elements on SMTP settings page ([22304](https://github.com/civicrm/civicrm-core/pull/22304))**
+- **Contact/BAO/Query.php: fix searching for whitespace
+  ([22240](https://github.com/civicrm/civicrm-core/pull/22240))**
 
-- **Do not apply default escaping to multiselects on currency form ([22294](https://github.com/civicrm/civicrm-core/pull/22294))**
+- **Use new money formatting util for Smarty formatting
+  ([22309](https://github.com/civicrm/civicrm-core/pull/22309))**
 
-- **Fix broken links in default modifier mode on manage contributions ([22290](https://github.com/civicrm/civicrm-core/pull/22290))**
+- **Smarty variables]  Remove another isset - deferredFinancialType
+  ([22183](https://github.com/civicrm/civicrm-core/pull/22183))**
 
-- **Merge 5.45 to master ([22297](https://github.com/civicrm/civicrm-core/pull/22297))**
+- **Smarty variables]  Another isset bites the dust
+  ([22186](https://github.com/civicrm/civicrm-core/pull/22186))**
 
-- **Follow up fix on recur data ([22301](https://github.com/civicrm/civicrm-core/pull/22301))**
+- **Smarty variables]  Remove isset from batch form
+  ([22187](https://github.com/civicrm/civicrm-core/pull/22187))**
 
-- **Add recurring conributions to sample data ([22296](https://github.com/civicrm/civicrm-core/pull/22296))**
+- **[Smarty variables] remove isset from merge screen
+  ([22193](https://github.com/civicrm/civicrm-core/pull/22193))**
 
-- **[REF] move code into the function ([22288](https://github.com/civicrm/civicrm-core/pull/22288))**
+- **[Smarty variables] Fix overzealous escaping with Smarty default escaping
+  ([22194](https://github.com/civicrm/civicrm-core/pull/22194))**
 
-- **Apiv4 - Make Groups a managed entity, fix 'null' bugs in BAO_Group ([22228](https://github.com/civicrm/civicrm-core/pull/22228))**
+- **[Smarty variables]  Remove issets relating to auto_renew
+  ([22195](https://github.com/civicrm/civicrm-core/pull/22195))**
 
-- **Enotice fixes on ContributionPage dash ([22289](https://github.com/civicrm/civicrm-core/pull/22289))**
+- **[Smarty variables] Remove issets from payment processor form
+  ([22192](https://github.com/civicrm/civicrm-core/pull/22192))**
 
-- **[REF] Stop passing this as form, set in function ([22287](https://github.com/civicrm/civicrm-core/pull/22287))**
+- **Smarty modifier - stop using isset to check taxTerm
+  ([22323](https://github.com/civicrm/civicrm-core/pull/22323))**
 
-- **Add workflow template for recurring cancelled ([21611](https://github.com/civicrm/civicrm-core/pull/21611))**
+- **E-notice fix (Smarty)
+  ([22308](https://github.com/civicrm/civicrm-core/pull/22308))**
 
-- **SearchKit - Import/Export saved search configuration ([22229](https://github.com/civicrm/civicrm-core/pull/22229))**
+## CiviCampaign
 
-- **[REF] Remove now non-variable variables from previously shared code ([22284](https://github.com/civicrm/civicrm-core/pull/22284))**
+- **Cleanup Smarty e-notices on campaign dashboard
+  ([22283](https://github.com/civicrm/civicrm-core/pull/22283))**
 
-- **Cleanup Smarty e-notices on campaign dashboard ([22283](https://github.com/civicrm/civicrm-core/pull/22283))**
+- **Fix campaign dashboard to work with default escaping
+  ([22364](https://github.com/civicrm/civicrm-core/pull/22364))**
 
-- **[REF] Duplicate & unshare processFormContribution ([22276](https://github.com/civicrm/civicrm-core/pull/22276))**
+## CiviCase
 
-- **CustomGroup - Add pseudoconstant for extends column ([22282](https://github.com/civicrm/civicrm-core/pull/22282))**
+- **Case activity won't open without a source
+  ([dev/core#2825](https://lab.civicrm.org/dev/core/-/issues/2825):
+  [22243](https://github.com/civicrm/civicrm-core/pull/22243))**
 
-- **dev/core#2996 Increment php recommndations ([22265](https://github.com/civicrm/civicrm-core/pull/22265))**
+- **APIv4: Confusing error when calling CaseType API
+  ([dev/core#2984](https://lab.civicrm.org/dev/core/-/issues/2984):
+  [22231](https://github.com/civicrm/civicrm-core/pull/22231))**
 
-- **dev/core#567 Add test shell ([22275](https://github.com/civicrm/civicrm-core/pull/22275))**
+## CiviContribution
 
-- **Remove unused function CRM/Utils/Mail/EmailProcessor::cleanupDir ([22278](https://github.com/civicrm/civicrm-core/pull/22278))**
+- **Repeat Contributions CiviReport warnings: Formatting non-numeric values is
+  no longer supported
+  ([dev/core#2982](https://lab.civicrm.org/dev/core/-/issues/2982):
+  [22217](https://github.com/civicrm/civicrm-core/pull/22217))**
 
-- **Remove unnecessary pass-by-ref ([22279](https://github.com/civicrm/civicrm-core/pull/22279))**
+- **Do not apply default escaping to multiselects on currency form
+ ([22294](https://github.com/civicrm/civicrm-core/pull/22294))**
 
-- **[NFC] Cleanup in Authorize.net test class ([22272](https://github.com/civicrm/civicrm-core/pull/22272))**
+- **Fix broken links in default modifier mode on manage contributions
+  ([22290](https://github.com/civicrm/civicrm-core/pull/22290))**
 
-- **Move two more functions to financialProcessor ([21927](https://github.com/civicrm/civicrm-core/pull/21927))**
+- **Enotice fixes on ContributionPage dash
+  ([22289](https://github.com/civicrm/civicrm-core/pull/22289))**
 
-- **APIv4 Explorer - Make selected language and format bookmarkable ([22233](https://github.com/civicrm/civicrm-core/pull/22233))**
+- **Fix E_WARNING access array offset on null when creating new contribution
+  page ([22373](https://github.com/civicrm/civicrm-core/pull/22373))**
 
-- **Fix test to use full form flow ([22266](https://github.com/civicrm/civicrm-core/pull/22266))**
+- **Ensure we don't get previously set honoree values in receipts
+  ([21483](https://github.com/civicrm/civicrm-core/pull/21483))**
 
-- **[NFC] - Try to work around failing tests ([22269](https://github.com/civicrm/civicrm-core/pull/22269))**
+- **Follow up fix on recur data
+  ([22301](https://github.com/civicrm/civicrm-core/pull/22301))**
 
-- **5.45 ([22271](https://github.com/civicrm/civicrm-core/pull/22271))**
+## CiviEvent
 
-- **dev/core#2927 - Avoid warnings for is_dir() when open_basedir is in effect ([22107](https://github.com/civicrm/civicrm-core/pull/22107))**
+- **Event Registration: initialize array
+  ([22312](https://github.com/civicrm/civicrm-core/pull/22312))**
 
-- **Resources: set language-specific cacheCode, fixes AngularJS translation with multilingual ([22236](https://github.com/civicrm/civicrm-core/pull/22236))**
+  Minor code nitpick to avoid a PHP fatal on PHP 8.0 in certain unusual
+  circumstances.
 
-- **Add system status warning to display scheduled job failures ([21762](https://github.com/civicrm/civicrm-core/pull/21762))**
+- **Fix JS Error for Free event with multiple participant on registration
+  ([22310](https://github.com/civicrm/civicrm-core/pull/22310))**
 
-- **[REF] Remove more params that are unused now function is not shared ([22261](https://github.com/civicrm/civicrm-core/pull/22261))**
+## Drupal Integration
 
-- **Remove handling for always-truthy var being false ([22260](https://github.com/civicrm/civicrm-core/pull/22260))**
+- **Deprecated function drupal_get_installed_schema_version() in 9.3, but with a
+  twist ([dev/drupal#172](https://lab.civicrm.org/dev/drupal/-/issues/172):
+  [22337](https://github.com/civicrm/civicrm-core/pull/22337) and
+  [22350](https://github.com/civicrm/civicrm-core/pull/22350))**
 
-- **Rename protected function ([22259](https://github.com/civicrm/civicrm-core/pull/22259))**
+- **"Your browser session has expired and we are unable to complete your form
+  submission" on all D9.2 anonymous sessions
+  ([dev/drupal#169](https://lab.civicrm.org/dev/drupal/-/issues/169):
+  [338](https://github.com/civicrm/civicrm-packages/pull/338))**
 
-- **Remove never passed variables ([22258](https://github.com/civicrm/civicrm-core/pull/22258))**
+  Fixes an error when uploading images to CKEditor via KCFinder.
 
-- **[REF] Duplicate function to allow us to work it out of the code ([22254](https://github.com/civicrm/civicrm-core/pull/22254))**
+- **Fix unreplaced template vars in civicrm.settings.php when using drush
+  installer ([67](https://github.com/civicrm/civicrm-drupal-8/pull/67))**
 
-- **(NFC) APIv4: Add help info for multi-record custom field sets ([22257](https://github.com/civicrm/civicrm-core/pull/22257))**
+- **Drupal Full-Text Search block session time out error
+  ([dev/core#3026](https://lab.civicrm.org/dev/core/-/issues/3026):
+  [22479](https://github.com/civicrm/civicrm-core/pull/22479))**
 
-- **Smarty variables]  Remove another isset - deferredFinancialType ([22183](https://github.com/civicrm/civicrm-core/pull/22183))**
+## WordPress Integration
 
-- **Do not default-escape weight field on order ([22256](https://github.com/civicrm/civicrm-core/pull/22256))**
+- **Migrate installers to "setup" API
+  (Work Towards [dev/core#1615](https://lab.civicrm.org/dev/core/-/issues/1615):
+  [264](https://github.com/civicrm/civicrm-wordpress/pull/264))**
 
-- **[REF] Minor parameter simplification ([22253](https://github.com/civicrm/civicrm-core/pull/22253))**
+  Perform CLI installations using Civi\Setup.
 
-- **[NFC] Test cleanup ([22251](https://github.com/civicrm/civicrm-core/pull/22251))**
+## <a name="misc"></a>Miscellany
 
-- **[NFC] Minor cleanup in test class ([22249](https://github.com/civicrm/civicrm-core/pull/22249))**
+- **Add workflow template for recurring cancelled
+  ([21611](https://github.com/civicrm/civicrm-core/pull/21611))**
 
-- **Move require_once for smarty modifier due to order issues ([22252](https://github.com/civicrm/civicrm-core/pull/22252))**
+- **Add workflow template classes for contributions
+  ([22340](https://github.com/civicrm/civicrm-core/pull/22340))**
 
-- **dev/core#2825 - Make source contact required for activities on the form ([22243](https://github.com/civicrm/civicrm-core/pull/22243))**
+- **Use field value function to get html signature
+  ([22445](https://github.com/civicrm/civicrm-core/pull/22445))**
 
-- **Contributor key: Add Matt Trim ([22248](https://github.com/civicrm/civicrm-core/pull/22248))**
+- **SearchKit - Tweak export explorer link icon + format
+  ([22300](https://github.com/civicrm/civicrm-core/pull/22300))**
 
-- **dev/core#2977 - For custom group creation, flip the default display settings ([22244](https://github.com/civicrm/civicrm-core/pull/22244))**
+- **Expose contact ID in getContactInfo method in
+  CRM/Mailing/Event/BAO/Queue.php
+  ([dev/core#2962](https://lab.civicrm.org/dev/core/-/issues/2962):
+  [22096](https://github.com/civicrm/civicrm-core/pull/22096))**
 
-- **Update Brick/Money to 0.5.3 ([22246](https://github.com/civicrm/civicrm-core/pull/22246))**
+- **APIv4 Explorer - Format array params using add methods instead of set
+  ([22382](https://github.com/civicrm/civicrm-core/pull/22382))**
 
-- **Contact/BAO/Query.php: fix searching for whitespace ([22240](https://github.com/civicrm/civicrm-core/pull/22240))**
+- **Update Brick/Money to 0.5.3
+  ([22246](https://github.com/civicrm/civicrm-core/pull/22246))**
 
-- **[REF] Afform - Use APIv4 for managed dashboard ([22213](https://github.com/civicrm/civicrm-core/pull/22213))**
+- **Simplify autogenerated boilerplate upgrader class
+  ([22225](https://github.com/civicrm/civicrm-core/pull/22225))**
 
-- **(dev/core#2962) get contact id for the mailing along with display nam… ([22096](https://github.com/civicrm/civicrm-core/pull/22096))**
+- **Upgrade - Bump minimum upgradable version to 4.6.12
+  ([22238](https://github.com/civicrm/civicrm-core/pull/22238))**
 
-- **Simplify autogenerated boilerplate upgrader class ([22225](https://github.com/civicrm/civicrm-core/pull/22225))**
+- **Move two more functions to financialProcessor
+  ([21927](https://github.com/civicrm/civicrm-core/pull/21927))**
 
-- **Upgrade - Bump minimum upgradable version to 4.6.12 ([22238](https://github.com/civicrm/civicrm-core/pull/22238))**
+- **Formatting cleanup
+  ([22374](https://github.com/civicrm/civicrm-core/pull/22374))**
 
-- **Smarty variables]  Another isset bites the dust ([22186](https://github.com/civicrm/civicrm-core/pull/22186))**
+- **Rename protected function
+  ([22259](https://github.com/civicrm/civicrm-core/pull/22259))**
 
-- **(REF) CRM/Upgrade - Remove unused entrypoint `verifyPreDBstate()` ([22237](https://github.com/civicrm/civicrm-core/pull/22237))**
+- **Contributor key: Add Matt Trim
+  ([22248](https://github.com/civicrm/civicrm-core/pull/22248))**
 
-- **Smarty variables]  Remove isset from batch form ([22187](https://github.com/civicrm/civicrm-core/pull/22187))**
+- **5.45.0 release notes: added late changes
+  ([22386](https://github.com/civicrm/civicrm-core/pull/22386))**
 
-- **Afform - Set date-range defaults ([22234](https://github.com/civicrm/civicrm-core/pull/22234))**
+- **Remove handling for always-truthy var being false
+  ([22260](https://github.com/civicrm/civicrm-core/pull/22260))**
 
-- **5.45 ([22232](https://github.com/civicrm/civicrm-core/pull/22232))**
+- **Remove unnecessary ID attribute.
+  ([22347](https://github.com/civicrm/civicrm-core/pull/22347))**
 
-- **NFC - Delete boilerplate comments and empty functions from upgrade classes ([22226](https://github.com/civicrm/civicrm-core/pull/22226))**
+- **Remove never passed variables
+  ([22258](https://github.com/civicrm/civicrm-core/pull/22258))**
 
-- **[Smarty variables] remove isset from merge screen ([22193](https://github.com/civicrm/civicrm-core/pull/22193))**
+- **Remove unused function
+  ([22388](https://github.com/civicrm/civicrm-core/pull/22388))**
 
-- **dev/core#2984 - Clarify API error when component is disabled ([22231](https://github.com/civicrm/civicrm-core/pull/22231))**
+- **Initial refactor of createProfileContact groups
+  ([18158](https://github.com/civicrm/civicrm-core/pull/18158))**
 
-- **(dev/core#2979) remove the limit of 15 max values for multiple values… ([22214](https://github.com/civicrm/civicrm-core/pull/22214))**
+- **Deprecated function drupal_get_path()
+  ([69](https://github.com/civicrm/civicrm-drupal-8/pull/69))**
 
-- **[Smarty variables] Fix overzealous escaping with smarty default escaping ([22194](https://github.com/civicrm/civicrm-core/pull/22194))**
+- **Update jquery.tokeninput.js to 1.6.1
+  ([336](https://github.com/civicrm/civicrm-packages/pull/336))**
 
-- **[Smarty variables]  Remove issets relating to auto_renew ([22195](https://github.com/civicrm/civicrm-core/pull/22195))**
+- **Privatise function
+  ([22392](https://github.com/civicrm/civicrm-core/pull/22392))**
 
-- **[Smarty variables] Remove issets from payment processor form ([22192](https://github.com/civicrm/civicrm-core/pull/22192))**
+- **Remove unnecessary pass-by-ref
+  ([22393](https://github.com/civicrm/civicrm-core/pull/22393))**
 
-- **dev/core#2982 - Deprecated warnings for money formatting in Repeat Contributions CiviReport ([22217](https://github.com/civicrm/civicrm-core/pull/22217))**
+- **Remove unused function CRM/Utils/Mail/EmailProcessor::cleanupDir
+  ([22278](https://github.com/civicrm/civicrm-core/pull/22278))**
 
-- **NFC - Cleanup messy boilerplate ([22224](https://github.com/civicrm/civicrm-core/pull/22224))**
+- **Remove unused method getGrantStatusOptGroup
+  ([22332](https://github.com/civicrm/civicrm-core/pull/22332))**
 
-- **Initial refactor of createProfileContact groups ([18158](https://github.com/civicrm/civicrm-core/pull/18158))**
+- **Remove unnecessary pass-by-ref
+  ([22279](https://github.com/civicrm/civicrm-core/pull/22279))**
 
-- **5.45 ([22222](https://github.com/civicrm/civicrm-core/pull/22222))**
+- **(REF) CRM/Upgrade - Remove unused entrypoint `verifyPreDBstate()`
+  ([22237](https://github.com/civicrm/civicrm-core/pull/22237))**
 
-- **[REF] Add in getVersion override for Drupal 8/9 to support cv testing… ([22220](https://github.com/civicrm/civicrm-core/pull/22220))**
+- **(REF) Remove more params that are unused now function is not shared
+  ([22261](https://github.com/civicrm/civicrm-core/pull/22261))**
 
-- **Deprecated function drupal_get_path() ([69](https://github.com/civicrm/civicrm-drupal-8/pull/69))**
+- **(REF) Duplicate function to allow us to work it out of the code
+  ([22254](https://github.com/civicrm/civicrm-core/pull/22254))**
 
-- **Fix unreplaced template vars in civicrm.settings.php when using drush installer ([67](https://github.com/civicrm/civicrm-drupal-8/pull/67))**
+- **(REF) Minor parameter simplification
+  ([22253](https://github.com/civicrm/civicrm-core/pull/22253))**
 
-- **(Backport) HookTest - Fix execution on PHP 8 ([269](https://github.com/civicrm/civicrm-wordpress/pull/269))**
+- **(REF) Add in getVersion override for Drupal 8/9 to support cv testing and
+  also cv vars:show picking up the right CMS version
+  ([22220](https://github.com/civicrm/civicrm-core/pull/22220))**
 
-- **(dev/core#1615) wp-cli - Perform CLI installations using Civi\Setup ([264](https://github.com/civicrm/civicrm-wordpress/pull/264))**
+- **(REF) Add getter for priceSetID and use full form flow
+  ([22267](https://github.com/civicrm/civicrm-core/pull/22267))**
 
-- **HookTest - Fix execution on PHP 8 ([266](https://github.com/civicrm/civicrm-wordpress/pull/266))**
+- **(REF) Afform - Use APIv4 for managed dashboard
+  ([22213](https://github.com/civicrm/civicrm-core/pull/22213))**
 
-- **dev/drupal#169 - Fix namespacing in kcfinder ([338](https://github.com/civicrm/civicrm-packages/pull/338))**
+- **(REF) Remove handling for relationshipID
+  ([22391](https://github.com/civicrm/civicrm-core/pull/22391))**
 
-- **Update jquery.tokeninput.js to 1.6.1 ([336](https://github.com/civicrm/civicrm-packages/pull/336))**
+- **(REF) Use `CRM_Contact_BAO_ContactType::basicTypes()` instead of hardcoded
+  lists ([22389](https://github.com/civicrm/civicrm-core/pull/22389))**
 
-## <a name="misc"></a>Miscellany
+- **(REF) Move code into the function
+  ([22288](https://github.com/civicrm/civicrm-core/pull/22288))**
+
+- **(REF) Remove now non-variable variables from previously shared code
+  ([22284](https://github.com/civicrm/civicrm-core/pull/22284))**
+
+- **(REF) Duplicate & unshare processFormContribution
+  ([22276](https://github.com/civicrm/civicrm-core/pull/22276))**
+
+- **(REF) Stop passing this as form, set in function
+  ([22287](https://github.com/civicrm/civicrm-core/pull/22287))**
+
+- **(REF) Deprecated old getContributionStatuses
+  ([22345](https://github.com/civicrm/civicrm-core/pull/22345))**
+
+- **(REF) Simplify getContributionStatuses
+  ([22280](https://github.com/civicrm/civicrm-core/pull/22280))**
+
+- **(REF) Upgrade jQuery UI to 1.13.0
+  ([22583](https://github.com/civicrm/civicrm-core/pull/22583))**
+
+- **(REF) Further cleanup on employer create
+  ([22390](https://github.com/civicrm/civicrm-core/pull/22390))**
+
+- **HookTest - Fix execution on PHP 8
+  ([266](https://github.com/civicrm/civicrm-wordpress/pull/266))**
+
+- **Fix membership test fail for Dec 31
+  ([22351](https://github.com/civicrm/civicrm-core/pull/22351))**
+
+- **Fix tests that fail after 2021
+  ([22352](https://github.com/civicrm/civicrm-core/pull/22352))**
+
+- **Fix test to use full form flow
+  ([22266](https://github.com/civicrm/civicrm-core/pull/22266))**
+
+- **Cleanup test class
+  ([22493](https://github.com/civicrm/civicrm-core/pull/22493))**
+
+- **(NFC) Cleanup test class
+  ([22384](https://github.com/civicrm/civicrm-core/pull/22384))**
+
+- **(NFC) Try to work around failing tests
+  ([22269](https://github.com/civicrm/civicrm-core/pull/22269))**
+
+- **(NFC) Cleanup in Authorize.net test class
+  ([22272](https://github.com/civicrm/civicrm-core/pull/22272))**
+
+- **(NFC) isDir unit test fails on PHP 7 'min' matrix
+  ([22418](https://github.com/civicrm/civicrm-core/pull/22418))**
+
+- **(NFC) APIv4: Add help info for multi-record custom field sets
+  ([22257](https://github.com/civicrm/civicrm-core/pull/22257))**
+
+- **(NFC) Test cleanup
+  ([22251](https://github.com/civicrm/civicrm-core/pull/22251))**
+
+- **(NFC) Minor cleanup in test class
+  ([22249](https://github.com/civicrm/civicrm-core/pull/22249))**
+
+- **(NFC) Cleanup messy boilerplate
+  ([22224](https://github.com/civicrm/civicrm-core/pull/22224))**
+
+- **(NFC) Delete boilerplate comments and empty functions from upgrade classes
+  ([22226](https://github.com/civicrm/civicrm-core/pull/22226))**
+
+- **(NFC) CRM_Core_Exception incorrectly called without message
+  ([22339](https://github.com/civicrm/civicrm-core/pull/22339))**
+
+- **(NFC) Docblock improvements to Import_Field classes
+  ([22360](https://github.com/civicrm/civicrm-core/pull/22360))**
 
 ## <a name="credits"></a>Credits
 
 This release was developed by the following code authors:
 
-AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; BrightMinded Ltd - Bradley Taylor; Circle Interactive - Matt Trim; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Jens Schuppe; JMA Consulting - Seamus Lee; Megaphone Technology Consulting - Jon Goldberg; Miguel Almeida; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie McClelland; Skvare - Sunil Pawar; Squiffle Consulting - Aidan Saunders; Wikimedia Foundation - Eileen McNaughton
+AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman;
+BrightMinded Ltd - Bradley Taylor; Circle Interactive - Matt Trim;
+CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku;
+Coop SymbioTIC - Mathieu Lutfy; Dave D; Jens Schuppe;
+JMA Consulting - Seamus Lee; Megaphone Technology Consulting - Jon Goldberg;
+Miguel Almeida; MJW Consulting - Matthew Wire;
+Progressive Technology Project - Jamie McClelland; Skvare - Sunil Pawar;
+Squiffle Consulting - Aidan Saunders; Wikimedia Foundation - Eileen McNaughton
 
 Most authors also reviewed code for this release; in addition, the following
 reviewers contributed their comments:
 
-Artful Robot - Rich Lott; Ben Mango; Betty Dolfing; BrightMinded Ltd - Bradley Taylor; Christian Wach; Circle Interactive - Matt Trim; civibot[bot]; CiviCoop - Jaap Jansma, Klaas Eikelboom; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit, Peter Davis; Greenpeace Central and Eastern Europe - Patrick Figel; Jens Schuppe; JMA Consulting - Joe Murray, Monish Deb, Seamus Lee; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; Mikey O'Toole; MJW Consulting - Matthew Wire; Semper IT - Karin Gerritsen; Skvare - Sunil Pawar; Tadpole Collective - Kevin Cristiano; tapashdatta; Third Sector Design - William Mortada; Wikimedia Foundation - Eileen McNaughton, Elliott Eggleston
+Artful Robot - Rich Lott; Ben Mango; Betty Dolfing; Christian Wach;
+CiviCoop - Jaap Jansma, Klaas Eikelboom; Coop SymbioTIC - Samuel Vanhove;
+Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit, Peter Davis;
+Greenpeace Central and Eastern Europe - Patrick Figel;
+JMA Consulting - Joe Murray, Monish Deb; Lighthouse Consulting and
+Design - Brian Shaughnessy; Mikey O'Toole; Semper IT - Karin Gerritsen;
+Tadpole Collective - Kevin Cristiano; tapashdatta;
+Third Sector Design - William Mortada; Wikimedia Foundation - Elliott Eggleston