Merge pull request #23474 from eileenmcnaughton/import_dep
[civicrm-core.git] / release-notes / 5.41.0.md
index 8f214a7b95142416df157481913a9abc007b6eba..d9f583f3fd65dffc5b13088a17ae940149db0f4b 100644 (file)
@@ -13,414 +13,706 @@ Released September 1, 2021
 
 | *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
 
-## <a name="bugs"></a>Bugs resolved
-
 ### Core CiviCRM
 
-- **dev/core#2743 fix api v3 to not unnecessarily load options ([21099](https://github.com/civicrm/civicrm-core/pull/21099))**
+- **[CiviReport] Add "is null" and "is not null" to OP_MULTISELECT_SEPARATOR
+  ([dev/core#2652](https://lab.civicrm.org/dev/core/-/issues/2652):
+  [20794](https://github.com/civicrm/civicrm-core/pull/20794))**
 
-- **dev/user-interface#37 Reinstate jQueryUI visible focus effect in quicksearch ([21102](https://github.com/civicrm/civicrm-core/pull/21102))**
+  Makes it possible to filter by `is null` and `is not null` on reports that use
+  OP_MULTISELECT_SEPARATOR.
 
-- **fix crmValidate() not loading on event registration pages ([21124](https://github.com/civicrm/civicrm-core/pull/21124))**
+- **Add ContributionProduct and EntityBatch APIv4 Entity
+  ([20505](https://github.com/civicrm/civicrm-core/pull/20505))**
 
-- **delocalize total amount before passing to setOverrideTotal ([21107](https://github.com/civicrm/civicrm-core/pull/21107))**
+  Adds `ContributionProduct` and `EntityBatch` as APIv4 entities.
 
-- **[REF] Upgrade CKEditor to 4.16.2 ([21108](https://github.com/civicrm/civicrm-core/pull/21108))**
+- **Add v4 managed api entity
+  ([20932](https://github.com/civicrm/civicrm-core/pull/20932))**
 
-- **(NFC) release-notes - Fix typo ([21104](https://github.com/civicrm/civicrm-core/pull/21104))**
+  Adds `Managed` as an APIv4 entity.
 
-- **dev/core#2749 remove exception when no payment processor configured when no payment processor configured ([21100](https://github.com/civicrm/civicrm-core/pull/21100))**
+- **APIv4 - Better handling of output value using GROUP_CONCAT
+  ([20896](https://github.com/civicrm/civicrm-core/pull/20896))**
 
-- **[REF] Fix utf8mb4 test in APIv4 and re-enable the altering of databas… ([21001](https://github.com/civicrm/civicrm-core/pull/21001))**
+  Improves output formatting of the `GROUP_CONCAT` sql function in APIv4.
 
-- **dev/core#2742 fix group type on group create from form ([21053](https://github.com/civicrm/civicrm-core/pull/21053))**
+- **Search kit / afform allow default for filters
+  ([dev/core#2734](https://lab.civicrm.org/dev/core/-/issues/2734):
+  [21005](https://github.com/civicrm/civicrm-core/pull/21005))**
 
-- **dev/core#2740 fix dashboard regression on links ([21051](https://github.com/civicrm/civicrm-core/pull/21051))**
+  Allows end users to set a default value for fields in SearchKit and Afform.
 
-- **Tpl notice fixes ([21050](https://github.com/civicrm/civicrm-core/pull/21050))**
+- **SearchKit - Add links to view/edit/delete relationships
+  ([20886](https://github.com/civicrm/civicrm-core/pull/20886))**
 
-- **SearchKit - Fix permission to access task list ([21045](https://github.com/civicrm/civicrm-core/pull/21045))**
+  Adds links to view/edit/delete the relationship when joining on related
+  contacts in SearchKit.
 
-- **contributor-key.yml: updates for Symbiotic ([21044](https://github.com/civicrm/civicrm-core/pull/21044))**
+- **Search kit request - calculated field in display
+  ([dev/core#2704](https://lab.civicrm.org/dev/core/-/issues/2704):
+  [20947](https://github.com/civicrm/civicrm-core/pull/20947))**
 
-- **Reconcile tokens misnamed or missing on legacy class ([21039](https://github.com/civicrm/civicrm-core/pull/21039))**
+  Supports SQL functions in the SearchKit UI.
 
-- **Switch to using apiv4 for metadata ([21038](https://github.com/civicrm/civicrm-core/pull/21038))**
+- **SearchKit - Support all fields as tokens
+  ([20880](https://github.com/civicrm/civicrm-core/pull/20880))**
 
-- **Enotice fix ([21041](https://github.com/civicrm/civicrm-core/pull/21041))**
+  Improves SearchDisplay support for tokens (in link URLs, list labels, and
+  rewritten fields).
 
-- **Enotice fix ([21040](https://github.com/civicrm/civicrm-core/pull/21040))**
+- **Enable range search for money fields in search kit + afform
+  ([20930](https://github.com/civicrm/civicrm-core/pull/20930))**
+
+  Makes it possible to range search money fields in SearchKit and Afform UIs.
+
+- **Use template variable to add or remove swap button.
+  ([21003](https://github.com/civicrm/civicrm-core/pull/21003))**
+
+  Uses template variable to add or remove swap button on the Activity edit form.
+
+- **Add hook for validating checksum
+  ([20858](https://github.com/civicrm/civicrm-core/pull/20858))**
+
+  Adds a hook that can be called to override/modify checksum validation.
 
-- **Make report subtotals work for custom fields ([20752](https://github.com/civicrm/civicrm-core/pull/20752))**
+- **Distinguish custom field VIEW from EDIT permissions
+  ([20837](https://github.com/civicrm/civicrm-core/pull/20837))**
 
-- **Fix mailing task when there are no tasks ([20989](https://github.com/civicrm/civicrm-core/pull/20989))**
+  Fixes the previously blurry distinction between permission to VIEW or EDIT a
+  group of custom fields.
 
-- **Reconcile contribution amount tokens ([21036](https://github.com/civicrm/civicrm-core/pull/21036))**
+- **CRM_Utils_Type::validatePhpType - Helper to validate PHP type expressions
+  ([20923](https://github.com/civicrm/civicrm-core/pull/20923))**
 
-- **Fix advertised token for source ([21037](https://github.com/civicrm/civicrm-core/pull/21037))**
+  Adds a helper for evaluating the type expressions that appear in PHP
+  docblocks. This is a building block for other code that uses docblocks for
+  validation.
 
-- **Update contribution_page_id token in sched reminders ([21035](https://github.com/civicrm/civicrm-core/pull/21035))**
+### CiviContribute
 
-- ** Reconcile and upgrade tokens for payment instrument, financial type ([21000](https://github.com/civicrm/civicrm-core/pull/21000))**
+- **Proposal - make future recurring contribution instances modifiable & not
+  fail if the only contribution is deleted. (Work Towards
+  [dev/financial#6](https://lab.civicrm.org/dev/financial/-/issues/6):
+  [20685](https://github.com/civicrm/civicrm-core/pull/20685))**
 
-- **Switch contribution action schedule tokens to use advertised tokens for cancel_date & source ([20999](https://github.com/civicrm/civicrm-core/pull/20999))**
+  Adds a button to the "Recurring Contributions" tab of the Contact Summary to
+  create/view the template contribution.
 
-- **Fix bulk adding custom fields with logging on ([21019](https://github.com/civicrm/civicrm-core/pull/21019))**
+- **Update label on payment instrument
+  ([20977](https://github.com/civicrm/civicrm-core/pull/20977))**
 
-- **Update contributor-key.yml ([21033](https://github.com/civicrm/civicrm-core/pull/21033))**
+  Defines a label "Payment Method" for payment instrument.
 
-- **5.40 up merge ([21032](https://github.com/civicrm/civicrm-core/pull/21032))**
+- **Improve accessibility for price fields of the type select by adding the
+  price field label to the placeholder.
+  ([20927](https://github.com/civicrm/civicrm-core/pull/20927))**
 
-- **Afform - support default values for fields ([21005](https://github.com/civicrm/civicrm-core/pull/21005))**
+  Makes placeholder text for price fields of the type select more specific and
+  more accessible by adding the label to them.
 
-- **5.40 ([21015](https://github.com/civicrm/civicrm-core/pull/21015))**
+- **Move financialACLs to a core extension (Work Towards
+  [20768](https://github.com/civicrm/civicrm-core/pull/20768))**
 
-- **[NFC] Fix APIv4 Utf8mb4 test to ensure no mixed collation errors ([21013](https://github.com/civicrm/civicrm-core/pull/21013))**
+  Switches the Membership Browse page from DAO retrieval to using APIv4.
 
-- **enable paging if contact has more then 50 grants. ([21008](https://github.com/civicrm/civicrm-core/pull/21008))**
+- **Move reCAPTCHA to core extension (Work Towards
+  [dev/core#2571](https://lab.civicrm.org/dev/core/-/issues/2571):
+  [20315](https://github.com/civicrm/civicrm-core/pull/20315))**
 
-- **5.40 ([21011](https://github.com/civicrm/civicrm-core/pull/21011))**
+  Adds helper functions for reCAPTCHA extension.
 
-- **Use template variable to add or remove swap button. ([21003](https://github.com/civicrm/civicrm-core/pull/21003))**
+- **Move legacy custom search framework to a core extension
+  ([dev/core#2721](https://lab.civicrm.org/dev/core/-/issues/2721):
+  [20952](https://github.com/civicrm/civicrm-core/pull/20952),
+  [20955](https://github.com/civicrm/civicrm-core/pull/20955) and
+  [20954](https://github.com/civicrm/civicrm-core/pull/20954))**
 
-- **[Ref] [Test] Move custom search tests to extension ([20990](https://github.com/civicrm/civicrm-core/pull/20990))**
+  Moves custom search framework to a core extension.
 
-- **Afform - Use correct contact type when loading field options ([20996](https://github.com/civicrm/civicrm-core/pull/20996))**
+### WordPress Integration
 
-- **[NFC] Do a proper tear down of fts in QueryFormatterTest ([21004](https://github.com/civicrm/civicrm-core/pull/21004))**
+- **Add shortcode support for profile map view
+  ([dev/wordpress#106](https://lab.civicrm.org/dev/wordpress/-/issues/106):
+  [252](https://github.com/civicrm/civicrm-wordpress/pull/252) and
+  [20877](https://github.com/civicrm/civicrm-core/pull/20877))**
 
-- **Smarty warnings on Manage Case ([21002](https://github.com/civicrm/civicrm-core/pull/21002))**
+  Adds support for map view for profiles using shortcodes.
 
-- **Rename legacy token for contribution id to match sched reminder tokens ([20998](https://github.com/civicrm/civicrm-core/pull/20998))**
+- **Add setup pcp page shortcode
+  ([253](https://github.com/civicrm/civicrm-wordpress/pull/253))**
 
-- **Fix upgrade message when nothing was changed ([20994](https://github.com/civicrm/civicrm-core/pull/20994))**
+  Makes it possible to insert a PCP page using a shortcode.
 
-- **Do not generate a notice when a vcard is downloaded with a non-primary email or non-primary phone number ([20993](https://github.com/civicrm/civicrm-core/pull/20993))**
+- **Added setup pcp page wordpress shortcode
+  ([20601](https://github.com/civicrm/civicrm-core/pull/20601))**
 
-- **Case Dashboard: fix labels on my/all radio buttons, and simplify label text ([20958](https://github.com/civicrm/civicrm-core/pull/20958))**
+  Makes it possible to add a setup a PCP page using a shortcode.
 
-- **Fix for failure (fatal error and silent failure) to clean up full text indices ([20921](https://github.com/civicrm/civicrm-core/pull/20921))**
+## <a name="bugs"></a>Bugs resolved
 
-- **Add upgrade routine to remove old action schedule token ([20978](https://github.com/civicrm/civicrm-core/pull/20978))**
+### Core CiviCRM
 
-- **dev/core#2704 SearchKit - Add support for SQL functions ([20947](https://github.com/civicrm/civicrm-core/pull/20947))**
+- **Reconcile tokens misnamed or missing on legacy class
+  ([21039](https://github.com/civicrm/civicrm-core/pull/21039))**
 
-- **Upgrade message is scrunched up next to the previous sentence ([20986](https://github.com/civicrm/civicrm-core/pull/20986))**
+- **Reconcile contribution amount tokens
+  ([21036](https://github.com/civicrm/civicrm-core/pull/21036) and
+  [21038](https://github.com/civicrm/civicrm-core/pull/21038))**
 
-- **Move/rename case export files for consistency ([20988](https://github.com/civicrm/civicrm-core/pull/20988))**
+  Reconcile tokens misnamed or missing on legacy class.
 
-- **Test, enotice fixes, handling for permissions key for Member_Tasks ([20944](https://github.com/civicrm/civicrm-core/pull/20944))**
+- **Fix advertised token for source
+  ([21037](https://github.com/civicrm/civicrm-core/pull/21037))**
 
-- **Improve cleanup on indexer test ([20909](https://github.com/civicrm/civicrm-core/pull/20909))**
+- **Update contribution_page_id token in sched reminders
+  ([21035](https://github.com/civicrm/civicrm-core/pull/21035))**
 
-- **[REF] minor fix - move last of processing before receipting ([20969](https://github.com/civicrm/civicrm-core/pull/20969))**
+- **Reconcile and upgrade tokens for payment instrument, financial type
+  ([21000](https://github.com/civicrm/civicrm-core/pull/21000))**
 
-- **dev/core#2719 [REF] Remove legacy reference to contribution_invoice_settings ([20971](https://github.com/civicrm/civicrm-core/pull/20971))**
+- **Switch contribution action schedule tokens to use advertised tokens for
+  cancel_date & source
+  ([20999](https://github.com/civicrm/civicrm-core/pull/20999))**
 
-- **Update label on payment instrument ([20977](https://github.com/civicrm/civicrm-core/pull/20977))**
+- **Swap {$displayName} smarty for {contact.display_name} token
+  ([20867](https://github.com/civicrm/civicrm-core/pull/20867) and
+  [20885](https://github.com/civicrm/civicrm-core/pull/20885))**
 
-- **New membership: fix tax amount translation ([20979](https://github.com/civicrm/civicrm-core/pull/20979))**
+  Work to make tokens more consistent.
 
-- **Activity tasks - don't add invalid tasks ([20951](https://github.com/civicrm/civicrm-core/pull/20951))**
+- **Rename legacy token for contribution id to match sched reminder tokens
+  ([20998](https://github.com/civicrm/civicrm-core/pull/20998))**
 
-- **dev/core#2715 [REF] Start the process of moving financial processing to own class ([20872](https://github.com/civicrm/civicrm-core/pull/20872))**
+- **Give administer CiviCRM data access to administer custom groups
+  ([20578](https://github.com/civicrm/civicrm-core/pull/20578))**
 
-- **Fix databaseSupportsUTF8MB4 ([20905](https://github.com/civicrm/civicrm-core/pull/20905))**
+- **CustomGroup - change admin permission to 'administer CiviCRM data'
+  ([20833](https://github.com/civicrm/civicrm-core/pull/20833))**
 
-- **PHP E_NOTICE during upgrade ([20980](https://github.com/civicrm/civicrm-core/pull/20980))**
+  Fine-tunes the permissions needed to access all custom data.
 
-- **Make final mailing from A/B test same template type and options as A/B so it can be copied ([20096](https://github.com/civicrm/civicrm-core/pull/20096))**
+- **Selection in quick search result list is not visible
+  ([dev/user-interface#37](https://lab.civicrm.org/dev/user-interface/-/issues/37):
+  [21102](https://github.com/civicrm/civicrm-core/pull/21102))**
 
-- **dev/core#2721 Move custom search framework to a core extension ([20952](https://github.com/civicrm/civicrm-core/pull/20952))**
+- **Redis 6.06 errors - Deprecated function - civicrm 5.38.0
+  ([dev/core#2648](https://lab.civicrm.org/dev/core/-/issues/2648):
+  [20587](https://github.com/civicrm/civicrm-core/pull/20587))**
 
-- **dev/core#2726 - Set ssl option when using DSN with SSL ([20974](https://github.com/civicrm/civicrm-core/pull/20974))**
+- **CiviReport grouping broken wrt filters
+  ([dev/core#2684](https://lab.civicrm.org/dev/core/-/issues/2684):
+  [20820](https://github.com/civicrm/civicrm-core/pull/20820))**
 
-- **dev/core#2650 Add support for names & labels for token pseudoconstants ([20961](https://github.com/civicrm/civicrm-core/pull/20961))**
+  Fixes filters report templates to permit more than one table in a grouping.
 
-- **Unit test for invalidateChecksum hook ([20973](https://github.com/civicrm/civicrm-core/pull/20973))**
+- **On logging detail report show the words not the numbers
+  ([dev/core#2691](https://lab.civicrm.org/dev/core/-/issues/2691):
+  [20844](https://github.com/civicrm/civicrm-core/pull/20844))**
 
-- **Add hook for validating checksum ([20858](https://github.com/civicrm/civicrm-core/pull/20858))**
+- **Logging skips custom fields if you specify a non-standard table name
+  ([dev/core#2709](https://lab.civicrm.org/dev/core/-/issues/2709):
+  [20918](https://github.com/civicrm/civicrm-core/pull/20918))**
 
-- **dev/core#2719 [REF] Remove some legacy references to contribution_invoice_settings ([20862](https://github.com/civicrm/civicrm-core/pull/20862))**
+- **Cannot disable contact type/sub-type
+  ([dev/core#2710](https://lab.civicrm.org/dev/core/-/issues/2710):
+  [20919](https://github.com/civicrm/civicrm-core/pull/20919))**
 
-- **NFC - Reformat JSON file whitespace in Afform mock ext ([20967](https://github.com/civicrm/civicrm-core/pull/20967))**
+- **Connection fail in runSqlQuery function when using DSN with SSL
+  ([dev/core#2726](https://lab.civicrm.org/dev/core/-/issues/2726):
+  [20974](https://github.com/civicrm/civicrm-core/pull/20974))**
 
-- **SearchKit - fix deprecated join ([20968](https://github.com/civicrm/civicrm-core/pull/20968))**
+- **Contact Dashboard: relationships: wrong links appear if "Pledges" not
+  displayed ([dev/core#2740](https://lab.civicrm.org/dev/core/-/issues/2740):
+  [21051](https://github.com/civicrm/civicrm-core/pull/21051))**
 
-- **Cast to float when setting overrideTotalAmount - regression in master ([20962](https://github.com/civicrm/civicrm-core/pull/20962))**
+- **Creating a regular group from advanced search displays commas for the type
+  when looking at the groups listing page
+  ([dev/core#2742](https://lab.civicrm.org/dev/core/-/issues/2742):
+  [21053](https://github.com/civicrm/civicrm-core/pull/21053))**
 
-- **Invoice template: Add function to update message tokens during upgrade ([20885](https://github.com/civicrm/civicrm-core/pull/20885))**
+- **Performance regression in API3 related to campaign_id parameter
+  ([dev/core#2743](https://lab.civicrm.org/dev/core/-/issues/2743):
+  [21099](https://github.com/civicrm/civicrm-core/pull/21099))**
 
-- **Improve accessibility for price fields of the type select by adding the price field label to the placeholder. ([20927](https://github.com/civicrm/civicrm-core/pull/20927))**
+- **APIv4 - Fix dumb typo breaking color lookup
+  ([20817](https://github.com/civicrm/civicrm-core/pull/20817))**
 
-- ** Distinguish custom field VIEW from EDIT permissions  ([20837](https://github.com/civicrm/civicrm-core/pull/20837))**
+- **Add test & fix for failing OR clause in apv4
+  ([20906](https://github.com/civicrm/civicrm-core/pull/20906))**
 
-- **Fix Payment.create to update financial_item.status_id ([20941](https://github.com/civicrm/civicrm-core/pull/20941))**
+- **APIv4 - Fix calculated fields in bridge entities
+  ([20908](https://github.com/civicrm/civicrm-core/pull/20908))**
 
-- **dev/core#2710 Cannot disable contact type/sub-type ([20919](https://github.com/civicrm/civicrm-core/pull/20919))**
+- **APIv4 - Fix pseudoconstant matching reliability across joins
+  ([20799](https://github.com/civicrm/civicrm-core/pull/20799))**
 
-- **[REF] [Super trivial] -tighten up some casting ([20964](https://github.com/civicrm/civicrm-core/pull/20964))**
+- **APIv4 - Fix and add tests for comparison SQL functions
+  ([20893](https://github.com/civicrm/civicrm-core/pull/20893))**
 
-- **Fix unit translation for recurring contributions ([20308](https://github.com/civicrm/civicrm-core/pull/20308))**
+- **Fix v4 api to do custom field delete in tearDown
+  ([20863](https://github.com/civicrm/civicrm-core/pull/20863))**
 
-- **fix missing 'on behalf of' and honoree labels in multilingual ([20482](https://github.com/civicrm/civicrm-core/pull/20482))**
+- **APIv4 - Fix output of membershipType auto_renew field
+  ([20840](https://github.com/civicrm/civicrm-core/pull/20840))**
 
-- **Smarty notices for New Activity / New Case for tags for attachments ([20957](https://github.com/civicrm/civicrm-core/pull/20957))**
+- **Afform - Use correct contact type when loading field options
+  ([20996](https://github.com/civicrm/civicrm-core/pull/20996))**
 
-- **dev/core#2721 [Ref] simplify passed parameters ([20955](https://github.com/civicrm/civicrm-core/pull/20955))**
+- **SearchKit - Fix permission to access task list
+  ([21045](https://github.com/civicrm/civicrm-core/pull/21045))**
 
-- **Fix test to use valid financials ([20956](https://github.com/civicrm/civicrm-core/pull/20956))**
+  Fixes a regression preventing access to the tasks menu in search displays for
+  non-admin users.
 
-- **dev/core#2721 [REF] Further divide savedSearchParam loading into the sql functions ([20954](https://github.com/civicrm/civicrm-core/pull/20954))**
+- **SearchKit - Auto-apply filters passed in from Afform markup
+  ([20758](https://github.com/civicrm/civicrm-core/pull/20758))**
 
-- **5.40 ([20960](https://github.com/civicrm/civicrm-core/pull/20960))**
+  Ensures that any scalar value passed as a filter via Afform markup will be
+  auto-applied.
 
-- ** dev/financial#6: Button for create/view template contribution on contact summary ([20685](https://github.com/civicrm/civicrm-core/pull/20685))**
+- **SearchKit - fix deprecated join
+  ([20968](https://github.com/civicrm/civicrm-core/pull/20968))**
 
-- **dev/core#2709 Enable logging for custom data tables with non-standard names ([20918](https://github.com/civicrm/civicrm-core/pull/20918))**
+- **SearchKit - Fix pager count return value
+  ([20878](https://github.com/civicrm/civicrm-core/pull/20878))**
 
-- **Swap {$displayName} smarty for {contact.display_name} token ([20867](https://github.com/civicrm/civicrm-core/pull/20867))**
+- **Make report subtotals work for custom fields
+  ([20752](https://github.com/civicrm/civicrm-core/pull/20752))**
 
-- **[Test] Add cover for setting num_terms to 2 ([20939](https://github.com/civicrm/civicrm-core/pull/20939))**
+- **Fix bulk adding custom fields with logging on
+  ([21019](https://github.com/civicrm/civicrm-core/pull/21019))**
 
-- **Smarty notices on logging detail report ([20948](https://github.com/civicrm/civicrm-core/pull/20948))**
+- **Reduce deadlock while inserting custom data for Address
+  ([20924](https://github.com/civicrm/civicrm-core/pull/20924))**
 
-- **CRM_Utils_Type::validatePhpType - Helper to validate PHP type expressions ([20923](https://github.com/civicrm/civicrm-core/pull/20923))**
+- **Do not generate a notice when a vcard is downloaded with a non-primary email
+  or non-primary phone number
+  ([20993](https://github.com/civicrm/civicrm-core/pull/20993))**
 
-- **Smarty warning about pager location on all CiviReports ([20949](https://github.com/civicrm/civicrm-core/pull/20949))**
+- **Fix for failure (fatal error and silent failure) to clean up full text
+  indices ([20921](https://github.com/civicrm/civicrm-core/pull/20921))**
 
-- **Fix error message when unable to delete ManagedEntity ([20946](https://github.com/civicrm/civicrm-core/pull/20946))**
+- **Fix upgrade message when nothing was changed
+  ([20994](https://github.com/civicrm/civicrm-core/pull/20994))**
 
-- **Add ts() function within CRM_Core_Error::statusBounce() method ([20857](https://github.com/civicrm/civicrm-core/pull/20857))**
+- **Upgrade message is scrunched up next to the previous sentence
+  ([20986](https://github.com/civicrm/civicrm-core/pull/20986))**
 
-- **[NFC] Remove exceptions from comments ([20943](https://github.com/civicrm/civicrm-core/pull/20943))**
+- **Add upgrade routine to remove old action schedule token
+  ([20978](https://github.com/civicrm/civicrm-core/pull/20978))**
 
-- **add support for profile map view ([20877](https://github.com/civicrm/civicrm-core/pull/20877))**
+- **Improve cleanup on indexer test
+  ([20909](https://github.com/civicrm/civicrm-core/pull/20909) and
+  [20920](https://github.com/civicrm/civicrm-core/pull/20920))**
 
-- **Extract getCurrentMembership ([20882](https://github.com/civicrm/civicrm-core/pull/20882))**
+  Fix indexes to play nicely with MariaDB.
 
-- **5.40 ([20937](https://github.com/civicrm/civicrm-core/pull/20937))**
+- **Activity tasks - don't add invalid tasks
+  ([20951](https://github.com/civicrm/civicrm-core/pull/20951))**
 
-- **Reduce deadlock while inserting custom data for Address ([20924](https://github.com/civicrm/civicrm-core/pull/20924))**
+- **Fix databaseSupportsUTF8MB4
+  ([20905](https://github.com/civicrm/civicrm-core/pull/20905))**
 
-- **Add v4 managed api entity ([20932](https://github.com/civicrm/civicrm-core/pull/20932))**
+- **Add ts() function within CRM_Core_Error::statusBounce() method
+  ([20857](https://github.com/civicrm/civicrm-core/pull/20857))**
 
-- **[NFC] Typo in parameter for lybunt test ([20934](https://github.com/civicrm/civicrm-core/pull/20934))**
+- **Greenwich - fix select2 font size
+  ([20911](https://github.com/civicrm/civicrm-core/pull/20911))**
 
-- **Fix 'includes tax' translation for PriceSet Checkbox fields ([20926](https://github.com/civicrm/civicrm-core/pull/20926))**
+- **Fix onCrmUiSelect to use current scope and apply to the digest cycle
+  ([20879](https://github.com/civicrm/civicrm-core/pull/20879))**
 
-- **Add filter by custom fields in Accounting Batch. https://lab.civicrm.… ([20556](https://github.com/civicrm/civicrm-core/pull/20556))**
+- **Also check timestamp types for update() when trying to update a timestamp
+  field with a blank value
+  ([326](https://github.com/civicrm/civicrm-packages/pull/326))**
 
-- **[REF] SearchKit - Refactor pick-lists to use onCrmUiSelect directive ([20910](https://github.com/civicrm/civicrm-core/pull/20910))**
+- **Fix error message when unable to delete ManagedEntity
+  ([20946](https://github.com/civicrm/civicrm-core/pull/20946))**
 
-- **Enable range search for money fields in search kit + afform ([20930](https://github.com/civicrm/civicrm-core/pull/20930))**
+- **Capitalization Fix
+  ([20913](https://github.com/civicrm/civicrm-core/pull/20913))**
 
-- **5.40 ([20931](https://github.com/civicrm/civicrm-core/pull/20931))**
+- **Smarty notices for New Activity / New Case for tags for attachments
+  ([20957](https://github.com/civicrm/civicrm-core/pull/20957))**
 
-- **Display configured currency on PCPPage instead of default ([20904](https://github.com/civicrm/civicrm-core/pull/20904))**
+- **PHP E_NOTICE during upgrade
+  ([20980](https://github.com/civicrm/civicrm-core/pull/20980))**
 
-- **Add check to see if these indices are actually removed + call the function which should ([20920](https://github.com/civicrm/civicrm-core/pull/20920))**
+- **Fix PHP notice in recaptcha lib
+  ([20899](https://github.com/civicrm/civicrm-core/pull/20899))**
 
-- **[REF] Extract the function to load from the acl table ([20868](https://github.com/civicrm/civicrm-core/pull/20868))**
+- **some typo fixes
+  ([20897](https://github.com/civicrm/civicrm-core/pull/20897))**
 
-- **Remove obsolete code ([20854](https://github.com/civicrm/civicrm-core/pull/20854))**
+- **PHP notice fixes on options page
+  ([20816](https://github.com/civicrm/civicrm-core/pull/20816))**
 
-- **Greenwich - fix select2 font size ([20911](https://github.com/civicrm/civicrm-core/pull/20911))**
+- **Fix a typo in social networking buttons
+  ([20839](https://github.com/civicrm/civicrm-core/pull/20839))**
 
-- **Capitalization Fix ([20913](https://github.com/civicrm/civicrm-core/pull/20913))**
+- **Enotice fix on extensions page
+  ([20801](https://github.com/civicrm/civicrm-core/pull/20801))**
 
-- **APIv4 - Fix calculated fields in bridge entities ([20908](https://github.com/civicrm/civicrm-core/pull/20908))**
+- **Smarty notices on logging detail report
+  ([20948](https://github.com/civicrm/civicrm-core/pull/20948))**
 
-- **SearchKit - Add links to view/edit/delete relationships ([20886](https://github.com/civicrm/civicrm-core/pull/20886))**
+- **Smarty warning about pager location on all CiviReports
+  ([20949](https://github.com/civicrm/civicrm-core/pull/20949))**
 
-- **CRM_Utils_Array::pathMove - Add helper to move an item within array tree ([20866](https://github.com/civicrm/civicrm-core/pull/20866))**
+- **Smarty notices - Missing type on logging civireport
+  ([20843](https://github.com/civicrm/civicrm-core/pull/20843))**
 
-- **Add test & fix for failing OR clause in apv4 ([20906](https://github.com/civicrm/civicrm-core/pull/20906))**
+- **Fix undefined tpl vars
+  ([20828](https://github.com/civicrm/civicrm-core/pull/20828))**
 
-- **[REF] Refactor SearchKit displays to inherit traits from a common base ([20900](https://github.com/civicrm/civicrm-core/pull/20900))**
+- **Fix undefined tpl variables
+  ([20813](https://github.com/civicrm/civicrm-core/pull/20813))**
 
-- **(REF) Extract TokenSmarty::render() from MessageTemplate::renderMessageTemplate() ([20870](https://github.com/civicrm/civicrm-core/pull/20870))**
+- **Tpl notice fixes
+  ([21050](https://github.com/civicrm/civicrm-core/pull/21050))**
 
-- **[NFC/Unit test] - Test for #20892 - New smarty plugin crmUpper ([20895](https://github.com/civicrm/civicrm-core/pull/20895))**
+- **tpl enotice fix
+  ([20827](https://github.com/civicrm/civicrm-core/pull/20827))**
 
-- **[NFC/Unit test] ReportTemplateTest - fix tests that assume setup from a separate test ([20887](https://github.com/civicrm/civicrm-core/pull/20887))**
+- **E-notice fix ([20830](https://github.com/civicrm/civicrm-core/pull/20830))**
 
-- **[REF] Add in smarty modifier to replcae the upper smarty modifier to … ([20892](https://github.com/civicrm/civicrm-core/pull/20892))**
+- **Enotice fix ([21041](https://github.com/civicrm/civicrm-core/pull/21041))**
 
-- **APIv4 - Add test to ensure superfluous option groups are not created ([20902](https://github.com/civicrm/civicrm-core/pull/20902))**
+- **Enotice fix ([21040](https://github.com/civicrm/civicrm-core/pull/21040))**
 
-- **[NFC/Unit test] dev/core#2699 - Fix intermittent api4 test (part 1) ([20901](https://github.com/civicrm/civicrm-core/pull/20901))**
+### CiviCase
 
-- **Fix PHP notice in recaptcha lib ([20899](https://github.com/civicrm/civicrm-core/pull/20899))**
+- **Smarty warnings on Manage Case
+  ([21002](https://github.com/civicrm/civicrm-core/pull/21002))**
 
-- **some typo fixes ([20897](https://github.com/civicrm/civicrm-core/pull/20897))**
+- **Case Dashboard: fix labels on my/all radio buttons, and simplify label text
+  ([20958](https://github.com/civicrm/civicrm-core/pull/20958))**
 
-- **(REF) APIv4 FieldSpec - Extract various traits (Civi\Schema\Traits\*) ([20875](https://github.com/civicrm/civicrm-core/pull/20875))**
+- **Move/rename case export files for consistency
+  ([20988](https://github.com/civicrm/civicrm-core/pull/20988))**
 
-- **Added setup pcp page wordpress shortcode ([20601](https://github.com/civicrm/civicrm-core/pull/20601))**
+### CiviContribute
 
-- **[REF] Fix functions to be protected ([20869](https://github.com/civicrm/civicrm-core/pull/20869))**
+- **Token syntax plan - pseudoconstants (Work Towards
+  [dev/core#2650](https://lab.civicrm.org/dev/core/-/issues/2650):
+  [20864](https://github.com/civicrm/civicrm-core/pull/20864) and
+  [20961](https://github.com/civicrm/civicrm-core/pull/20961))**
 
-- **SearchKit - Support all fields as tokens ([20880](https://github.com/civicrm/civicrm-core/pull/20880))**
+  Adds variations on the token {contribution.contribution_status_id} which
+  support names and labels, i.e. `{contribution.contribution_status_id}`,
+  `{contribution.contribution_status_id:name}` and
+  `{contribution.contribution_status_id:label}`.
 
-- **APIv4 - Fix and add tests for comparison SQL functions ([20893](https://github.com/civicrm/civicrm-core/pull/20893))**
+- **In Accounting Batch it is not filtered by custom fields
+  ([dev/core#2642](https://lab.civicrm.org/dev/core/-/issues/2642):
+  [20556](https://github.com/civicrm/civicrm-core/pull/20556))**
 
-- **APIv4 - Better handling of output value using GROUP_CONCAT ([20896](https://github.com/civicrm/civicrm-core/pull/20896))**
+  Ensures that users can filter Accounting Batch transactions by custom fields.
 
-- **5.40 ([20894](https://github.com/civicrm/civicrm-core/pull/20894))**
+- **Remove all calls to BAO_Contribution::completeOrder other than from
+  Payment.create (Work Towards
+  [dev/core#2693](https://lab.civicrm.org/dev/core/-/issues/2693):
+  [20852](https://github.com/civicrm/civicrm-core/pull/20852))**
 
-- **[NFC/Unit test] - Failing test demonstrating blank timestamp updates ([20891](https://github.com/civicrm/civicrm-core/pull/20891))**
+- **delocalize total amount before passing to setOverrideTotal
+  ([21107](https://github.com/civicrm/civicrm-core/pull/21107))**
 
-- **(REF) Civi/Schema - Extract MagicGetterSetterTrait. Add test coverage. ([20865](https://github.com/civicrm/civicrm-core/pull/20865))**
+- **Deprecate guess work in line item handling
+  ([20775](https://github.com/civicrm/civicrm-core/pull/20775))**
 
-- **Use type hinting for id ([20850](https://github.com/civicrm/civicrm-core/pull/20850))**
+- **Fixes getTemplateContribution to use a more reliable way to load line items
+  ([20784](https://github.com/civicrm/civicrm-core/pull/20784))**
 
-- **Remove deprecated code ([20848](https://github.com/civicrm/civicrm-core/pull/20848))**
+- **Fix Payment.create to update financial_item.status_id
+  ([20941](https://github.com/civicrm/civicrm-core/pull/20941))**
 
-- **Remove never-true-if ([20853](https://github.com/civicrm/civicrm-core/pull/20853))**
+- **Fix unit translation for recurring contributions
+  ([20308](https://github.com/civicrm/civicrm-core/pull/20308))**
 
-- **Remove non-variable variables ([20881](https://github.com/civicrm/civicrm-core/pull/20881))**
+- **fix missing 'on behalf of' and honoree labels in multilingual
+  ([20482](https://github.com/civicrm/civicrm-core/pull/20482))**
 
-- **Fix onCrmUiSelect to use current scope and apply to the digest cycle ([20879](https://github.com/civicrm/civicrm-core/pull/20879))**
+- **Fix 'includes tax' translation for PriceSet Checkbox fields
+  ([20926](https://github.com/civicrm/civicrm-core/pull/20926))**
 
-- **SearchKit - Fix pager count return value ([20878](https://github.com/civicrm/civicrm-core/pull/20878))**
+- **Display configured currency on PCPPage instead of default
+  ([20904](https://github.com/civicrm/civicrm-core/pull/20904))**
 
-- **[Ref] Remove never-passed parameter ([20871](https://github.com/civicrm/civicrm-core/pull/20871))**
+- **Line items not visible on recurring contribution
+  ([dev/core#2624](https://lab.civicrm.org/dev/core/-/issues/2624):
+  [20399](https://github.com/civicrm/civicrm-core/pull/20399))**
 
-- **[REF] Remove some non-variable variables ([20874](https://github.com/civicrm/civicrm-core/pull/20874))**
+  Ensures Line items are visible on recurring contributions.
 
-- **dev/core#2650 Add support for contribution_status_id to the token processor ([20864](https://github.com/civicrm/civicrm-core/pull/20864))**
+### CiviEvent
 
-- **Enotice fix on extensions page ([20801](https://github.com/civicrm/civicrm-core/pull/20801))**
+- **fix crmValidate() not loading on event registration pages
+  ([21124](https://github.com/civicrm/civicrm-core/pull/21124))**
 
-- **Remove deprecated lines of code ([20873](https://github.com/civicrm/civicrm-core/pull/20873))**
+- **Fix transfer registration to transfer participant_payment row
+  ([20670](https://github.com/civicrm/civicrm-core/pull/20670))**
 
-- **Api test cleanup fixes ([20876](https://github.com/civicrm/civicrm-core/pull/20876))**
+### CiviGrant
 
-- **[REF] Simplify isRenew handling on batch for membership ([20791](https://github.com/civicrm/civicrm-core/pull/20791))**
+- **enable paging if contact has more then 50 grants.
+  ([21008](https://github.com/civicrm/civicrm-core/pull/21008))**
 
-- **dev/core#2684 Fix filters tpl in civi reports to permit more than one  table in a grouping ([20820](https://github.com/civicrm/civicrm-core/pull/20820))**
+### CiviMail
 
-- **[REF] Further order api cleanup ([20829](https://github.com/civicrm/civicrm-core/pull/20829))**
+- **Fix mailing task when there are no tasks
+  ([20989](https://github.com/civicrm/civicrm-core/pull/20989))**
 
-- **Fix v4 api to do custom field delete in tearDown ([20863](https://github.com/civicrm/civicrm-core/pull/20863))**
+- **Make final mailing from A/B test same template type and options as A/B so it
+  can be copied ([20096](https://github.com/civicrm/civicrm-core/pull/20096))**
 
-- **Give administer CiviCRM data access to administer custom groups ([20578](https://github.com/civicrm/civicrm-core/pull/20578))**
+- **Forward Mailing: remove duplicate buttons, cancel button
+  ([20782](https://github.com/civicrm/civicrm-core/pull/20782))**
 
-- **5.40 to master ([20860](https://github.com/civicrm/civicrm-core/pull/20860))**
+### CiviMember
 
-- **APIv4 - Fix output of membershipType auto_renew field ([20840](https://github.com/civicrm/civicrm-core/pull/20840))**
+- **Test, enotice fixes, handling for permissions key for Member_Tasks
+  ([20944](https://github.com/civicrm/civicrm-core/pull/20944))**
 
-- **[REF] [towards dev/core#2693] Use getter rather than passing variable ([20852](https://github.com/civicrm/civicrm-core/pull/20852))**
+- **[regression] Free membership pages fail with "No Payment Processor Selected"
+  ([dev/core#2749](https://lab.civicrm.org/dev/core/-/issues/2749):
+  [21100](https://github.com/civicrm/civicrm-core/pull/21100))**
 
-- **5.40 ([20849](https://github.com/civicrm/civicrm-core/pull/20849))**
+- **New membership: fix tax amount translation
+  ([20979](https://github.com/civicrm/civicrm-core/pull/20979))**
 
-- **Minor simplification - use casting ([20847](https://github.com/civicrm/civicrm-core/pull/20847))**
+### Drupal Integration
 
-- **[REF] Minor auth.net ipn simplification ([20718](https://github.com/civicrm/civicrm-core/pull/20718))**
+- **Drupal8 CiviCRM conflicts with Masquerade module
+  ([dev/drupal#54](https://lab.civicrm.org/dev/drupal/-/issues/54):
+  [31](https://github.com/civicrm/civicrm-drupal-8/pull/31))**
 
-- **dev/core#2691 - On logging detail civireport show words instead of numbers ([20844](https://github.com/civicrm/civicrm-core/pull/20844))**
+### WordPress Integration
 
-- **Smarty notices - Missing type on logging civireport ([20843](https://github.com/civicrm/civicrm-core/pull/20843))**
+- **WordPress basepage_render shouldn't remove the 'the_content' filter AND
+  CiviCRM Shortcode issue with YoastSEO
+  ([dev/wordpress#107](https://lab.civicrm.org/dev/wordpress/-/issues/107) and
+  [dev/wordpress#112](https://lab.civicrm.org/dev/wordpress/-/issues/112):
+  [255](https://github.com/civicrm/civicrm-wordpress/pull/255))**
 
-- **dev/core#2115 Switch membership type browse page to use v4api for get, thus using acls properly ([20768](https://github.com/civicrm/civicrm-core/pull/20768))**
+  Reverts the removal of the content filter which caused errors for sites using
+  Avada themes and or the yoast plugin.
 
-- **Add to contributors file ([20842](https://github.com/civicrm/civicrm-core/pull/20842))**
+## <a name="misc"></a>Miscellany
 
-- **Mark afform extensions as beta ([20821](https://github.com/civicrm/civicrm-core/pull/20821))**
+- **crmMonaco - Multiple updates. Toward message-template editing.
+  ([20786](https://github.com/civicrm/civicrm-core/pull/20786))**
 
-- **Fix a typo in social networking buttons ([20839](https://github.com/civicrm/civicrm-core/pull/20839))**
+- **Enable check on created participant payment rows
+  ([20650](https://github.com/civicrm/civicrm-core/pull/20650))**
 
-- **CustomGroup - change admin permission to 'administer CiviCRM data' ([20833](https://github.com/civicrm/civicrm-core/pull/20833))**
+- **Minor simplification - use casting
+  ([20847](https://github.com/civicrm/civicrm-core/pull/20847))**
 
-- **[REF] Remove unused variables ([20834](https://github.com/civicrm/civicrm-core/pull/20834))**
+- **Mark afform extensions as beta
+  ([20821](https://github.com/civicrm/civicrm-core/pull/20821))**
 
-- **Remove a couple of instances of 'contribution_mode' from tests ([20831](https://github.com/civicrm/civicrm-core/pull/20831))**
+- **Add deprecation warning for modifiedDates
+  ([20805](https://github.com/civicrm/civicrm-core/pull/20805))**
 
-- **Deprecate guess work in line item handling ([20775](https://github.com/civicrm/civicrm-core/pull/20775))**
+- **Use type hinting for id
+  ([20850](https://github.com/civicrm/civicrm-core/pull/20850))**
 
-- **Fixes getTemplateContribution to use a more reliable way to load line items ([20784](https://github.com/civicrm/civicrm-core/pull/20784))**
+- **CRM_Utils_Array::pathMove - Add helper to move an item within array tree
+  ([20866](https://github.com/civicrm/civicrm-core/pull/20866))**
 
-- **5.40 ([20838](https://github.com/civicrm/civicrm-core/pull/20838))**
+- **Extract getCurrentMembership
+  ([20882](https://github.com/civicrm/civicrm-core/pull/20882))**
 
-- **dev/core#2648 update redis class off deprecated functions ([20587](https://github.com/civicrm/civicrm-core/pull/20587))**
+- **[REF] Remove references to contribution_invoice_settings (Work Towards
+  [dev/core#2719](https://lab.civicrm.org/dev/core/-/issues/2719):
+  [20971](https://github.com/civicrm/civicrm-core/pull/20971) and
+  [20862](https://github.com/civicrm/civicrm-core/pull/20862))**
 
-- **E-notice fix ([20830](https://github.com/civicrm/civicrm-core/pull/20830))**
+- **[REF] Financial record processing - extract to new class to faciliate
+  cleanup (Work Towards
+  [dev/core#2715](https://lab.civicrm.org/dev/core/-/issues/2715):
+  [20872](https://github.com/civicrm/civicrm-core/pull/20872))**
 
-- **Enable check on created participant payment rows ([20650](https://github.com/civicrm/civicrm-core/pull/20650))**
+- **Failing api4 test
+  api.v4.Action.CreateWithOptionGroupTest.testWithCustomDataForMultipleContacts
+  ([dev/core#2699](https://lab.civicrm.org/dev/core/-/issues/2699):
+  [20901](https://github.com/civicrm/civicrm-core/pull/20901))**
 
-- **APIv4 - Fix pseudoconstant matching reliability across joins ([20799](https://github.com/civicrm/civicrm-core/pull/20799))**
+- **Remove deprecated lines of code
+  ([20873](https://github.com/civicrm/civicrm-core/pull/20873))**
 
-- **Fix undefined tpl vars ([20828](https://github.com/civicrm/civicrm-core/pull/20828))**
+- **Remove a couple of instances of 'contribution_mode' from tests
+  ([20831](https://github.com/civicrm/civicrm-core/pull/20831))**
 
-- **Fix transfer registration to transfer participant_payment row ([20670](https://github.com/civicrm/civicrm-core/pull/20670))**
+- **Remove deprecated code
+  ([20848](https://github.com/civicrm/civicrm-core/pull/20848))**
 
-- **Merge 5.40 to master ([20826](https://github.com/civicrm/civicrm-core/pull/20826))**
+- **Remove never-true-if
+  ([20853](https://github.com/civicrm/civicrm-core/pull/20853))**
 
-- **tpl enotice fix ([20827](https://github.com/civicrm/civicrm-core/pull/20827))**
+- **Remove non-variable variables
+  ([20881](https://github.com/civicrm/civicrm-core/pull/20881))**
 
-- **(REF) dev/core#2571 - Add helper functions for reCAPTCHA extension ([20315](https://github.com/civicrm/civicrm-core/pull/20315))**
+- **Remove obsolete code
+  ([20854](https://github.com/civicrm/civicrm-core/pull/20854))**
 
-- **APIv4 - Fix dumb typo breaking color lookup ([20817](https://github.com/civicrm/civicrm-core/pull/20817))**
+- **[REF] [Super trivial] -tighten up some casting
+  ([20964](https://github.com/civicrm/civicrm-core/pull/20964))**
 
-- **PHP notice fixes on options page ([20816](https://github.com/civicrm/civicrm-core/pull/20816))**
+- **[REF] SearchKit - Refactor pick-lists to use onCrmUiSelect directive
+  ([20910](https://github.com/civicrm/civicrm-core/pull/20910))**
 
-- **dev/core#2624  display line items from the template contribution at the view recurring contribution screen. ([20399](https://github.com/civicrm/civicrm-core/pull/20399))**
+- **[REF] Extract the function to load from the acl table
+  ([20868](https://github.com/civicrm/civicrm-core/pull/20868))**
 
-- **[REF] Add in APIv4 Product Entity and Fix APIv4 Syntax Conformance te… ([20819](https://github.com/civicrm/civicrm-core/pull/20819))**
+- **[REF] Refactor SearchKit displays to inherit traits from a common base
+  ([20900](https://github.com/civicrm/civicrm-core/pull/20900))**
 
-- **5.40 to master ([20815](https://github.com/civicrm/civicrm-core/pull/20815))**
+- **(REF) Extract TokenSmarty::render() from
+  MessageTemplate::renderMessageTemplate()
+  ([20870](https://github.com/civicrm/civicrm-core/pull/20870))**
 
-- **Fix undefined tpl variables ([20813](https://github.com/civicrm/civicrm-core/pull/20813))**
+- **[REF] Add in smarty modifier to replcae the upper smarty modifier to better
+  handle umlouts / accents
+  ([20892](https://github.com/civicrm/civicrm-core/pull/20892))**
 
-- **Add ContributionProduct and EntityBatch APIv4 Entity ([20505](https://github.com/civicrm/civicrm-core/pull/20505))**
+- **(REF) APIv4 FieldSpec - Extract various traits (Civi\Schema\Traits\*)
+  ([20875](https://github.com/civicrm/civicrm-core/pull/20875))**
 
-- **Forward Mailing: remove duplicate buttons, cancel button ([20782](https://github.com/civicrm/civicrm-core/pull/20782))**
+- **[REF] Fix functions to be protected
+  ([20869](https://github.com/civicrm/civicrm-core/pull/20869))**
 
-- **Update contributor-key.yml ([20812](https://github.com/civicrm/civicrm-core/pull/20812))**
+- **(REF) Civi/Schema - Extract MagicGetterSetterTrait. Add test coverage.
+  ([20865](https://github.com/civicrm/civicrm-core/pull/20865))**
 
-- **Add deprecation warning for modifiedDates ([20805](https://github.com/civicrm/civicrm-core/pull/20805))**
+- **[Ref] Remove never-passed parameter
+  ([20871](https://github.com/civicrm/civicrm-core/pull/20871))**
 
-- **dev/core#2652 - Civi\Report - Add is null / is not null to OP_MULTISE… ([20794](https://github.com/civicrm/civicrm-core/pull/20794))**
+- **[REF] Remove some non-variable variables
+  ([20874](https://github.com/civicrm/civicrm-core/pull/20874))**
 
-- **SearchKit - Auto-apply filters passed in from Afform markup ([20758](https://github.com/civicrm/civicrm-core/pull/20758))**
+- **[REF] Further order api cleanup
+  ([20829](https://github.com/civicrm/civicrm-core/pull/20829))**
 
-- **crmMonaco - Multiple updates. Toward message-template editing. ([20786](https://github.com/civicrm/civicrm-core/pull/20786))**
+- **[REF] Minor auth.net ipn simplification
+  ([20718](https://github.com/civicrm/civicrm-core/pull/20718))**
 
-- **Fix test to use order api & setup valid financials ([20806](https://github.com/civicrm/civicrm-core/pull/20806))**
+- **[REF] Remove unused variables
+  ([20834](https://github.com/civicrm/civicrm-core/pull/20834))**
 
-- **dev/drupal#54 Remove hook_user_login, fixes the masquerade module ([31](https://github.com/civicrm/civicrm-drupal-8/pull/31))**
+- **[REF] Add in APIv4 Product Entity and Fix APIv4 Syntax Conformance test
+  failures on ContributionProduct and EntityBatch APIs
+  ([20819](https://github.com/civicrm/civicrm-core/pull/20819))**
 
-- **revert #240 Remove Base Page content filter once it has been used ([255](https://github.com/civicrm/civicrm-wordpress/pull/255))**
+- **[REF] Simplify isRenew handling on batch for membership
+  ([20791](https://github.com/civicrm/civicrm-core/pull/20791))**
 
-- **add profile map view shortcode support ([252](https://github.com/civicrm/civicrm-wordpress/pull/252))**
+- **[REF] minor fix - move last of processing before receipting
+  ([20969](https://github.com/civicrm/civicrm-core/pull/20969))**
 
-- **Add setup pcp page shortcode ([253](https://github.com/civicrm/civicrm-wordpress/pull/253))**
+- **[Ref] [Test] Move custom search tests to extension
+  ([20990](https://github.com/civicrm/civicrm-core/pull/20990))**
 
-- **Also check timestamp types for update() when trying to update a timestamp field with a blank value ([326](https://github.com/civicrm/civicrm-packages/pull/326))**
+- **[REF] Fix utf8mb4 test in APIv4 and re-enable the altering of database in
+  the v3 version of the test and fix handling for first name field
+  ([21001](https://github.com/civicrm/civicrm-core/pull/21001))**
 
-## <a name="misc"></a>Miscellany
+- **[REF] Upgrade CKEditor to 4.16.2
+  ([21108](https://github.com/civicrm/civicrm-core/pull/21108))**
+
+- **(NFC) release-notes - Fix typo
+  ([21104](https://github.com/civicrm/civicrm-core/pull/21104))**
+
+- **[NFC] Fix APIv4 Utf8mb4 test to ensure no mixed collation errors
+  ([21013](https://github.com/civicrm/civicrm-core/pull/21013))**
+
+- **NFC - Reformat JSON file whitespace in Afform mock ext
+  ([20967](https://github.com/civicrm/civicrm-core/pull/20967))**
+
+- **[NFC] Remove exceptions from comments
+  ([20943](https://github.com/civicrm/civicrm-core/pull/20943))**
+
+- **[NFC] Typo in parameter for lybunt test
+  ([20934](https://github.com/civicrm/civicrm-core/pull/20934))**
+
+- **[NFC] Do a proper tear down of fts in QueryFormatterTest
+  ([21004](https://github.com/civicrm/civicrm-core/pull/21004))**
+
+- **[NFC/Unit test] - Failing test demonstrating blank timestamp updates
+  ([20891](https://github.com/civicrm/civicrm-core/pull/20891))**
+
+- **[NFC/Unit test] - Test for #20892 - New smarty plugin crmUpper
+  ([20895](https://github.com/civicrm/civicrm-core/pull/20895))**
+
+- **[NFC/Unit test] ReportTemplateTest - fix tests that assume setup from a
+  separate test ([20887](https://github.com/civicrm/civicrm-core/pull/20887))**
+
+- **APIv4 - Add test to ensure superfluous option groups are not created
+  ([20902](https://github.com/civicrm/civicrm-core/pull/20902))**
+
+- **[Test] Add cover for setting num_terms to 2
+  ([20939](https://github.com/civicrm/civicrm-core/pull/20939))**
+
+- **Api test cleanup fixes
+  ([20876](https://github.com/civicrm/civicrm-core/pull/20876))**
+
+- **Fix test to use valid financials
+  ([20956](https://github.com/civicrm/civicrm-core/pull/20956))**
+
+- **Fix test to use order api & setup valid financials
+  ([20806](https://github.com/civicrm/civicrm-core/pull/20806))**
+
+- **Unit test for invalidateChecksum hook
+  ([20973](https://github.com/civicrm/civicrm-core/pull/20973))**
+
+- **contributor-key.yml: updates for Symbiotic
+  ([21044](https://github.com/civicrm/civicrm-core/pull/21044))**
+
+- **Update contributor-key.yml
+  ([21033](https://github.com/civicrm/civicrm-core/pull/21033))**
+
+- **Update contributor-key.yml
+  ([20812](https://github.com/civicrm/civicrm-core/pull/20812))**
+
+- **Add to contributors file
+  ([20842](https://github.com/civicrm/civicrm-core/pull/20842))**
 
 ## <a name="credits"></a>Credits
 
 This release was developed by the following code authors:
 
-AGH Strategies - Alice Frumin, Andie Hunt; Caltha - Tomasz Pietrzkowski; CiviCoop - Jaap Jansma, Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Diego Muñio; erawat; Gokhalemethod - Sadashiv; Greenpeace Central and Eastern Europe - Patrick Figel; invalid-email-address; JMA Consulting - Monish Deb, Seamus Lee; Kartik Kathuria; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; Miguel Almeida; MJW Consulting - Matthew Wire; PERORA SRL - Samuele Masetto; Progressive Technology Project - Jamie McClelland; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton, Elliott Eggleston; Wildsight - Lars Sanders-Green
+AGH Strategies - Alice Frumin, Andie Hunt; Caltha - Tomasz Pietrzkowski;
+CiviCoop - Jaap Jansma, Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten;
+CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave
+D; Diego Muñio; Erawat Chamanont; Gokhalemethod - Sadashiv; Greenpeace Central
+and Eastern Europe - Patrick Figel; JMA Consulting - Monish Deb, Seamus Lee;
+Kartik Kathuria; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone
+Technology Consulting - Jon Goldberg; Miguel Almeida; MJW Consulting - Matthew
+Wire; PERORA SRL - Samuele Masetto; Progressive Technology Project - Jamie
+McClelland; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund
+Jalmi; Wikimedia Foundation - Eileen McNaughton, Elliott Eggleston; Wildsight -
+Lars Sanders-Green
 
 Most authors also reviewed code for this release; in addition, the following
 reviewers contributed their comments:
 
-a-n The Artists Information Company - William Mortada; AGH Strategies - Alice Frumin, Andie Hunt; allinappli; Anatoleallain; Artful Robot - Rich Lott; CEPR - Josh Brown; Christian Wach; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Jamie Novick; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove, Shane Bill; Dave D; Diego Muñio; encircle; erawat; Fuzion - Jitendra Purohit, Luke Stewart; GValFr35; in2part; JMA Consulting - Joe Murray, Monish Deb, Seamus Lee; jptillman; Makoa - Usha F. Matisson; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; PERORA SRL - Samuele Masetto; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green; wyde22
+a-n The Artists Information Company - William Mortada; ALL IN APPLI; Anatole;
+Artful Robot - Rich Lott; CEPR - Josh Brown; Christian Wach; CompuCorp - Jamie
+Novick; Coop SymbioTIC - Shane Bill; enCircle Solutions Ltd - Darren Woods;
+Fuzion - Jitendra Purohit, Luke Stewart; GValFr35; in2part; JMA Consulting - Joe
+Murray; jptillman; Makoa - Usha F. Matisson; OPEN - dewy; Squiffle Consulting -
+Aidan Saunders
 
 ## <a name="feedback"></a>Feedback