Merge pull request #23039 from eileenmcnaughton/inv2
[civicrm-core.git] / release-notes / 5.43.0.md
index 26fb7fa8ed900439c2cae32ac97a65176ea09be6..88f14b0d66730ace54684e77d214bd97d7d1d8d2 100644 (file)
@@ -13,760 +13,1226 @@ Released November 3, 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
 
 ### Core CiviCRM
 
-- **crm- Missing Summary ([21443](https://github.com/civicrm/civicrm-core/pull/21443))**
+- **Use money formatting for currency in templates
+  ([21783](https://github.com/civicrm/civicrm-core/pull/21783))**
 
-- **CRM-19236 Missing Summary ([21597](https://github.com/civicrm/civicrm-core/pull/21597))**
+  Receipt templates now use the more modern Brick/Money library to format
+  currency amounts.  This will provide better formats in most cases, but it will
+  be a change.
 
-## <a name="bugs"></a>Bugs resolved
-
-### Core CiviCRM
-
-- **Afform - fix loading custom fields for search displays ([21792](https://github.com/civicrm/civicrm-core/pull/21792))**
-
-- **Remove case token listing from contact email task ([21787](https://github.com/civicrm/civicrm-core/pull/21787))**
-
-- **Fix another instance of double token rendering ([21788](https://github.com/civicrm/civicrm-core/pull/21788))**
-
-- **Remove call to legacy getTokenDetails ([21786](https://github.com/civicrm/civicrm-core/pull/21786))**
-
-- **Remove extraneous call to legacy token processing in sms task ([21785](https://github.com/civicrm/civicrm-core/pull/21785))**
-
-- **Contact tokens - use metadata & standardised rendering ([21761](https://github.com/civicrm/civicrm-core/pull/21761))**
-
-- **dev/core#2901 Fix send email regression ([21781](https://github.com/civicrm/civicrm-core/pull/21781))**
-
-- **Enotice fix ([21782](https://github.com/civicrm/civicrm-core/pull/21782))**
+- **Add sort functionality to event summary report
+  ([21501](https://github.com/civicrm/civicrm-core/pull/21501))**
 
-- **Fix contact tokens class to load using apiv4 ([21780](https://github.com/civicrm/civicrm-core/pull/21780))**
+  Improves Event Summary Report by making it possible to sort columns.
 
-- **[REF] Extract function for re-use ([21778](https://github.com/civicrm/civicrm-core/pull/21778))**
+- **Add REGEXP/NOT REGEXP operators to API4
+  ([dev/core#2793](https://lab.civicrm.org/dev/core/-/issues/2793):
+  [21288](https://github.com/civicrm/civicrm-core/pull/21288))**
 
-- **(dev/mail#83) message_admin - Cleanup "Preview" dialogs (properly) ([21772](https://github.com/civicrm/civicrm-core/pull/21772))**
+  Makes it so users can use regular expressions operators in APIv4.
 
-- **APIv4 - Minor code cleanup to improve efficiency in CreateApi4RequestSubscriber ([21775](https://github.com/civicrm/civicrm-core/pull/21775))**
+- **APIv4 - Add Contact.age_years extra field to make age calculations easy
+  ([21718](https://github.com/civicrm/civicrm-core/pull/21718))**
 
-- **(dev/mail#83) message_admin - When using "Preview", use the 'locale' from the editing UI ([21773](https://github.com/civicrm/civicrm-core/pull/21773))**
+  Adds a calculated field to APIv4 which makes it simple to return or filter on
+  a contact's age.
 
-- **(dev/mail#83) message_admin - Save automatically when adding/removing drafts ([21774](https://github.com/civicrm/civicrm-core/pull/21774))**
+- **APIv4 - Add support for sql equations
+  ([21551](https://github.com/civicrm/civicrm-core/pull/21551))**
 
-- **Afform Admin add link icon & template cleanup ([21764](https://github.com/civicrm/civicrm-core/pull/21764))**
+  Allows equations e.g. (1 + 1) as sql expressions in APIv4 queries.
 
-- **Remove stray token code ([21763](https://github.com/civicrm/civicrm-core/pull/21763))**
+- **Apiv4 entity parity (Work Towards
+  [dev/core#2486](https://lab.civicrm.org/dev/core/-/issues/2486):
+  [21355](https://github.com/civicrm/civicrm-core/pull/21355) and
+  [21500](https://github.com/civicrm/civicrm-core/pull/21500))**
 
-- **[REF] APIv4 - Use event instead of hardcoded list to resolve entityName to className ([21771](https://github.com/civicrm/civicrm-core/pull/21771))**
+  Adds APIv4 entity support for the PrintLabel and Survey entities.
 
-- **Fix token regression - re-add support for empty tokens ([21756](https://github.com/civicrm/civicrm-core/pull/21756))**
+- **APIv4 - Use event instead of hardcoded list to resolve entityName to
+  className ([21771](https://github.com/civicrm/civicrm-core/pull/21771),
+  [21803](https://github.com/civicrm/civicrm-core/pull/21803),
+  [21819](https://github.com/civicrm/civicrm-core/pull/21819),
+  [21824](https://github.com/civicrm/civicrm-core/pull/21824),
+  [21828](https://github.com/civicrm/civicrm-core/pull/21828),
+  [21839](https://github.com/civicrm/civicrm-core/pull/21839), and
+  [21851](https://github.com/civicrm/civicrm-core/pull/21851))**
 
-- **[NFC/Unit Test] Remove wombats and bananas from sites/default/files/civicrm/custom ([21768](https://github.com/civicrm/civicrm-core/pull/21768))**
+  This allows core and extension-introduced entities to have arbitrary class and
+  entity names instead of requiring the two to agree.
 
-- **dev/core#2836 install flexmailer by default on new installs [token] ([21522](https://github.com/civicrm/civicrm-core/pull/21522))**
+- **activity import: prepend custom group title to custom fields
+  ([21318](https://github.com/civicrm/civicrm-core/pull/21318))**
 
-- **Reference token metadata internally fix custom tokens label bug ([21767](https://github.com/civicrm/civicrm-core/pull/21767))**
+  Makes it possible to distinguish between core and custom fields on the
+  Activity Import screen.
 
-- **[NFC] Add test for new case email url ([21766](https://github.com/civicrm/civicrm-core/pull/21766))**
+- **No way to distinguish the core and custom fields on Find and Merge Duplicate
+  Contacts page
+  ([dev/core#2766](https://lab.civicrm.org/dev/core/-/issues/2766):
+  [21728](https://github.com/civicrm/civicrm-core/pull/21728))**
 
-- **ensure blank note date in UI defaults to current date. ([21717](https://github.com/civicrm/civicrm-core/pull/21717))**
+  Makes it possible to distinguish between core and custom fields on the Find
+  and Merge Duplicate Contacts page.
 
-- **[REF] Move getCustomFieldTokens to the tokens class, annotate more deprecations ([21660](https://github.com/civicrm/civicrm-core/pull/21660))**
+- **Support participant & membership tokens in send-email tasks
+  ([21745](https://github.com/civicrm/civicrm-core/pull/21745) and
+  [dev/core#2895](https://lab.civicrm.org/dev/core/-/issues/2895):
+  [21801](https://github.com/civicrm/civicrm-core/pull/21801))**
 
-- **fixes event#64: Send event confirmation to submitted email address ([21669](https://github.com/civicrm/civicrm-core/pull/21669))**
+  Makes it so users can use participant & membership tokens in send-email tasks.
 
-- **Master only regression - fix empty token date ([21704](https://github.com/civicrm/civicrm-core/pull/21704))**
+- **Add participant tokens to pdf task
+  ([21695](https://github.com/civicrm/civicrm-core/pull/21695))**
 
-- **[NFC] Afform - Add array shape annotations to FormDataModel ([21765](https://github.com/civicrm/civicrm-core/pull/21765))**
+  Makes it so users can use participant tokens in PDF tasks.
 
-- **Afform - Fix chainSelect to work with anonymous users ([21759](https://github.com/civicrm/civicrm-core/pull/21759))**
+- **Meta - token usage 5.43 standardisation effort
+  ([dev/core#2864](https://lab.civicrm.org/dev/core/-/issues/2864):
+  [21428](https://github.com/civicrm/civicrm-core/pull/21428),
+  [21605](https://github.com/civicrm/civicrm-core/pull/21605),
+  [21713](https://github.com/civicrm/civicrm-core/pull/21713),
+  [21584](https://github.com/civicrm/civicrm-core/pull/21584),
+  [21523](https://github.com/civicrm/civicrm-core/pull/21523),
+  [21706](https://github.com/civicrm/civicrm-core/pull/21706),
+  [21806](https://github.com/civicrm/civicrm-core/pull/21806),
+  [21821](https://github.com/civicrm/civicrm-core/pull/21821),
+  [21530](https://github.com/civicrm/civicrm-core/pull/21530),
+  [21537](https://github.com/civicrm/civicrm-core/pull/21537), and
+  [21913](https://github.com/civicrm/civicrm-core/pull/21913))**
 
-- **dev/core#2650 switch contact.individual_prefix tokens to contact.prefix_id:label (former still works) ([21705](https://github.com/civicrm/civicrm-core/pull/21705))**
+  Standardizes Token usage.
 
-- **Support participant & membership tokens in send-email tasks ([21745](https://github.com/civicrm/civicrm-core/pull/21745))**
+- **Add {domain.now}, supporting |crmDate
+  ([21531](https://github.com/civicrm/civicrm-core/pull/21531))**
 
-- **Remove function duplicated in error ([21758](https://github.com/civicrm/civicrm-core/pull/21758))**
+  Adds new token {domain.now} that provides the current date.
 
-- **Remove now-obsolete getPseudoTokens ([21760](https://github.com/civicrm/civicrm-core/pull/21760))**
+- **Afform - Use search display name as field prefix for url-based field
+  defaults ([21645](https://github.com/civicrm/civicrm-core/pull/21645))**
 
-- **fixes core#2874 - Search Builder on State/Province with Primary and IN ([21646](https://github.com/civicrm/civicrm-core/pull/21646))**
+   Makes field prefix optional for Afform url-based defaults, and uses search
+   display name as prefix for search forms.
 
-- **Tokens - Hide more sophisticated tokens. Refactor to use "$this->tokenMetadata". ([21706](https://github.com/civicrm/civicrm-core/pull/21706))**
+- **Afform - Accept default field values from the url
+  ([21606](https://github.com/civicrm/civicrm-core/pull/21606))**
 
-- **5.42 ([21755](https://github.com/civicrm/civicrm-core/pull/21755))**
+  Allows default Afform field values to be set from the url.
 
-- **Merge 5.42 to master ([21753](https://github.com/civicrm/civicrm-core/pull/21753))**
+- **Afform Admin add link icon & template cleanup
+  ([21764](https://github.com/civicrm/civicrm-core/pull/21764))**
 
-- **Flush metadata cache on event edit ([21740](https://github.com/civicrm/civicrm-core/pull/21740))**
+  Minor cleanup to improve template efficiency, style afform page link, and add
+  a page title.
 
-- **Fix regression from enotice fixes ([21743](https://github.com/civicrm/civicrm-core/pull/21743))**
+- **Search kit - default filter - primary
+  ([dev/core#2852](https://lab.civicrm.org/dev/core/-/issues/2852):
+  [21574](https://github.com/civicrm/civicrm-core/pull/21574))**
 
-- **(dev/mail#83) message_admin - Multiple improvements to the "Preview" dialog ([21747](https://github.com/civicrm/civicrm-core/pull/21747))**
+  Adds is_primary as a default SearchKit filter.
 
-- **Fix for dev/core#2885 ([21716](https://github.com/civicrm/civicrm-core/pull/21716))**
+- **SearchKit - Add UI for arithmetic equations
+  ([21600](https://github.com/civicrm/civicrm-core/pull/21600))**
 
-- **System status checks only shows 25 messages ([21748](https://github.com/civicrm/civicrm-core/pull/21748))**
+  Allows adding, subtracting, dividing and multiplying any number of values in
+  SearchKit.
 
-- **dev/core#2866 Ignore preferred mail format - send to both ([21676](https://github.com/civicrm/civicrm-core/pull/21676))**
+- **SearchKit - Support multiple arguments to field transformations aka SQL
+  functions ([21528](https://github.com/civicrm/civicrm-core/pull/21528) and
+  [21535](https://github.com/civicrm/civicrm-core/pull/21535))**
 
-- **Afform - Fix chain-select of contry and address to work on SearchKit forms ([21749](https://github.com/civicrm/civicrm-core/pull/21749))**
+  Enhances the SearchKit UI to allow multiple fields to be acted upon at once in
+  a function.
 
-- **(dev/core#2638) Civi::format() - Add helper for formatting ([21599](https://github.com/civicrm/civicrm-core/pull/21599))**
+- **SearchKit - Add pseudo-fields for row number and current user
+  ([21435](https://github.com/civicrm/civicrm-core/pull/21435))**
 
-- **5.42 to master ([21744](https://github.com/civicrm/civicrm-core/pull/21744))**
+  Makes a couple calculated fields available for use as columns or tokens in
+  SearchKit.
 
-- **Fix possibly unefined $form variables in smarty templates ([21735](https://github.com/civicrm/civicrm-core/pull/21735))**
+- **SearchKit - Support custom fields in bridge join entities
+  ([21424](https://github.com/civicrm/civicrm-core/pull/21424))**
 
-- **#2892 Replace event type token in action schedule changes event.event_type_id to participant.event_type_id:label. But should be event.event_type_id to event.event_type_id:label ([21738](https://github.com/civicrm/civicrm-core/pull/21738))**
+  Makes it possible to use relationship custom data throughout Search Kit.
 
-- **For latest iteration of case email form, don't fail when there's no To contact ([21737](https://github.com/civicrm/civicrm-core/pull/21737))**
+- **SearchKit & Afform - Use Bootstrap table styles on admin screens
+  ([21405](https://github.com/civicrm/civicrm-core/pull/21405) and
+  [21397](https://github.com/civicrm/civicrm-core/pull/21397))**
 
-- **Removes duplicate replace on event fee amount. ([21739](https://github.com/civicrm/civicrm-core/pull/21739))**
+  applies Bootstrap table styles to admin tables in SearchKit and Afform.
 
-- **5.42 to master ([21736](https://github.com/civicrm/civicrm-core/pull/21736))**
+- **SearchKit - Filter search listing by creator
+  ([21388](https://github.com/civicrm/civicrm-core/pull/21388))**
 
-- **Use Case form for case email action ([21688](https://github.com/civicrm/civicrm-core/pull/21688))**
+  Makes it so users can filter the search listing by creator.
 
-- **Enotice fix ([21732](https://github.com/civicrm/civicrm-core/pull/21732))**
+- **SearchKit - enable tags for Saved Searches
+  ([21376](https://github.com/civicrm/civicrm-core/pull/21376))**
 
-- **Fixes dev/core#2888 SearchKit download CSV broken ([21724](https://github.com/civicrm/civicrm-core/pull/21724))**
+  Enables tags for saved searches in searchkit.
 
-- **[NFC] Unit test fixes for the problem of quickform rules going missing ([21725](https://github.com/civicrm/civicrm-core/pull/21725))**
+- **SearchKit - Add 'array' option to download API and add test
+  ([21363](https://github.com/civicrm/civicrm-core/pull/21363))**
 
-- **Enotice fixes ([21723](https://github.com/civicrm/civicrm-core/pull/21723))**
+  Adds a new option to the SearchKit "Download" api to return a normal array
+  result, which makes testing easier.
 
-- **fixes financial#181 - don't crash when displaying recurring contributions whose 'template' has no line items ([21729](https://github.com/civicrm/civicrm-core/pull/21729))**
+- **SearchKit - Sortable column fixes/improvements
+  ([21720](https://github.com/civicrm/civicrm-core/pull/21720) and
+  [21894](https://github.com/civicrm/civicrm-core/pull/21894))**
 
-- **SearchKit - tweak button styles for shorditch ([21726](https://github.com/civicrm/civicrm-core/pull/21726))**
+  Fixes sortable column headers on SearchKit admin tables and makes
+  click-sortable column headers configurable.
 
-- **(dev/core#2766) provide way to distinguish the core and custom fields… ([21728](https://github.com/civicrm/civicrm-core/pull/21728))**
+- **Add message admin to dist
+  ([21670](https://github.com/civicrm/civicrm-core/pull/21670))**
 
-- **REF - Remove non-functional code from APIv3 ([21727](https://github.com/civicrm/civicrm-core/pull/21727))**
+  Adds Message admin extension.
 
-- **Add participant tokens to pdf task ([21695](https://github.com/civicrm/civicrm-core/pull/21695))**
+- **message_admin - Add titles/hints to hyperlinks
+  ([21698](https://github.com/civicrm/civicrm-core/pull/21698))**
 
-- **Afform - Use search display name as field prefix for url-based field defaults ([21645](https://github.com/civicrm/civicrm-core/pull/21645))**
+  Adds help text to links on Message Admin Screen.
 
-- **Towards full metadata - fully declare 'bespoke' tokens ([21713](https://github.com/civicrm/civicrm-core/pull/21713))**
+- **Replace expensive query with cheaper one
+  ([21426](https://github.com/civicrm/civicrm-core/pull/21426))**
 
-- **SearchKit - Sortable column fixes/improvements ([21720](https://github.com/civicrm/civicrm-core/pull/21720))**
+  Improves performance.
 
-- **Error about count() on New Email ([21714](https://github.com/civicrm/civicrm-core/pull/21714))**
+- **Add support for CiviCRM date formats in crmDate
+  ([21508](https://github.com/civicrm/civicrm-core/pull/21508))**
 
-- **APIv4 - Add Contact.age_years extra field to make age calculations easy ([21718](https://github.com/civicrm/civicrm-core/pull/21718))**
+  Adds support for CiviCRM date formats in crmDate.
 
-- **flexmailer - Update `[CiviMail Draft]` prefix to match BAO behavior ([21715](https://github.com/civicrm/civicrm-core/pull/21715))**
+- **Mailing Unsubscribe Form: Show if email is already unsubscribed
+  ([21174](https://github.com/civicrm/civicrm-core/pull/21174))**
 
-- **message_admin Style fixes ([21712](https://github.com/civicrm/civicrm-core/pull/21712))**
+  Improves languaging on the Mailing Unsubscribe form regarding if the email is
+  already unsubscribed.
 
-- **Add missing ts ([21711](https://github.com/civicrm/civicrm-core/pull/21711))**
+- **Change Do Not SMS privacy icon
+  ([dev/core#2754](https://lab.civicrm.org/dev/core/-/issues/2754):
+  [21354](https://github.com/civicrm/civicrm-core/pull/21354))**
 
-- **Improve test readability, use schema labels for membership tokens ([21708](https://github.com/civicrm/civicrm-core/pull/21708))**
+  Improves usability by improving the Do Not SMS icon.
 
-- **message_admin - Fix quirk when using "Create Draft" ([21700](https://github.com/civicrm/civicrm-core/pull/21700))**
+### CiviContribute
 
-- **NFC - Update code comments ([21675](https://github.com/civicrm/civicrm-core/pull/21675))**
+- **Add workflow template for 'recurring edit' workflow
+  ([21356](https://github.com/civicrm/civicrm-core/pull/21356) and
+  [21826](https://github.com/civicrm/civicrm-core/pull/21826))**
 
-- **Enotice tpl fix ([21689](https://github.com/civicrm/civicrm-core/pull/21689))**
+  Adds workflow template for 'recurring edit' workflow
 
-- **fixes core#2881 - APIv3 replace only replaces the first 25 records ([21681](https://github.com/civicrm/civicrm-core/pull/21681))**
+- **Can we re-order the 'recur links'
+  ([dev/core#2843](https://lab.civicrm.org/dev/core/-/issues/2843):
+  [21529](https://github.com/civicrm/civicrm-core/pull/21529))**
 
-- **Function cleanup following move to non-static function ([21693](https://github.com/civicrm/civicrm-core/pull/21693))**
+  Improves user experience by reordering the contribution recur links.
 
-- **enotice fix ([21702](https://github.com/civicrm/civicrm-core/pull/21702))**
+- **View Contribution page, move the Done button to the last button, currently
+  shown in the middle
+  ([21547](https://github.com/civicrm/civicrm-core/pull/21547))**
 
-- **APIv4 - Give every SQL expression a title ([21691](https://github.com/civicrm/civicrm-core/pull/21691))**
+  Reorders buttons on the Contribution page to improve user experience.
 
-- **message_admin - Add titles/hints to hyperlinks ([21698](https://github.com/civicrm/civicrm-core/pull/21698))**
+- **Replace "Print Invoice" and "Print Invoice and Credit Note" buttons with
+  label "Download Invoice" and "Download Invoice and Credit Note"
+  ([21546](https://github.com/civicrm/civicrm-core/pull/21546))**
 
-- ** dev/core#348 Participant tokens on scheduled reminders ([21666](https://github.com/civicrm/civicrm-core/pull/21666))**
+  Improves labels for Invoice buttons.
 
-- **MessageTemplate API - Fix saving of templates with workflow_name sans workflow_id ([21694](https://github.com/civicrm/civicrm-core/pull/21694))**
+### CiviEvent
 
-- **[REF] Use getSubmittedValue rather than passed values ([21668](https://github.com/civicrm/civicrm-core/pull/21668))**
+- **Custom Participant tokens not working in scheduled reminders
+  ([dev/core#348](https://lab.civicrm.org/dev/core/-/issues/348):
+  [21666](https://github.com/civicrm/civicrm-core/pull/21666))**
 
-- **Another enotice fix ([21682](https://github.com/civicrm/civicrm-core/pull/21682))**
+  Adds support for participant tokens in scheduled reminders.
 
-- **And another one ([21683](https://github.com/civicrm/civicrm-core/pull/21683))**
+### CiviMail
 
-- **Another one bites the dust ([21684](https://github.com/civicrm/civicrm-core/pull/21684))**
+- **CRM-19236 - Fix Flexmailer extension to support unicode urls
+  ([21597](https://github.com/civicrm/civicrm-core/pull/21597))**
 
-- **Rename test clas to reflect tested class name ([21686](https://github.com/civicrm/civicrm-core/pull/21686))**
+  Updates flexmailer click tracking to support unicode urls.
 
-- **[REF] Extract getRedirectUrl method ([21687](https://github.com/civicrm/civicrm-core/pull/21687))**
+- **Install flexmailer by default on new installs
+  ([dev/core#2836](https://lab.civicrm.org/dev/core/-/issues/2836):
+  [21522](https://github.com/civicrm/civicrm-core/pull/21522) and
+  [21830](https://github.com/civicrm/civicrm-core/pull/21830))**
 
-- **Remove unused paramter ([21685](https://github.com/civicrm/civicrm-core/pull/21685))**
+  Installs flexmailer on new installs by default.
 
-- **Remove workflow_id reference ([21671](https://github.com/civicrm/civicrm-core/pull/21671))**
+### CiviMember
 
-- **[NFC] Unit test for file-on-case ([21678](https://github.com/civicrm/civicrm-core/pull/21678))**
+- **Fix code to use Order api to create Memberships in core forms (Work Towards
+  [dev/core#2717](https://lab.civicrm.org/dev/core/-/issues/2717):
+  [21152](https://github.com/civicrm/civicrm-core/pull/21152))**
 
-- **Remove now-silly function ([21680](https://github.com/civicrm/civicrm-core/pull/21680))**
+  Use order api for new membership create in batch.
 
-- **Update SelfSvcUpdate.php ([21679](https://github.com/civicrm/civicrm-core/pull/21679))**
+### WordPress integration
 
-- **Return another function to the email trait ([21677](https://github.com/civicrm/civicrm-core/pull/21677))**
+- **Add deduping to Quick Add Dashboard Widget
+  ([256](https://github.com/civicrm/civicrm-wordpress/pull/256))**
 
-- **[REF] Copy another email trait function back to the trait ([21648](https://github.com/civicrm/civicrm-core/pull/21648))**
+  Adds a simple deduplication check when submitting details via the "Quick Add
+  Contact to CiviCRM" Dashboard Widget.
 
-- **ContributionRecur modified_date should update to current_timestamp on update ([21472](https://github.com/civicrm/civicrm-core/pull/21472))**
-
-- **(dev/drupal#163) Session erroneously getting set to NULL on change ([21403](https://github.com/civicrm/civicrm-core/pull/21403))**
-
-- **Add message admin to dist ([21670](https://github.com/civicrm/civicrm-core/pull/21670))**
-
-- **Fix header e-notices ([21633](https://github.com/civicrm/civicrm-core/pull/21633))**
-
-- **dev/mail#83 - Import current revision of "Message Admin" ([21590](https://github.com/civicrm/civicrm-core/pull/21590))**
-
-- **Tests -  update to use postProcess ([21637](https://github.com/civicrm/civicrm-core/pull/21637))**
-
-- **Fixed issue with sending from do-not-reply@domain address ([21455](https://github.com/civicrm/civicrm-core/pull/21455))**
+## <a name="bugs"></a>Bugs resolved
 
-- **Basic IDE cleanup on test class ([21661](https://github.com/civicrm/civicrm-core/pull/21661))**
+### Core CiviCRM
 
-- **Simplify getRecurFromAddress ([21613](https://github.com/civicrm/civicrm-core/pull/21613))**
+- **Full Month Names: avoid relying on the operating system's locale for
+  translation
+  ([dev/translation#71](https://lab.civicrm.org/dev/translation/-/issues/71):
+  [21157](https://github.com/civicrm/civicrm-core/pull/21157))**
 
-- **5.42 to master ([21665](https://github.com/civicrm/civicrm-core/pull/21665))**
+- **CRM_Utils_Date - Month and day names should match active locale
+  ([21569](https://github.com/civicrm/civicrm-core/pull/21569))**
 
-- **Test fix ([21662](https://github.com/civicrm/civicrm-core/pull/21662))**
+- **System Workflow Messages - Improve localization experience (Work Towards
+  [dev/mail#83](https://lab.civicrm.org/dev/mail/-/issues/83):
+  [21773](https://github.com/civicrm/civicrm-core/pull/21773),
+  [21747](https://github.com/civicrm/civicrm-core/pull/21747),
+  [21774](https://github.com/civicrm/civicrm-core/pull/21774),
+  [21772](https://github.com/civicrm/civicrm-core/pull/21772),
+  [21590](https://github.com/civicrm/civicrm-core/pull/21590),
+  [21338](https://github.com/civicrm/civicrm-core/pull/21338),
+  [21480](https://github.com/civicrm/civicrm-core/pull/21480) and
+  [21486](https://github.com/civicrm/civicrm-core/pull/21486))**
 
-- **Remove call to the dreaded replaceMultipleContributionTokens ([21652](https://github.com/civicrm/civicrm-core/pull/21652))**
+- **When extensions do upgrades and add fields to tables, trigger-based logging
+  tables require the extension to do the right thing
+  ([dev/core#1618](https://lab.civicrm.org/dev/core/-/issues/1618):
+  [21135](https://github.com/civicrm/civicrm-core/pull/21135))**
 
-- **dev/core#2832 Switch membership pdf to use token processor ([21521](https://github.com/civicrm/civicrm-core/pull/21521))**
+- **Special characters become "?" On PDF report
+  ([dev/core#2126](https://lab.civicrm.org/dev/core/-/issues/2126):
+  [21423](https://github.com/civicrm/civicrm-core/pull/21423))**
 
-- **Enotice fix ([21658](https://github.com/civicrm/civicrm-core/pull/21658))**
+- **Send an Email / Cancel button does not work
+  ([dev/core#2318](https://lab.civicrm.org/dev/core/-/issues/2318):
+  [21474](https://github.com/civicrm/civicrm-core/pull/21474))**
 
-- **Enotice fixes ([21659](https://github.com/civicrm/civicrm-core/pull/21659))**
+- **hook_civicrm_tokenValues inconsistent data
+  ([dev/core#2554](https://lab.civicrm.org/dev/core/-/issues/2554):
+  [21490](https://github.com/civicrm/civicrm-core/pull/21490))**
 
-- **Find Activities Search, the default search option of "With" criteria excludes Activities by default. Confuses End Users when 0 results are returned when criteria appears to be correct. ([21595](https://github.com/civicrm/civicrm-core/pull/21595))**
+  Remove code to assign contact to the template in sendEmail.
 
-- **Do not send email notification to the user if `notify` is not set in the params ([21562](https://github.com/civicrm/civicrm-core/pull/21562))**
+- **Use consistent token syntax for pseudoconstants
+  ([dev/core#2650](https://lab.civicrm.org/dev/core/-/issues/2650):
+  [21477](https://github.com/civicrm/civicrm-core/pull/21477),
+  [21464](https://github.com/civicrm/civicrm-core/pull/21464),
+  [21570](https://github.com/civicrm/civicrm-core/pull/21570) and
+  [21705](https://github.com/civicrm/civicrm-core/pull/21705))**
 
-- **MessageTemplate - Deprecate `valueName`. Emphasize `workflow`. Consolidate converters.  ([21657](https://github.com/civicrm/civicrm-core/pull/21657))**
+- **Remove unused token assigns (Work Towards
+  [dev/core#2748](https://lab.civicrm.org/dev/core/-/issues/2748):
+  [21059](https://github.com/civicrm/civicrm-core/pull/21059))**
 
-- **Fix label for participant role ([21656](https://github.com/civicrm/civicrm-core/pull/21656))**
+  Removes some no-longer-used token assigns & adds an upgrade message in case
+  people have templates still referring to them.
 
-- **dev/core#2834 Use event tokens for participant badges ([21587](https://github.com/civicrm/civicrm-core/pull/21587))**
+- **Something something tokens something tokens
+  ([dev/core#2856](https://lab.civicrm.org/dev/core/-/issues/2856):
+  [21580](https://github.com/civicrm/civicrm-core/pull/21580))**
 
-- **(REF) MessageTemplate - Reverse renderTemplate()<=>sendTemplate() call ([21610](https://github.com/civicrm/civicrm-core/pull/21610))**
+  Token "filter" can be null so filter[0] doesn't exist.
 
-- **dev/core#2126 - Allow setting dompdf options, e.g. an external font folder ([21423](https://github.com/civicrm/civicrm-core/pull/21423))**
+- **Fix contact tokens class to load using apiv4
+  ([21780](https://github.com/civicrm/civicrm-core/pull/21780))**
 
-- **typo fixes ([21655](https://github.com/civicrm/civicrm-core/pull/21655))**
+- **Remove case token listing from contact email task
+  ([21787](https://github.com/civicrm/civicrm-core/pull/21787))**
 
-- **[REF] stop passing form into createActivities ([21653](https://github.com/civicrm/civicrm-core/pull/21653))**
+- **Fix another instance of double token rendering
+  ([21788](https://github.com/civicrm/civicrm-core/pull/21788))**
 
-- **tests/events/*.php - Enforce general compliance with hook/event signatures  ([21615](https://github.com/civicrm/civicrm-core/pull/21615))**
+- **Fix token regression - re-add support for empty tokens
+  ([21756](https://github.com/civicrm/civicrm-core/pull/21756))**
 
-- **Set default for civicrm_message_template.is_reserved ([21651](https://github.com/civicrm/civicrm-core/pull/21651))**
+- **Fix event custom field tokens in scheduled reminders
+  ([21374](https://github.com/civicrm/civicrm-core/pull/21374))**
 
-- **dev/core#2870 Fix upgrade error with rpow installed ([21640](https://github.com/civicrm/civicrm-core/pull/21640))**
+- **Reference token metadata internally fix custom tokens label bug
+  ([21767](https://github.com/civicrm/civicrm-core/pull/21767))**
 
-- **APIv4 - Automatically coalesce potentially null field values in equations ([21647](https://github.com/civicrm/civicrm-core/pull/21647))**
+- **Participant tokens - remove / replace unsupportable from badges (conversion
+  preparation) ([21520](https://github.com/civicrm/civicrm-core/pull/21520))**
 
-- **Extend token date handling to 'most' date fields ([21584](https://github.com/civicrm/civicrm-core/pull/21584))**
+- **Fix activity tokens
+  ([21489](https://github.com/civicrm/civicrm-core/pull/21489))**
 
-- **HttpTestTrait - Allow one to easily authenticate subrequests ([21261](https://github.com/civicrm/civicrm-core/pull/21261))**
+- **Ensure TokenSmary::render returns an array
+  ([21461](https://github.com/civicrm/civicrm-core/pull/21461))**
 
-- **Fix extra apostrophe added in 21636 ([21650](https://github.com/civicrm/civicrm-core/pull/21650))**
+- **Replace event type token in action schedule changes event.event_type_id to
+  participant.event_type_id:label
+  ([dev/core#2892](https://lab.civicrm.org/dev/core/-/issues/2892):
+  [21738](https://github.com/civicrm/civicrm-core/pull/21738))**
 
-- **Test regression fix ([21649](https://github.com/civicrm/civicrm-core/pull/21649))**
+- **Custom field multiselect of type int crashes when saving
+  ([dev/core#2772](https://lab.civicrm.org/dev/core/-/issues/2772):
+  [21186](https://github.com/civicrm/civicrm-core/pull/21186))**
 
-- **avoid back trace when importing preferred communication method ([21433](https://github.com/civicrm/civicrm-core/pull/21433))**
+- **Deduping produces bad results after a rule change
+  ([dev/core#2820](https://lab.civicrm.org/dev/core/-/issues/2820):
+  [21509](https://github.com/civicrm/civicrm-core/pull/21509))**
 
-- **Afform - ensure default value data type matches input type ([21643](https://github.com/civicrm/civicrm-core/pull/21643))**
+- **[REF] Extend 'managed' api to provide information about 'status' (Clean up
+  towards [dev/core#2823](https://lab.civicrm.org/dev/core/-/issues/2823):
+  [21399](https://github.com/civicrm/civicrm-core/pull/21399),
+  [21440](https://github.com/civicrm/civicrm-core/pull/21440),
+  [21400](https://github.com/civicrm/civicrm-core/pull/21400),
+  [21401](https://github.com/civicrm/civicrm-core/pull/21401),
+  [21412](https://github.com/civicrm/civicrm-core/pull/21412) and
+  [21395](https://github.com/civicrm/civicrm-core/pull/21395))**
 
-- **Enotice fix ([21636](https://github.com/civicrm/civicrm-core/pull/21636))**
+- **Dashboard error `Trying to access array offset on value of type null`
+  ([dev/core#2829](https://lab.civicrm.org/dev/core/-/issues/2829):
+  [21441](https://github.com/civicrm/civicrm-core/pull/21441) and
+  [21437](https://github.com/civicrm/civicrm-core/pull/21437))**
 
-- **Enotice fixes ([21632](https://github.com/civicrm/civicrm-core/pull/21632))**
+- **Upgrade error - upgrading to 5.43
+  ([dev/core#2870](https://lab.civicrm.org/dev/core/-/issues/2870):
+  [21640](https://github.com/civicrm/civicrm-core/pull/21640))**
 
-- **enotice fixes in fatal error template ([21639](https://github.com/civicrm/civicrm-core/pull/21639))**
+  Fix upgrade error with rpow installed.
 
-- **Remove handling for empty required field ([21623](https://github.com/civicrm/civicrm-core/pull/21623))**
+- **Search Builder: Fails validation when state_province location type is
+  "primary" and operator is "IN"
+  ([dev/core#2874](https://lab.civicrm.org/dev/core/-/issues/2874):
+  [21646](https://github.com/civicrm/civicrm-core/pull/21646))**
 
-- **dev/core#2629 show only contribution statuses on contribution form ([21624](https://github.com/civicrm/civicrm-core/pull/21624))**
+- **APIv3 "replace" action is broken when there is > 25 records to replace.
+  ([dev/core#2881](https://lab.civicrm.org/dev/core/-/issues/2881):
+  [21681](https://github.com/civicrm/civicrm-core/pull/21681))**
 
-- **Remove over-copied function ([21641](https://github.com/civicrm/civicrm-core/pull/21641))**
+- **Add contacts to Group action missing custom fields
+  ([dev/core#2885](https://lab.civicrm.org/dev/core/-/issues/2885):
+  [21716](https://github.com/civicrm/civicrm-core/pull/21716))**
 
-- **[REF] Separate contact tokens from 'tokenCompatSubscriber' ([21626](https://github.com/civicrm/civicrm-core/pull/21626))**
+- **Find Activities + Send Email task always says the contact is on hold or
+  deceased etc ([dev/core#2901](https://lab.civicrm.org/dev/core/-/issues/2901):
+  [21781](https://github.com/civicrm/civicrm-core/pull/21781))**
 
-- **Afform - Accept default field values from the url ([21606](https://github.com/civicrm/civicrm-core/pull/21606))**
+- **Afform - Fix chainSelect to work with anonymous users
+  ([21759](https://github.com/civicrm/civicrm-core/pull/21759))**
 
-- **[REF] Update Frequenecy template assignments in UpdateBilling to be c… ([21635](https://github.com/civicrm/civicrm-core/pull/21635))**
+- **Afform - Fix chain-select of country and address to work on SearchKit forms
+  ([21749](https://github.com/civicrm/civicrm-core/pull/21749))**
 
-- **Fix dev/core#2867 - APIv4 Entity.get to return class name by default ([21634](https://github.com/civicrm/civicrm-core/pull/21634))**
+- **Afform - gracefully handle missing html files
+  ([21436](https://github.com/civicrm/civicrm-core/pull/21436))**
 
-- **enotice fix ([21631](https://github.com/civicrm/civicrm-core/pull/21631))**
+- **Afform - fix loading embedded blocks
+  ([21609](https://github.com/civicrm/civicrm-core/pull/21609))**
 
-- **Convert more tests to call postProcess ([21628](https://github.com/civicrm/civicrm-core/pull/21628))**
+- **Afform - ensure default value data type matches input type
+  ([21643](https://github.com/civicrm/civicrm-core/pull/21643))**
 
-- **SearchKit - Style buttons for compatability with Shoreditch theme ([21627](https://github.com/civicrm/civicrm-core/pull/21627))**
+- **api4 explorer - entity displays as `\undefined` in the generated code sample
+  ([dev/core#2867](https://lab.civicrm.org/dev/core/-/issues/2867):
+  [21634](https://github.com/civicrm/civicrm-core/pull/21634))**
 
-- **Fix test to use postProcess ([21630](https://github.com/civicrm/civicrm-core/pull/21630))**
+- **APIv4 - Default select clause to exclude "Extra" fields
+  ([21438](https://github.com/civicrm/civicrm-core/pull/21438))**
 
-- **Afform - fix loading embedded blocks ([21609](https://github.com/civicrm/civicrm-core/pull/21609))**
+- **APIv4 - Give every SQL expression a title
+  ([21691](https://github.com/civicrm/civicrm-core/pull/21691))**
 
-- **Test cleanup -convert to use postProcess ([21629](https://github.com/civicrm/civicrm-core/pull/21629))**
+- **APIv4 - Automatically coalesce potentially null field values in equations
+  ([21647](https://github.com/civicrm/civicrm-core/pull/21647))**
 
-- **Setting::getItem - use deprecatedWarning instead of just logging ([21625](https://github.com/civicrm/civicrm-core/pull/21625))**
+- **UX: Deleting a saved Search Kit search should warn/delete associated afforms
+  ([dev/core#2824](https://lab.civicrm.org/dev/core/-/issues/2824):
+  [21457](https://github.com/civicrm/civicrm-core/pull/21457))**
 
-- **Test cleanup ([21622](https://github.com/civicrm/civicrm-core/pull/21622))**
+- **search kit: deleting a search has weird confirmation dialog box
+  ([dev/core#2826](https://lab.civicrm.org/dev/core/-/issues/2826):
+  [21404](https://github.com/civicrm/civicrm-core/pull/21404))**
 
-- **dev/core#2650 dev/core#2814 Add support for preferred syntax for contact tokens ([21570](https://github.com/civicrm/civicrm-core/pull/21570))**
+- **New download spreadsheet search kit feature broken
+  ([dev/core#2888](https://lab.civicrm.org/dev/core/-/issues/2888):
+  [21724](https://github.com/civicrm/civicrm-core/pull/21724))**
 
-- **SearchKit - Add UI for arithmetic equations ([21600](https://github.com/civicrm/civicrm-core/pull/21600))**
+- **SearchKit - Style buttons for compatability with Shoreditch theme
+  ([21627](https://github.com/civicrm/civicrm-core/pull/21627))**
 
-- ** Add upgrade to replace legacy contribution tokens from message templates ([21605](https://github.com/civicrm/civicrm-core/pull/21605))**
+- **SearchKit - tweak button styles for shorditch
+  ([21726](https://github.com/civicrm/civicrm-core/pull/21726))**
 
-- **SearchKit - A random stable genius ([21586](https://github.com/civicrm/civicrm-core/pull/21586))**
+  Tweaks the "Tags" and "Add" buttons in SearchKit to look better in Shoreditch,
+  and tidies up some ts() calls.
 
-- **Remove unused function - convertDateFieldsToMySQL ([21617](https://github.com/civicrm/civicrm-core/pull/21617))**
+- **SearchKit - A random stable genius
+  ([21586](https://github.com/civicrm/civicrm-core/pull/21586))**
 
-- **[Ref] Function signature cleanup ([21618](https://github.com/civicrm/civicrm-core/pull/21618))**
+  Allows the pager, edit-in-place, and bulk updates to work properly with random
+  sorting.
 
-- **5.42 ([21612](https://github.com/civicrm/civicrm-core/pull/21612))**
+- **SearchKit - Exclude custom fields from ON clause selector
+  ([21495](https://github.com/civicrm/civicrm-core/pull/21495))**
 
-- **[REF] Return the sendEmail function to it's owner ([21608](https://github.com/civicrm/civicrm-core/pull/21608))**
+  Custom fields cannot as-yet be added to an ON clause in APIv4 because they do
+  not belong to the tables being joined. This removes the tripping hazard from
+  the UI, by making custom fields unavailable to select in an ON clause.
 
-- **Fix display of subscription frequency on 'Update Subscription' form ([21469](https://github.com/civicrm/civicrm-core/pull/21469))**
+- **SearchKit - Fix links to non-aggregage join fields
+  ([21482](https://github.com/civicrm/civicrm-core/pull/21482))**
 
-- **Remove all references to safe_mode, DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0 ([21594](https://github.com/civicrm/civicrm-core/pull/21594))**
+- **SearchKit - Fix display of links in aggregated columns
+  ([21420](https://github.com/civicrm/civicrm-core/pull/21420))**
 
-- **Remove broken code ([21602](https://github.com/civicrm/civicrm-core/pull/21602))**
+- **SearchKit - Fix alignment in table headers
+  ([21431](https://github.com/civicrm/civicrm-core/pull/21431))**
 
-- **dev/core#2851 Fix send email task contribution tokens to the processor ([21565](https://github.com/civicrm/civicrm-core/pull/21565))**
+- **SearchKit - Correctly process filters passed through Afform from js
+  ([21485](https://github.com/civicrm/civicrm-core/pull/21485))**
 
-- **Find Activities Search, default search option for Activity Text is set to "both" in the code, but should actually be set to 6 which is the value for "both" ([21598](https://github.com/civicrm/civicrm-core/pull/21598))**
+- **SearchKit - Prevent race conditions in search display loading
+  ([21394](https://github.com/civicrm/civicrm-core/pull/21394))**
 
-- **Add test to cancel subscription form ([21588](https://github.com/civicrm/civicrm-core/pull/21588))**
+- **[search kit] Semicolon vs comma
+  ([21406](https://github.com/civicrm/civicrm-core/pull/21406))**
 
-- **Fix test ([21585](https://github.com/civicrm/civicrm-core/pull/21585))**
+- **message_admin Style fixes
+  ([21712](https://github.com/civicrm/civicrm-core/pull/21712))**
 
-- **Clean up UpdateBilling/UpdateSubscription/ContributionRecur to use getters ([21538](https://github.com/civicrm/civicrm-core/pull/21538))**
+- **message_admin - Fix quirk when using "Create Draft"
+  ([21700](https://github.com/civicrm/civicrm-core/pull/21700))**
 
-- **Fixes dev/core#2824 - Handle related Afforms when deleting Search Displays ([21457](https://github.com/civicrm/civicrm-core/pull/21457))**
+- **MessageTemplate API - Fix saving of templates with workflow_name sans
+  workflow_id ([21694](https://github.com/civicrm/civicrm-core/pull/21694))**
 
-- **ensure recur options are present on backend cc contribution form. ([21577](https://github.com/civicrm/civicrm-core/pull/21577))**
+- **Find Activities Search, default search option for Activity Text is set to
+  "both" in the code, but should actually be set to 6 which is the value for
+  "both" ([21598](https://github.com/civicrm/civicrm-core/pull/21598))**
 
-- **Add unique class to price field template ([21484](https://github.com/civicrm/civicrm-core/pull/21484))**
+- **UFMatch - E_NOTICE when nonexistent uf_id
+  ([21576](https://github.com/civicrm/civicrm-core/pull/21576))**
 
-- **dev/core#2851 Block use of legacy style contribution tokens ([21525](https://github.com/civicrm/civicrm-core/pull/21525))**
+- **flushCaches should respect permitCacheFlushMode. Also flush caches which
+  have a NULL cache_date
+  ([21430](https://github.com/civicrm/civicrm-core/pull/21430))**
 
-- **dev/core#2856 - Token "filter" can be null so filter[0] doesn't exist ([21580](https://github.com/civicrm/civicrm-core/pull/21580))**
+- **Setting::getItem - use deprecatedWarning instead of just logging
+  ([21625](https://github.com/civicrm/civicrm-core/pull/21625))**
 
-- **dev/core#2814 fix tokenCompat to be consistent with unresolved tokens ([21568](https://github.com/civicrm/civicrm-core/pull/21568))**
+- **Fix display of subscription frequency on 'Update Subscription' form
+  ([21469](https://github.com/civicrm/civicrm-core/pull/21469))**
 
-- **Enotice fix ([21579](https://github.com/civicrm/civicrm-core/pull/21579))**
+- **Fix bug where log hook is ignored on custom field create
+  ([21557](https://github.com/civicrm/civicrm-core/pull/21557))**
 
-- **Fixes dev/core#2852 - Add is_primary as a default SearchKit filter ([21574](https://github.com/civicrm/civicrm-core/pull/21574))**
+- **Set default for civicrm_message_template.is_reserved
+  ([21651](https://github.com/civicrm/civicrm-core/pull/21651))**
 
-- **dev/core#2850 update_email_resetdate consider opt out on hold ([21564](https://github.com/civicrm/civicrm-core/pull/21564))**
+- **CiviReport - avoid error in test environments when using built-in php web
+  server ([21560](https://github.com/civicrm/civicrm-core/pull/21560))**
 
-- **Afform - Add getters/setters to the AfformSubmitEvent class ([21572](https://github.com/civicrm/civicrm-core/pull/21572))**
+- **Update SelfSvcUpdate.php
+  ([21679](https://github.com/civicrm/civicrm-core/pull/21679))**
 
-- **APIv4 - Add support for sql equations ([21551](https://github.com/civicrm/civicrm-core/pull/21551))**
+   Changes "cancel" text to read "cancel registration".
 
-- **CRM_Utils_Date - Month and day names should match active locale ([21569](https://github.com/civicrm/civicrm-core/pull/21569))**
+- **Import csv-Fix not importing extension in phones
+  ([20995](https://github.com/civicrm/civicrm-core/pull/20995))**
 
-- **Fix bug where log hook is ignored on custom field create ([21557](https://github.com/civicrm/civicrm-core/pull/21557))**
+- **Missed message template updates from 5.39/5.40
+  ([21550](https://github.com/civicrm/civicrm-core/pull/21550))**
 
-- **Add {domain.now}, supporting |crmDate ([21531](https://github.com/civicrm/civicrm-core/pull/21531))**
+- **Don't clear the GroupContactCache until we're ready to insert the new
+  version ([21384](https://github.com/civicrm/civicrm-core/pull/21384))**
 
-- **UFMatch - E_NOTICE when nonexistent uf_id ([21576](https://github.com/civicrm/civicrm-core/pull/21576))**
+- **Fix syntax error on a ts() function call
+  ([21518](https://github.com/civicrm/civicrm-core/pull/21518))**
 
-- **5.42 to master ([21578](https://github.com/civicrm/civicrm-core/pull/21578))**
+- **flushCaches should respect permitCacheFlushMode
+  ([21468](https://github.com/civicrm/civicrm-core/pull/21468))**
 
-- **[REF] Remove illusion of looping ([21554](https://github.com/civicrm/civicrm-core/pull/21554))**
+- **Smarty warning about missing contact subtype on New Individual
+  ([21410](https://github.com/civicrm/civicrm-core/pull/21410))**
 
-- **Initial test on event tokens ([21563](https://github.com/civicrm/civicrm-core/pull/21563))**
+- **Fix Upgrade step to ensure all fields are converted correctly as well
+  ([21396](https://github.com/civicrm/civicrm-core/pull/21396))**
 
-- **Remove deprecated code lines ([21566](https://github.com/civicrm/civicrm-core/pull/21566))**
+- **Don't specify character set for civicrm_relationship_cache table
+  ([21382](https://github.com/civicrm/civicrm-core/pull/21382))**
 
-- **dev/core#2493 Add support for money laundry in `getSubmittedValue` ([21555](https://github.com/civicrm/civicrm-core/pull/21555))**
+- **Error about count() on New Email
+  ([21714](https://github.com/civicrm/civicrm-core/pull/21714))**
 
-- **flushCaches should respect permitCacheFlushMode. Also flush caches which have a NULL cache_date ([21430](https://github.com/civicrm/civicrm-core/pull/21430))**
+- **Fix generating civicrm.settings.php by ensuring that CMSdbSSL and dbSSL
+  variables are properly removed from the DSNs
+  ([63](https://github.com/civicrm/civicrm-joomla/pull/63))**
 
-- **[Ref] Extend email trait test, process more sanely ([21553](https://github.com/civicrm/civicrm-core/pull/21553))**
+- **Smarty notices on Find Activities results page
+  ([21422](https://github.com/civicrm/civicrm-core/pull/21422))**
 
-- **dev/core#2814 TokenCompatSubscriber - evaluate contact tokens during civi.token.eval phase ([21494](https://github.com/civicrm/civicrm-core/pull/21494))**
+- **Smarty notice on Find Activities / Find Cases
+  ([21421](https://github.com/civicrm/civicrm-core/pull/21421))**
 
-- **Fix event custom field tokens in scheduled reminders ([21374](https://github.com/civicrm/civicrm-core/pull/21374))**
+- **Tpl notice fixes
+  ([21503](https://github.com/civicrm/civicrm-core/pull/21503))**
 
-- **CiviReport - avoid error in test environments when using built-in php web server ([21560](https://github.com/civicrm/civicrm-core/pull/21560))**
+- **Fix extra apostrophe added in 21636
+  ([21650](https://github.com/civicrm/civicrm-core/pull/21650))**
 
-- **5.42 to master ([21561](https://github.com/civicrm/civicrm-core/pull/21561))**
+- **avoid back trace when importing preferred communication method
+  ([21433](https://github.com/civicrm/civicrm-core/pull/21433))**
 
-- **Stop testing for gender_id output that was described as 'legacy' years ago ([21558](https://github.com/civicrm/civicrm-core/pull/21558))**
+- **Fixed issue with sending from do-not-reply@domain address
+  ([21455](https://github.com/civicrm/civicrm-core/pull/21455))**
 
-- **Convert event badges to use token processor ([21530](https://github.com/civicrm/civicrm-core/pull/21530))**
+- **Find Activities Search, the default search option of "With" criteria
+  excludes Activities by default. Confuses End Users when 0 results are returned
+  when criteria appears to be correct.
+  ([21595](https://github.com/civicrm/civicrm-core/pull/21595))**
 
-- **Participant tokens - remove / replace unsupportable from badges (conversion preparation) ([21520](https://github.com/civicrm/civicrm-core/pull/21520))**
+- **Do not send email notification to the user if `notify` is not set in the
+  params ([21562](https://github.com/civicrm/civicrm-core/pull/21562))**
 
-- **Use the processor function to get event tokens ([21537](https://github.com/civicrm/civicrm-core/pull/21537))**
+- **ensure blank note date in UI defaults to current date.
+  ([21717](https://github.com/civicrm/civicrm-core/pull/21717))**
 
-- **Cleanup on test tear downs ([21552](https://github.com/civicrm/civicrm-core/pull/21552))**
+- **System status checks only shows 25 messages
+  ([21748](https://github.com/civicrm/civicrm-core/pull/21748))**
 
-- **Missed message template updates from 5.39/5.40 ([21550](https://github.com/civicrm/civicrm-core/pull/21550))**
+- **Enotice fixes
+  ([21723](https://github.com/civicrm/civicrm-core/pull/21723))**
 
-- **dev/core#2554 Remove code to assign contact to the template in sendEmail ([21490](https://github.com/civicrm/civicrm-core/pull/21490))**
+- **Enotice tpl fix
+  ([21689](https://github.com/civicrm/civicrm-core/pull/21689))**
 
-- **dev/core#2820: Deduping produces bad results after a rule change ([21509](https://github.com/civicrm/civicrm-core/pull/21509))**
+- **Enotice fix
+  ([21782](https://github.com/civicrm/civicrm-core/pull/21782))**
 
-- **Add support for CiviCRM date formats in crmDate ([21508](https://github.com/civicrm/civicrm-core/pull/21508))**
+- **Enotice fix
+  ([21732](https://github.com/civicrm/civicrm-core/pull/21732))**
 
-- **dev/core#2839 Fix addition of _preview to filename ([21493](https://github.com/civicrm/civicrm-core/pull/21493))**
+- **enotice fix
+  ([21702](https://github.com/civicrm/civicrm-core/pull/21702))**
 
-- **View Contribution page, move the Done button to the last button, currently shown in the middle ([21547](https://github.com/civicrm/civicrm-core/pull/21547))**
+- **typo fixes
+  ([21655](https://github.com/civicrm/civicrm-core/pull/21655))**
 
-- **Add test and fix for API4 failing to decode strings stored as HTML ([21549](https://github.com/civicrm/civicrm-core/pull/21549))**
+- **Enotice fix
+  ([21636](https://github.com/civicrm/civicrm-core/pull/21636))**
 
-- **Replace "Print Invoice" and "Print Invoice and Credit Note" buttons with label "Download Invoice" and "Download Invoice and Credit Note" ([21546](https://github.com/civicrm/civicrm-core/pull/21546))**
+- **enotice fix
+  ([21631](https://github.com/civicrm/civicrm-core/pull/21631))**
 
-- **SearchKit - Fix in-place edit of relationships and dates ([21533](https://github.com/civicrm/civicrm-core/pull/21533))**
+- **Enotice fix
+  ([21579](https://github.com/civicrm/civicrm-core/pull/21579))**
 
-- **Test tearDown fixes ([21548](https://github.com/civicrm/civicrm-core/pull/21548))**
+- **Fix header e-notices
+  ([21633](https://github.com/civicrm/civicrm-core/pull/21633))**
 
-- **Tpl notice fix ([21543](https://github.com/civicrm/civicrm-core/pull/21543))**
+- **Enotice fix
+  ([21658](https://github.com/civicrm/civicrm-core/pull/21658))**
 
-- **tpl enotice fixes on extensions page ([21545](https://github.com/civicrm/civicrm-core/pull/21545))**
+- **Enotice fixes
+  ([21659](https://github.com/civicrm/civicrm-core/pull/21659))**
 
-- **Tpl notice fixes ([21544](https://github.com/civicrm/civicrm-core/pull/21544))**
+- **Enotice fixes
+  ([21632](https://github.com/civicrm/civicrm-core/pull/21632))**
 
-- **Tpl enotice fixes ([21542](https://github.com/civicrm/civicrm-core/pull/21542))**
+- **enotice fixes in fatal error template
+  ([21639](https://github.com/civicrm/civicrm-core/pull/21639))**
 
-- **Enotice fixes in tpls ([21541](https://github.com/civicrm/civicrm-core/pull/21541))**
+- **Tpl notice fix
+  ([21543](https://github.com/civicrm/civicrm-core/pull/21543))**
 
-- **dev/core#2717 Use order api for new membership create in batch ([21152](https://github.com/civicrm/civicrm-core/pull/21152))**
+- **tpl enotice fixes on extensions page
+  ([21545](https://github.com/civicrm/civicrm-core/pull/21545))**
 
-- **Fix PHP notices in contributionrecur tpl ([21526](https://github.com/civicrm/civicrm-core/pull/21526))**
+- **Tpl notice fixes
+  ([21544](https://github.com/civicrm/civicrm-core/pull/21544))**
 
-- **dev/core#2843 push new link to the end ([21529](https://github.com/civicrm/civicrm-core/pull/21529))**
+- **Tpl enotice fixes
+  ([21542](https://github.com/civicrm/civicrm-core/pull/21542))**
 
-- **SearchKit - Exclude custom fields from ON clause selector ([21495](https://github.com/civicrm/civicrm-core/pull/21495))**
+- **Enotice fixes in tpls
+  ([21541](https://github.com/civicrm/civicrm-core/pull/21541))**
 
-- **Add CONCAT_WS fn to APIv4 and UI support in SearchKit ([21535](https://github.com/civicrm/civicrm-core/pull/21535))**
+- **Add missing ts
+  ([21711](https://github.com/civicrm/civicrm-core/pull/21711))**
 
-- **[REF] Extract domain tokens to their own class ([21510](https://github.com/civicrm/civicrm-core/pull/21510))**
+- **Another enotice fix
+  ([21682](https://github.com/civicrm/civicrm-core/pull/21682))**
 
-- **SearchKit - Support multiple arguments to field transformations aka SQL functions ([21528](https://github.com/civicrm/civicrm-core/pull/21528))**
+- **And another one
+  ([21683](https://github.com/civicrm/civicrm-core/pull/21683))**
 
-- **Annotate deprecated token functions ([21523](https://github.com/civicrm/civicrm-core/pull/21523))**
+- **Another one bites the dust
+  ([21684](https://github.com/civicrm/civicrm-core/pull/21684))**
 
-- **Update contributors for Third Sector Design ([21516](https://github.com/civicrm/civicrm-core/pull/21516))**
+- **Fix possibly undefined $form variables in smarty templates
+  ([21735](https://github.com/civicrm/civicrm-core/pull/21735))**
 
-- **Don't clear the GroupContactCache until we're ready to insert the new version ([21384](https://github.com/civicrm/civicrm-core/pull/21384))**
+- **Fix regression from enotice fixes
+  ([21743](https://github.com/civicrm/civicrm-core/pull/21743))**
 
-- **dev/core#2832 Extend Membership tokens to 'listen' and add test cover ([21506](https://github.com/civicrm/civicrm-core/pull/21506))**
+- **Count of sent messages can be wrong in status popup for email form
+  ([dev/core#2914](https://lab.civicrm.org/dev/core/-/issues/2914):
+  [21827](https://github.com/civicrm/civicrm-core/pull/21827))
 
-- **Fix syntax error on a ts() function call ([21518](https://github.com/civicrm/civicrm-core/pull/21518))**
+- **[REF] Fix pseduoconstant token rendering for contributions via legacy way on
+  php8 and include campaign_id pseudoconsntants as well
+  ([21958](https://github.com/civicrm/civicrm-core/pull/21958))**
 
-- **5.42 to master ([21515](https://github.com/civicrm/civicrm-core/pull/21515))**
+### CiviCase
 
-- **Fix activity tokens ([21489](https://github.com/civicrm/civicrm-core/pull/21489))**
+- **For latest iteration of case email form, don't fail when there's no To
+  contact ([21737](https://github.com/civicrm/civicrm-core/pull/21737))**
 
-- **dev/core#2790 Move rest of pdfCommon functionality to the trait ([21479](https://github.com/civicrm/civicrm-core/pull/21479))**
+### CiviContribute
 
-- **[REF] add test & static array to participant values tokens ([21476](https://github.com/civicrm/civicrm-core/pull/21476))**
+- **Fix PHP notices in contributionrecur tpl
+  ([21526](https://github.com/civicrm/civicrm-core/pull/21526))**
 
-- **Add workflow template for 'recurring edit' workflow ([21356](https://github.com/civicrm/civicrm-core/pull/21356))**
+- **Follow up on removing contributeMode from templates
+  ([21417](https://github.com/civicrm/civicrm-core/pull/21417))**
 
-- **5.42 to master ([21505](https://github.com/civicrm/civicrm-core/pull/21505))**
+- **Getting system status message about contributeMode after upgrade to 5.43
+  when it seems like it shouldn't
+  ([dev/core#2828](https://lab.civicrm.org/dev/core/-/issues/2828):
+  [21434](https://github.com/civicrm/civicrm-core/pull/21434))**
 
-- **Attempt to fix test site 500 errors on activity pdf ([21504](https://github.com/civicrm/civicrm-core/pull/21504))**
+- **Participant Status: pending refund can have two conflicting meanings (Work
+  Towards [dev/core#2629](https://lab.civicrm.org/dev/core/-/issues/2629):
+  [21624](https://github.com/civicrm/civicrm-core/pull/21624))**
 
-- **Tpl notice fixes ([21503](https://github.com/civicrm/civicrm-core/pull/21503))**
+  Only show contribution statuses on contribution form.
 
-- **Add sort functionality to event summary report ([21501](https://github.com/civicrm/civicrm-core/pull/21501))**
+- **Money - create new Civi:: facade - now format helper (Work Towards:
+  [dev/core#2638](https://lab.civicrm.org/dev/core/-/issues/2638):
+  [21599](https://github.com/civicrm/civicrm-core/pull/21599))**
 
-- **dev/core#2486 Add printLabel v4 api ([21500](https://github.com/civicrm/civicrm-core/pull/21500))**
+  Adds a helper function for formatting.
 
-- **[NFC] [test] minor cleanup in test ([21498](https://github.com/civicrm/civicrm-core/pull/21498))**
+- **CiviCRM 5.35.1, truncation of money values where $1,000 donation is recorded
+  as $1 which appears to be truncating at the thousand separator when using the
+  Australian (AU) and US Locale (Work Towards
+  [dev/core#2493](https://lab.civicrm.org/dev/core/-/issues/2493):
+  [21555](https://github.com/civicrm/civicrm-core/pull/21555))**
 
-- **Revert "dev/core#2812 Fix issue where having a processor configured w… ([21499](https://github.com/civicrm/civicrm-core/pull/21499))**
+  Ensures that any money fields retrieved by getSubmittedValue are in a machine
+  usable format.
 
-- **Remove fugly bit ([21497](https://github.com/civicrm/civicrm-core/pull/21497))**
+- **[regression-ish] When a recurring contribution template has no line items,
+  the contact contribution tab crashes
+  ([dev/financial#187](https://lab.civicrm.org/dev/financial/-/issues/187):
+  [21729](https://github.com/civicrm/civicrm-core/pull/21729))**
 
-- **5.42 to master ([21496](https://github.com/civicrm/civicrm-core/pull/21496))**
+- **ContributionRecur modified_date should update to current_timestamp on update
+  ([21472](https://github.com/civicrm/civicrm-core/pull/21472))**
 
-- **dev/core#2814 TokenCompatSubscriber - Evaluate tokens during "civi.token.eval" phase ([21449](https://github.com/civicrm/civicrm-core/pull/21449))**
+- **ensure recur options are present on backend cc contribution form.
+  ([21577](https://github.com/civicrm/civicrm-core/pull/21577))**
 
-- **SearchKit - Correctly process filters passed through Afform from js ([21485](https://github.com/civicrm/civicrm-core/pull/21485))**
+### CiviEvent
 
-- **SearchKit - Add pseudo-fields for row number and current user ([21435](https://github.com/civicrm/civicrm-core/pull/21435))**
+- **Flush metadata cache on event edit
+  ([21740](https://github.com/civicrm/civicrm-core/pull/21740))**
 
-- **5.42 to master ([21491](https://github.com/civicrm/civicrm-core/pull/21491))**
+- **Fix Badge to use token processor
+  ([dev/core#2834](https://lab.civicrm.org/dev/core/-/issues/2834):
+  [21458](https://github.com/civicrm/civicrm-core/pull/21458) and
+  [21587](https://github.com/civicrm/civicrm-core/pull/21587))**
 
-- **[NFC] Fix Fatal error on php 8 due to mis matched function declaration ([21487](https://github.com/civicrm/civicrm-core/pull/21487))**
+- **Event confirmation emails should go to the email submitted, not primary
+  email ([dev/event#64](https://lab.civicrm.org/dev/event/-/issues/64):
+  [21669](https://github.com/civicrm/civicrm-core/pull/21669))**
 
-- **dev/core#2790 Move pdf postProcess function to the trait ([21478](https://github.com/civicrm/civicrm-core/pull/21478))**
+- **Fix label for participant role
+  ([21656](https://github.com/civicrm/civicrm-core/pull/21656))**
 
-- **dev/core#2817 Remove last core calls to `replaceCaseTokens` ([21447](https://github.com/civicrm/civicrm-core/pull/21447))**
+### CiviMail
 
-- **(dev/mail#83) EntityTokens - Allow using mocked data ([21486](https://github.com/civicrm/civicrm-core/pull/21486))**
+- **flexmailer - Update `[CiviMail Draft]` prefix to match BAO behavior
+  ([21715](https://github.com/civicrm/civicrm-core/pull/21715))**
 
-- **SearchKit - Fix links to non-aggregage join fields ([21482](https://github.com/civicrm/civicrm-core/pull/21482))**
+- **update_email_resetdate job does not consider opt out on hold
+  ([dev/core#2850](https://lab.civicrm.org/dev/core/-/issues/2850):
+  [21564](https://github.com/civicrm/civicrm-core/pull/21564))**
 
-- **SearchKit - Fix display of links in aggregated columns ([21420](https://github.com/civicrm/civicrm-core/pull/21420))**
+- **Start phasing out 'preferred_mail_format' (Work Towards
+  [dev/core#2866](https://lab.civicrm.org/dev/core/-/issues/2866):
+  [21676](https://github.com/civicrm/civicrm-core/pull/21676))**
 
-- **[REF] simplify member_tokens ([21481](https://github.com/civicrm/civicrm-core/pull/21481))**
+### Drupal Integration
 
-- **(dev/mail#83) ExampleDataLoader - Multiple fixes for quirky examples ([21480](https://github.com/civicrm/civicrm-core/pull/21480))**
+- **Contact Image uploaded from Drupal Webform doesn't render on Drupal View as
+  a thumbnail. ([dev/drupal#13](https://lab.civicrm.org/dev/drupal/issues/13):
+  [524](https://github.com/civicrm/civicrm-drupal/pull/524))**
 
-- **dev/core#2650 upgrade membership tokens to the new format ([21477](https://github.com/civicrm/civicrm-core/pull/21477))**
+- **Session erroneously getting set to NULL on Drupal user login
+  ([dev/drupal#163](https://lab.civicrm.org/dev/drupal/-/issues/163):
+  [21403](https://github.com/civicrm/civicrm-core/pull/21403))**
 
-- **dev/core#2817 remove call to getTokenDetails ([21475](https://github.com/civicrm/civicrm-core/pull/21475))**
+### WordPress integration
 
-- **fixes core#2318: fix cancel button when sending an individual email ([21474](https://github.com/civicrm/civicrm-core/pull/21474))**
+- **Wordpress Profile User Creation Sign On (v2)
+  ([20807](https://github.com/civicrm/civicrm-core/pull/20807))**
 
-- **dev/core#2650 dev/core#2832 add support & testing for preferred token format ([21464](https://github.com/civicrm/civicrm-core/pull/21464))**
+  Ensures user is logged in on profile submission.
 
-- **flushCaches should respect permitCacheFlushMode ([21468](https://github.com/civicrm/civicrm-core/pull/21468))**
+## <a name="misc"></a>Miscellany
 
-- **dev/core#2817 Use token processor to resolve caseTokens for pdfs ([21445](https://github.com/civicrm/civicrm-core/pull/21445))**
+- **MessageTemplate - Deprecate `valueName`. Emphasize `workflow`. Consolidate
+  converters.  ([21657](https://github.com/civicrm/civicrm-core/pull/21657))**
+
+- **Bump minimum upgradable version to 4.5.9
+  ([21408](https://github.com/civicrm/civicrm-core/pull/21408))**
+
+- **Use Case form for case email action
+  ([21688](https://github.com/civicrm/civicrm-core/pull/21688))**
+
+- **Consolidate building of contact token list
+  ([21429](https://github.com/civicrm/civicrm-core/pull/21429),
+  [21761](https://github.com/civicrm/civicrm-core/pull/21761), and
+  [dev/core#2907](https://lab.civicrm.org/dev/core/-/issues/2907):
+  [21812](https://github.com/civicrm/civicrm-core/pull/21812))**
+
+- **Remove call to legacy getTokenDetails
+  ([21786](https://github.com/civicrm/civicrm-core/pull/21786))**
+
+- **Remove extraneous call to legacy token processing in sms task
+  ([21785](https://github.com/civicrm/civicrm-core/pull/21785))**
+
+- **Remove stray token code
+  ([21763](https://github.com/civicrm/civicrm-core/pull/21763))**
+
+- **Stop using `replaceContributionTokens` in core
+  ([dev/core#2851](https://lab.civicrm.org/dev/core/-/issues/2851):
+  [21525](https://github.com/civicrm/civicrm-core/pull/21525) and
+  [21565](https://github.com/civicrm/civicrm-core/pull/21565))**
+
+- **Add SqlFunction support in addWhere
+  ([21301](https://github.com/civicrm/civicrm-core/pull/21301))**
+
+- **Deprecate `replaceEntityTokens`, stop using in core
+  ([dev/core#2832](https://lab.civicrm.org/dev/core/-/issues/2832):
+  [21506](https://github.com/civicrm/civicrm-core/pull/21506),
+  [21521](https://github.com/civicrm/civicrm-core/pull/21521),
+  [21452](https://github.com/civicrm/civicrm-core/pull/21452) and
+  [21453](https://github.com/civicrm/civicrm-core/pull/21453))**
+
+- **Deprecate `replaceCaseTokens` in core
+  ([dev/core#2817](https://lab.civicrm.org/dev/core/-/issues/2817):
+  [21380](https://github.com/civicrm/civicrm-core/pull/21380),
+  [21445](https://github.com/civicrm/civicrm-core/pull/21445),
+  [21383](https://github.com/civicrm/civicrm-core/pull/21383),
+  [21381](https://github.com/civicrm/civicrm-core/pull/21381),
+  [21447](https://github.com/civicrm/civicrm-core/pull/21447) and
+  [21475](https://github.com/civicrm/civicrm-core/pull/21475))**
 
-- **[Ref] Cleanup on SelectValues::contributeTokens ([21465](https://github.com/civicrm/civicrm-core/pull/21465))**
+- **Stop using replaceContactTokens in core (Work Towards
+  [dev/core#2814](https://lab.civicrm.org/dev/core/-/issues/2814):
+  [21365](https://github.com/civicrm/civicrm-core/pull/21365),
+  [21414](https://github.com/civicrm/civicrm-core/pull/21414),
+  [21364](https://github.com/civicrm/civicrm-core/pull/21364),
+  [21379](https://github.com/civicrm/civicrm-core/pull/21379),
+  [21377](https://github.com/civicrm/civicrm-core/pull/21377),
+  [21378](https://github.com/civicrm/civicrm-core/pull/21378),
+  [21568](https://github.com/civicrm/civicrm-core/pull/21568),
+  [21494](https://github.com/civicrm/civicrm-core/pull/21494),
+  [21367](https://github.com/civicrm/civicrm-core/pull/21367) and
+  [21449](https://github.com/civicrm/civicrm-core/pull/21449))**
 
-- **[Ref] Remove pass-by-reference ([21466](https://github.com/civicrm/civicrm-core/pull/21466))**
+- **[REF] Cleanup pdf classes to use a trait like we do for email classes
+  ([dev/core#2790](https://lab.civicrm.org/dev/core/-/issues/2790):
+  [21478](https://github.com/civicrm/civicrm-core/pull/21478),
+  [21479](https://github.com/civicrm/civicrm-core/pull/21479),
+  [21366](https://github.com/civicrm/civicrm-core/pull/21366),
+  [21359](https://github.com/civicrm/civicrm-core/pull/21359) and
+  [21335](https://github.com/civicrm/civicrm-core/pull/21335))**
 
-- **(dev/mail#83) Introduce WorkflowMessage APIs with CaseActivity example ([21338](https://github.com/civicrm/civicrm-core/pull/21338))**
+- **Afform - Add getters/setters to the AfformSubmitEvent class
+  ([21572](https://github.com/civicrm/civicrm-core/pull/21572))**
 
-- **[Ref] Remove unnecessary pass-by-reference ([21463](https://github.com/civicrm/civicrm-core/pull/21463))**
+- **Api v4 contact delete bug (Cleanup Towards
+  [dev/core#2757](https://lab.civicrm.org/dev/core/-/issues/2757):
+  [21210](https://github.com/civicrm/civicrm-core/pull/21210),
+  [21198](https://github.com/civicrm/civicrm-core/pull/21198),
+  [21211](https://github.com/civicrm/civicrm-core/pull/21211) and
+  [21199](https://github.com/civicrm/civicrm-core/pull/21199))**
 
-- **dev/core#2834 Preliminary test on badge ([21458](https://github.com/civicrm/civicrm-core/pull/21458))**
+- **[REF] Separate repeattransaction from completeorder function - only call the
+  latter from payment.create
+  (Cleanup Towards [dev/core#2716](https://lab.civicrm.org/dev/core/-/issues/2716):
+  [20856](https://github.com/civicrm/civicrm-core/pull/20856))**
 
-- **[REF] Use OO when determining what to suggest for settings.php prefixes for drupal/backdrop views, instead of scattered "if cms ==" ([21042](https://github.com/civicrm/civicrm-core/pull/21042))**
+- **Financial record processing - extract to new class to faciliate cleanup
+  (Work Towards [dev/core#2715](https://lab.civicrm.org/dev/core/-/issues/2715):
+  [20985](https://github.com/civicrm/civicrm-core/pull/20985) and
+  [21370](https://github.com/civicrm/civicrm-core/pull/21370))**
 
-- **[Ref] Remove no-longer-used variables ([21459](https://github.com/civicrm/civicrm-core/pull/21459))**
+- **Add unique class to price field template
+  ([21484](https://github.com/civicrm/civicrm-core/pull/21484))**
 
-- **Ensure TokenSmary::render returns an array ([21461](https://github.com/civicrm/civicrm-core/pull/21461))**
+- **Clean up UpdateBilling/UpdateSubscription/ContributionRecur to use getters
+  ([21538](https://github.com/civicrm/civicrm-core/pull/21538))**
 
-- **Afform - gracefully handle missing html files ([21436](https://github.com/civicrm/civicrm-core/pull/21436))**
+- **[REF] Fix form to call this->setTitle()
+  ([21362](https://github.com/civicrm/civicrm-core/pull/21362))**
 
-- **dev/core#2832 Improvements to test on membership letter task ([21452](https://github.com/civicrm/civicrm-core/pull/21452))**
+- **Update use of CRM_Utils_System::setTitle() for legacycustomsearches
+  ([21375](https://github.com/civicrm/civicrm-core/pull/21375))**
 
-- **5.42 to master ([21460](https://github.com/civicrm/civicrm-core/pull/21460))**
+- **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle()
+  part 2 ([21202](https://github.com/civicrm/civicrm-core/pull/21202))**
 
-- **APIv4 - Default select clause to exclude "Extra" fields ([21438](https://github.com/civicrm/civicrm-core/pull/21438))**
+- **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle()
+  part 3 ([21352](https://github.com/civicrm/civicrm-core/pull/21352))**
 
-- **[REF] Remove unused parameter ([21448](https://github.com/civicrm/civicrm-core/pull/21448))**
+- **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle()
+  part 4 ([21368](https://github.com/civicrm/civicrm-core/pull/21368))**
 
-- **[REF] Remove unused variable ([21451](https://github.com/civicrm/civicrm-core/pull/21451))**
+- **Simplify getRecurFromAddress
+  ([21613](https://github.com/civicrm/civicrm-core/pull/21613))**
 
-- **[REF] Extract code to load the contact in tokenCompat ([21450](https://github.com/civicrm/civicrm-core/pull/21450))**
+- **Return another function to the email trait
+  ([21677](https://github.com/civicrm/civicrm-core/pull/21677))**
 
-- **Authx: README: add note about CMS permissions ([21439](https://github.com/civicrm/civicrm-core/pull/21439))**
+- **Rename test clas to reflect tested class name
+  ([21686](https://github.com/civicrm/civicrm-core/pull/21686))**
 
-- **dev/core#2832 Add test for legacy membership tokens, add support for preferred tokens ([21453](https://github.com/civicrm/civicrm-core/pull/21453))**
+- **Remove unused function - convertDateFieldsToMySQL
+  ([21617](https://github.com/civicrm/civicrm-core/pull/21617))**
 
-- **dev/core#2823 Restructure determination of required actions. ([21401](https://github.com/civicrm/civicrm-core/pull/21401))**
+- **Remove all references to safe_mode, DEPRECATED as of PHP 5.3.0 and REMOVED
+  as of PHP 5.4.0
+  ([21594](https://github.com/civicrm/civicrm-core/pull/21594))**
 
-- **Wordpress Profile User Creation Sign On (v2) ([20807](https://github.com/civicrm/civicrm-core/pull/20807))**
+- **Remove duplicate global declaration in civicrm.settings.php template
+  ([21409](https://github.com/civicrm/civicrm-core/pull/21409))**
 
-- **Consolidate building of contact token list ([21429](https://github.com/civicrm/civicrm-core/pull/21429))**
+- **Remove broken code
+  ([21602](https://github.com/civicrm/civicrm-core/pull/21602))**
 
-- **dev/core#2817 Add CaseToken processor ([21383](https://github.com/civicrm/civicrm-core/pull/21383))**
+- **Remove call to the dreaded replaceMultipleContributionTokens
+  ([21652](https://github.com/civicrm/civicrm-core/pull/21652))**
 
-- **dev/core#2829 - "Trying to access array offset on value of type null" on dashboard ([21441](https://github.com/civicrm/civicrm-core/pull/21441))**
+- **Remove handling for empty required field
+  ([21623](https://github.com/civicrm/civicrm-core/pull/21623))**
 
-- **TokenProcessor - Allow basic filter/modifier expressions ([21428](https://github.com/civicrm/civicrm-core/pull/21428))**
+- **Remove error handling for core error being returned
+  ([21425](https://github.com/civicrm/civicrm-core/pull/21425))**
 
-- **dev/core#2823 fix test to be more like real function usage ([21440](https://github.com/civicrm/civicrm-core/pull/21440))**
+- **Remove over-copied function
+  ([21641](https://github.com/civicrm/civicrm-core/pull/21641))**
 
-- **dev/core#2829 - unit test for nonempty dashboard ([21437](https://github.com/civicrm/civicrm-core/pull/21437))**
+- **Remove unused paramter
+  ([21685](https://github.com/civicrm/civicrm-core/pull/21685))**
 
-- **dev/core#2823 Extract code to load the declarations and call from the constructor ([21399](https://github.com/civicrm/civicrm-core/pull/21399))**
+- **Remove deprecated code lines
+  ([21566](https://github.com/civicrm/civicrm-core/pull/21566))**
 
-- **dev/core#2823 Move validation into validation function ([21400](https://github.com/civicrm/civicrm-core/pull/21400))**
+- **Remove workflow_id reference
+  ([21671](https://github.com/civicrm/civicrm-core/pull/21671))**
 
-- **dev/core#2828 - Make up for message template text version update from 5.20 that never happened ([21434](https://github.com/civicrm/civicrm-core/pull/21434))**
+- **Remove now-silly function
+  ([21680](https://github.com/civicrm/civicrm-core/pull/21680))**
 
-- **[REF] Move Email, Address, etc. is_primary handling on delete to a hook (dev/core#2757)  ([21211](https://github.com/civicrm/civicrm-core/pull/21211))**
+- **Remove fugly bit
+  ([21497](https://github.com/civicrm/civicrm-core/pull/21497))**
 
-- **SearchKit - Support custom fields in bridge join entities ([21424](https://github.com/civicrm/civicrm-core/pull/21424))**
+- **Remove requirement to enter email address on Opt Out
+  ([21350](https://github.com/civicrm/civicrm-core/pull/21350))**
 
-- **SearchKit - Fix alignment in table headers ([21431](https://github.com/civicrm/civicrm-core/pull/21431))**
+- **Remove requirement to enter email address on unsubscribe
+  ([21175](https://github.com/civicrm/civicrm-core/pull/21175))**
 
-- **[REF] Mapping - Check FK on delete with SQL instead of PHP (dev/core#2757) ([21198](https://github.com/civicrm/civicrm-core/pull/21198))**
+- **Remove deprecated input variable
+  ([21372](https://github.com/civicrm/civicrm-core/pull/21372))**
 
-- **Replace expensive query with cheaper one ([21426](https://github.com/civicrm/civicrm-core/pull/21426))**
+- **Remove unused private function
+  ([21371](https://github.com/civicrm/civicrm-core/pull/21371))**
 
-- **[REF] Extract function to getDomainTokens ([21416](https://github.com/civicrm/civicrm-core/pull/21416))**
+- **Remove deprecated function
+  ([21361](https://github.com/civicrm/civicrm-core/pull/21361))**
 
-- **Bump minimum upgradable version to 4.5.9 ([21408](https://github.com/civicrm/civicrm-core/pull/21408))**
+- **Remove testing hack
+  ([21360](https://github.com/civicrm/civicrm-core/pull/21360))**
 
-- **Remove error handling for core error being returned ([21425](https://github.com/civicrm/civicrm-core/pull/21425))**
+- **Remove deprecated function
+  ([21358](https://github.com/civicrm/civicrm-core/pull/21358))**
 
-- **dev/core#2814 Remove redundant call to `replaceContactTokens` ([21414](https://github.com/civicrm/civicrm-core/pull/21414))**
+- **Removes duplicate replace on event fee amount.
+  ([21739](https://github.com/civicrm/civicrm-core/pull/21739))**
 
-- **Smarty notices on Find Activities results page ([21422](https://github.com/civicrm/civicrm-core/pull/21422))**
+- **Remove function duplicated in error
+  ([21758](https://github.com/civicrm/civicrm-core/pull/21758))**
 
-- **[REF] Remove cruft ([21418](https://github.com/civicrm/civicrm-core/pull/21418))**
+- **Remove now-obsolete getPseudoTokens
+  ([21760](https://github.com/civicrm/civicrm-core/pull/21760))**
 
-- **Smarty notice on Find Activities / Find Cases ([21421](https://github.com/civicrm/civicrm-core/pull/21421))**
+- **APIv4 - Minor code cleanup to improve efficiency in
+  CreateApi4RequestSubscriber
+  ([21775](https://github.com/civicrm/civicrm-core/pull/21775))**
 
-- **Follow up on removing contributeMode from templates ([21417](https://github.com/civicrm/civicrm-core/pull/21417))**
+- **Function cleanup following move to non-static function
+  ([21693](https://github.com/civicrm/civicrm-core/pull/21693))**
 
-- **Merge 5.42 to master ([21419](https://github.com/civicrm/civicrm-core/pull/21419))**
+- **[REF] Extract getRedirectUrl method
+  ([21687](https://github.com/civicrm/civicrm-core/pull/21687))**
 
-- **dev/core#2748 Remove unused token assigns ([21059](https://github.com/civicrm/civicrm-core/pull/21059))**
+- **[REF] Copy another email trait function back to the trait
+  ([21648](https://github.com/civicrm/civicrm-core/pull/21648))**
 
-- **dev/core#2823 update function visibility to protected ([21412](https://github.com/civicrm/civicrm-core/pull/21412))**
+- **REF - Remove non-functional code from APIv3
+  ([21727](https://github.com/civicrm/civicrm-core/pull/21727))**
 
-- **Mailing Unsubscribe Form: Show if email is already unsubscribed ([21174](https://github.com/civicrm/civicrm-core/pull/21174))**
+- **[REF] Do not set input['line_item'] pointlessly
+  ([21311](https://github.com/civicrm/civicrm-core/pull/21311))**
 
-- **Smarty warning about missing contact subtype on New Individual ([21410](https://github.com/civicrm/civicrm-core/pull/21410))**
+- **[REF] Use getSubmittedValue rather than passed values
+  ([21668](https://github.com/civicrm/civicrm-core/pull/21668))**
 
-- **Remove duplicate global declaration in civicrm.settings.php template ([21409](https://github.com/civicrm/civicrm-core/pull/21409))**
+- **(REF) MessageTemplate - Reverse renderTemplate()<=>sendTemplate() call
+  ([21610](https://github.com/civicrm/civicrm-core/pull/21610))**
 
-- **SearchKit & Afform - Use Bootstrap table styles on admin screens ([21405](https://github.com/civicrm/civicrm-core/pull/21405))**
+- **[REF] Separate contact tokens from 'tokenCompatSubscriber'
+  ([21626](https://github.com/civicrm/civicrm-core/pull/21626))**
 
-- **[search kit] Semicolon vs comma ([21406](https://github.com/civicrm/civicrm-core/pull/21406))**
+- **[Ref] Function signature cleanup
+  ([21618](https://github.com/civicrm/civicrm-core/pull/21618))**
 
-- **Fixes dev/core#2826 SearchKit - Fix delete search confirm dialog ([21404](https://github.com/civicrm/civicrm-core/pull/21404))**
+- **[REF] Return the sendEmail function to it's owner
+  ([21608](https://github.com/civicrm/civicrm-core/pull/21608))**
 
-- **SearchKit - Support bootstrap styles in search display tables ([21397](https://github.com/civicrm/civicrm-core/pull/21397))**
+- **[REF] Remove illusion of looping
+  ([21554](https://github.com/civicrm/civicrm-core/pull/21554))**
 
-- **dev/core#2817 Block submission of pdf with text including token format that is ambiguous with the processor ([21381](https://github.com/civicrm/civicrm-core/pull/21381))**
+- **[Ref] Extend email trait test, process more sanely
+  ([21553](https://github.com/civicrm/civicrm-core/pull/21553))**
 
-- **SearchKit - Prevent race conditions in search display loading ([21394](https://github.com/civicrm/civicrm-core/pull/21394))**
+- **[REF] Extract domain tokens to their own class
+  ([21510](https://github.com/civicrm/civicrm-core/pull/21510))**
 
-- **SearchKit - Filter search listing by creator ([21388](https://github.com/civicrm/civicrm-core/pull/21388))**
+- **[REF] add test & static array to participant values tokens
+  ([21476](https://github.com/civicrm/civicrm-core/pull/21476))**
 
-- **[NFC] Put back email test without tokens and enhance a little ([21398](https://github.com/civicrm/civicrm-core/pull/21398))**
+- **[REF] simplify member_tokens
+  ([21481](https://github.com/civicrm/civicrm-core/pull/21481))**
 
-- **Fix Upgrade step to ensure all fields are converted correctly as well ([21396](https://github.com/civicrm/civicrm-core/pull/21396))**
+- **[Ref] Cleanup on SelectValues::contributeTokens
+  ([21465](https://github.com/civicrm/civicrm-core/pull/21465))**
 
-- **dev/core#2823 Make protected functions non-static ([21395](https://github.com/civicrm/civicrm-core/pull/21395))**
+- **[Ref] Remove pass-by-reference
+  ([21466](https://github.com/civicrm/civicrm-core/pull/21466))**
 
-- **Import csv-Fix not importing extension in phones ([20995](https://github.com/civicrm/civicrm-core/pull/20995))**
+- **[Ref] Remove unnecessary pass-by-reference
+  ([21463](https://github.com/civicrm/civicrm-core/pull/21463))**
 
-- **dev/core#2772 - Don't crash for custom fields of type int that are multi-select ([21186](https://github.com/civicrm/civicrm-core/pull/21186))**
+- **[REF] Use OO when determining what to suggest for settings.php prefixes for
+  drupal/backdrop views, instead of scattered "if cms =="
+  ([21042](https://github.com/civicrm/civicrm-core/pull/21042))**
 
-- **[REF] Update Product Create to use hooks and also switch the manage p… ([20822](https://github.com/civicrm/civicrm-core/pull/20822))**
+- **[REF] Remove unused parameter
+  ([21448](https://github.com/civicrm/civicrm-core/pull/21448))**
 
-- **[REF] Add in upgrade step to align the relationship cache table colla… ([21389](https://github.com/civicrm/civicrm-core/pull/21389))**
+- **[REF] Remove unused variable
+  ([21451](https://github.com/civicrm/civicrm-core/pull/21451))**
 
-- **dev/core#2817 towards deprecating legacy `replaceCaseTokens` ([21380](https://github.com/civicrm/civicrm-core/pull/21380))**
+- **[REF] Extract code to load the contact in tokenCompat
+  ([21450](https://github.com/civicrm/civicrm-core/pull/21450))**
 
-- **[NFC] Extend send email test to cover for contact tokens being replaced ([21386](https://github.com/civicrm/civicrm-core/pull/21386))**
+- **[REF] Extract function to getDomainTokens
+  ([21416](https://github.com/civicrm/civicrm-core/pull/21416))**
 
-- **[NFC] Add in type hints to template upgrade functions ([21390](https://github.com/civicrm/civicrm-core/pull/21390))**
+- **[REF] Remove cruft
+  ([21418](https://github.com/civicrm/civicrm-core/pull/21418))**
 
-- **Don't specify character set for civicrm_relationship_cache table ([21382](https://github.com/civicrm/civicrm-core/pull/21382))**
+- **[REF] Extract code to get the from address for a recurring contribution.
+  ([21357](https://github.com/civicrm/civicrm-core/pull/21357))**
 
-- **dev/core#2814 Fix activity:sendEmail follow up ([21385](https://github.com/civicrm/civicrm-core/pull/21385))**
+- **[Ref] Remove no-longer-used variables
+  ([21459](https://github.com/civicrm/civicrm-core/pull/21459))**
 
-- **Change Do Not SMS privacy icon ([21354](https://github.com/civicrm/civicrm-core/pull/21354))**
+- **[REF] Update Frequenecy template assignments in UpdateBilling to be
+  consistent with #21469
+  ([21635](https://github.com/civicrm/civicrm-core/pull/21635))**
 
-- **dev/core#2814 Fix membership pdf to use renderTemplate ([21379](https://github.com/civicrm/civicrm-core/pull/21379))**
+- **[REF] Update Product Create to use hooks and also switch the manage
+  product/premium page to use APIv4 Product Entity
+  ([20822](https://github.com/civicrm/civicrm-core/pull/20822))**
 
-- **dev/core#2793 - Add REGEXP/NOT REGEXP SQL operators ([21288](https://github.com/civicrm/civicrm-core/pull/21288))**
+- **[REF] Add in upgrade step to align the relationship cache table collation
+  and charset with the other tables
+  ([21389](https://github.com/civicrm/civicrm-core/pull/21389))**
 
-- **Remove requirement to enter email address on Opt Out ([21350](https://github.com/civicrm/civicrm-core/pull/21350))**
+- **[REF] stop passing form into createActivities
+  ([21653](https://github.com/civicrm/civicrm-core/pull/21653))**
 
-- **Remove requirement to enter email address on unsubscribe ([21175](https://github.com/civicrm/civicrm-core/pull/21175))**
+- **[REF] Extract function for re-use
+  ([21778](https://github.com/civicrm/civicrm-core/pull/21778))**
 
-- **dev/core#2715 Move 2 more functions to financial processor class ([21370](https://github.com/civicrm/civicrm-core/pull/21370))**
+- **[REF] Move getCustomFieldTokens to the tokens class, annotate more
+  deprecations ([21660](https://github.com/civicrm/civicrm-core/pull/21660))**
 
-- **[REF] Cleanup BAO::del() functions with unnecessary FK checks (dev/core#2757) ([21199](https://github.com/civicrm/civicrm-core/pull/21199))**
+- **Update contributors for Third Sector Design
+  ([21516](https://github.com/civicrm/civicrm-core/pull/21516))**
 
-- **dev/core#2814 Fix activity:sendSMS to use renderTemplate ([21377](https://github.com/civicrm/civicrm-core/pull/21377))**
+- **[NFC/Unit test] - Fix test fail on php 7.4
+  CRM_Core_BAO_MessageTemplateTest::testCaseActivityCopyTemplate
+  ([21443](https://github.com/civicrm/civicrm-core/pull/21443))**
 
-- **dev/core#2814 Fix test to use renderTemplate ([21378](https://github.com/civicrm/civicrm-core/pull/21378))**
+- **[NFC/Unit Test] Remove wombats and bananas from
+  sites/default/files/civicrm/custom
+  ([21768](https://github.com/civicrm/civicrm-core/pull/21768))**
 
-- **SearchKit - enable tags for Saved Searches ([21376](https://github.com/civicrm/civicrm-core/pull/21376))**
+- **[NFC/Unit test] - Fix secondary issue with case token consistency test
+  ([21369](https://github.com/civicrm/civicrm-core/pull/21369))**
 
-- **[REF] Extract code to get the from address for a recurring contribution. ([21357](https://github.com/civicrm/civicrm-core/pull/21357))**
+- **Authx: README: add note about CMS permissions
+  ([21439](https://github.com/civicrm/civicrm-core/pull/21439))**
 
-- **[REF] dev/core#2790 Move pdf getFileName functionality to the trait ([21366](https://github.com/civicrm/civicrm-core/pull/21366))**
+- **[NFC] Add test for new case email url
+  ([21766](https://github.com/civicrm/civicrm-core/pull/21766))**
 
-- **dev/core#2814 Fix activity:sendEmail to use renderTemplate ([21365](https://github.com/civicrm/civicrm-core/pull/21365))**
+- **[NFC] Afform - Add array shape annotations to FormDataModel
+  ([21765](https://github.com/civicrm/civicrm-core/pull/21765))**
 
-- **dev/core#2814 migrate export processor to use MessageRender ([21367](https://github.com/civicrm/civicrm-core/pull/21367))**
+- **[NFC] Unit test fixes for the problem of quickform rules going missing
+  ([21725](https://github.com/civicrm/civicrm-core/pull/21725))**
 
-- **dev/core#2814 Fix profile edit to use messagetemplate:render ([21364](https://github.com/civicrm/civicrm-core/pull/21364))**
+- **NFC - Update code comments
+  ([21675](https://github.com/civicrm/civicrm-core/pull/21675))**
 
-- **[REF] dev/core#2790 dev/core#2814 Start migration to MessageTemplate::render ([21335](https://github.com/civicrm/civicrm-core/pull/21335))**
+- **[NFC] Unit test for file-on-case
+  ([21678](https://github.com/civicrm/civicrm-core/pull/21678))**
 
-- **Fix test to test trait not deprecated function ([21373](https://github.com/civicrm/civicrm-core/pull/21373))**
+- **[NFC] [test] minor cleanup in test
+  ([21498](https://github.com/civicrm/civicrm-core/pull/21498))**
 
-- **Update use of CRM_Utils_System::setTitle() for legacycustomsearches ([21375](https://github.com/civicrm/civicrm-core/pull/21375))**
+- **[NFC] Fix Fatal error on php 8 due to mis matched function declaration
+  ([21487](https://github.com/civicrm/civicrm-core/pull/21487))**
 
-- **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle() part 4 ([21368](https://github.com/civicrm/civicrm-core/pull/21368))**
+- **[NFC] Put back email test without tokens and enhance a little
+  ([21398](https://github.com/civicrm/civicrm-core/pull/21398))**
 
-- **Remove deprecated input variable ([21372](https://github.com/civicrm/civicrm-core/pull/21372))**
+- **[NFC] Extend send email test to cover for contact tokens being replaced
+  ([21386](https://github.com/civicrm/civicrm-core/pull/21386))**
 
-- **Remove unused private function ([21371](https://github.com/civicrm/civicrm-core/pull/21371))**
+- **[NFC] Add in type hints to template upgrade functions
+  ([21390](https://github.com/civicrm/civicrm-core/pull/21390))**
 
-- **dev/translation#71 getFullMonthNames: do not rely on the OS for translation ([21157](https://github.com/civicrm/civicrm-core/pull/21157))**
+- **NFC Clarify description for ckeditor4 plugin
+  ([21349](https://github.com/civicrm/civicrm-core/pull/21349))**
 
-- **[NFC/Unit test] - Fix secondary issue with case token consistency test ([21369](https://github.com/civicrm/civicrm-core/pull/21369))**
+- **Improve test readability, use schema labels for membership tokens
+  ([21708](https://github.com/civicrm/civicrm-core/pull/21708))**
 
-- **Add SqlFunction support in addWhere  ([21301](https://github.com/civicrm/civicrm-core/pull/21301))**
+- **Add test to cancel subscription form
+  ([21588](https://github.com/civicrm/civicrm-core/pull/21588))**
 
-- **SearchKit - Add 'array' option to download API and add test ([21363](https://github.com/civicrm/civicrm-core/pull/21363))**
+- **Fix test to test trait not deprecated function
+  ([21373](https://github.com/civicrm/civicrm-core/pull/21373))**
 
-- **dev/core#2715 [REF] Move another 2 functions to the financial processor class ([20985](https://github.com/civicrm/civicrm-core/pull/20985))**
+- **Fix test
+  ([21585](https://github.com/civicrm/civicrm-core/pull/21585))**
 
-- **Remove deprecated function ([21361](https://github.com/civicrm/civicrm-core/pull/21361))**
+- **Tests -  update to use postProcess
+  ([21637](https://github.com/civicrm/civicrm-core/pull/21637))**
 
-- **[REF] dev/core#2790 Follow on on code move, make not static ([21359](https://github.com/civicrm/civicrm-core/pull/21359))**
+- **Basic IDE cleanup on test class
+  ([21661](https://github.com/civicrm/civicrm-core/pull/21661))**
 
-- **dev/core#2486 Add survey v4 api ([21355](https://github.com/civicrm/civicrm-core/pull/21355))**
+- **Test fix
+  ([21662](https://github.com/civicrm/civicrm-core/pull/21662))**
 
-- **Remove testing hack ([21360](https://github.com/civicrm/civicrm-core/pull/21360))**
+- **tests/events/*.php - Enforce general compliance with hook/event signatures
+  ([21615](https://github.com/civicrm/civicrm-core/pull/21615))**
 
-- **Remove deprecated function ([21358](https://github.com/civicrm/civicrm-core/pull/21358))**
+- **HttpTestTrait - Allow one to easily authenticate subrequests
+  ([21261](https://github.com/civicrm/civicrm-core/pull/21261))**
 
-- **[REF] Fix form to call this->setTitle() ([21362](https://github.com/civicrm/civicrm-core/pull/21362))**
+- **Test regression fix
+  ([21649](https://github.com/civicrm/civicrm-core/pull/21649))**
 
-- **activity import: prepend custom group title to custom fields ([21318](https://github.com/civicrm/civicrm-core/pull/21318))**
+- **Test tearDown fixes
+  ([21548](https://github.com/civicrm/civicrm-core/pull/21548))**
 
-- **[REF] Deprecate 2 del() functions in favor of generics and hooks (dev/core#2757) ([21210](https://github.com/civicrm/civicrm-core/pull/21210))**
+- **Convert more tests to call postProcess
+  ([21628](https://github.com/civicrm/civicrm-core/pull/21628))**
 
-- **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle() part 3 ([21352](https://github.com/civicrm/civicrm-core/pull/21352))**
+- **Stop testing for gender_id output that was described as 'legacy' years ago
+  ([21558](https://github.com/civicrm/civicrm-core/pull/21558))**
 
-- **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle() part 2 ([21202](https://github.com/civicrm/civicrm-core/pull/21202))**
+- **Test cleanup
+  ([21622](https://github.com/civicrm/civicrm-core/pull/21622))**
 
-- **NFC Clarify description for ckeditor4 plugin ([21349](https://github.com/civicrm/civicrm-core/pull/21349))**
+- **Fix test to use postProcess
+  ([21630](https://github.com/civicrm/civicrm-core/pull/21630))**
 
-- **dev/core#2716 [REF] Stop 'distributing' the main flow ([20856](https://github.com/civicrm/civicrm-core/pull/20856))**
+- **Test cleanup -convert to use postProcess
+  ([21629](https://github.com/civicrm/civicrm-core/pull/21629))**
 
-- **[REF] Do not set input['line_item'] pointlessly ([21311](https://github.com/civicrm/civicrm-core/pull/21311))**
+- **Add test and fix for API4 failing to decode strings stored as HTML
+  ([21549](https://github.com/civicrm/civicrm-core/pull/21549))**
 
-- **dev/core#1618 Trigger a reconciliation of logging tables after Extens… ([21135](https://github.com/civicrm/civicrm-core/pull/21135))**
+- **Initial test on event tokens
+  ([21563](https://github.com/civicrm/civicrm-core/pull/21563))**
 
-- **#13 - Contact Image uploaded from Drupal Webform don't render on Drup… ([524](https://github.com/civicrm/civicrm-drupal/pull/524))**
+- **Cleanup on test tear downs
+  ([21552](https://github.com/civicrm/civicrm-core/pull/21552))**
 
-- **Add deduping to Quick Add Dashboard Widget ([256](https://github.com/civicrm/civicrm-wordpress/pull/256))**
+- **Attempt to fix test site 500 errors on activity pdf
+  ([21504](https://github.com/civicrm/civicrm-core/pull/21504))**
 
-- **Fix generating civicrm.settings.php by ensuring that CMSdbSSL and dbS… ([63](https://github.com/civicrm/civicrm-joomla/pull/63))**
+- **(NFC) TokenConsistencyTest - Add some examples of HTML escaping
+  ([21837](https://github.com/civicrm/civicrm-core/pull/21837))**
 
-## <a name="misc"></a>Miscellany
+- **[REF] Fix PDF Test failure on php versions 7.4 and later
+  ([21866](https://github.com/civicrm/civicrm-core/pull/21866))**
 
 ## <a name="credits"></a>Credits
 
 This release was developed by the following code authors:
 
-AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; Andy Burns; Benjamin W; Christian Wach; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Digitalcourage - Detlev Sieber; Francesc Bassas i Bullich; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; iXiam - Rubén Pineda; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie McClelland; Third Sector Design - Kurund Jalmi, Michael McAndrew, William Mortada; Valéry Gouleau; Wikimedia Foundation - Eileen McNaughton
+AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; Andy
+Burns; Benjamin W; Christian Wach; CiviCoop - Jaap Jansma; CiviCRM - Coleman
+Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy;
+Dave D; Digitalcourage - Detlev Sieber; Francesc Bassas i Bullich; Fuzion -
+Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; iXiam -
+Rubén Pineda; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth;
+Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology
+Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology
+Project - Jamie McClelland; Third Sector Design - Kurund Jalmi, Michael
+McAndrew, William Mortada; Valéry Gouleau; Wikimedia Foundation - Eileen
+McNaughton
 
 Most authors also reviewed code for this release; in addition, the following
 reviewers contributed their comments:
 
-AGH Strategies - Andie Hunt, Eli Lisseck; Agileware - Justin Freeman; Artful Robot - Rich Lott; awestuk; Black Brick Software - David Hayes; Christian Wach; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Josh Gowans, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Omar Abu Hussein; Coop SymbioTIC - Mathieu Lutfy; Dave D; Francesc Bassas i Bullich; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Lemniscus - Noah Miller; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; OPEN - dewy; Progressive Technology Project - Jamie McClelland; rbaugh; Richard van Oosterhout; Semper IT - Karin Gerritsen; Skvare - Mark Hanna; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi, William Mortada; Wikimedia Foundation - Eileen McNaughton
+AGH Strategies - Eli Lisseck; Artful Robot - Rich Lott; Black Brick Software -
+David Hayes; CiviCRM - Josh Gowans; CiviDesk - Yashodha Chaku; CompuCorp - Omar
+Abu Hussein; Freeform Solutions - Herb van den Dool; Humanists UK - Andrew West;
+Lemniscus - Noah Miller; OPEN - dewy; Richard Baugh; Richard van Oosterhout;
+Semper IT - Karin Gerritsen; Skvare - Mark Hanna; Squiffle Consulting - Aidan
+Saunders; Tadpole Collective - Kevin Cristiano
 
 ## <a name="feedback"></a>Feedback
 
 These release notes are edited by Alice Frumin and Andie Hunt.  If you'd like
 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
 and contact `@agh1`.
-