- **[Credits](#credits)**
- **[Feedback](#feedback)**
-## <a name="features"></a>Features
+## <a name="synopsis"></a>Synopsis
+
+| *Does this version...?* | |
+|:--------------------------------------------------------------- |:-------:|
+| 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="bugs"></a>Bugs resolved
+## <a name="features"></a>Features
### Core CiviCRM
-- **dev/core#1784 fix regression on restore contacts button not working. ([17418](https://github.com/civicrm/civicrm-core/pull/17418))**
+- **Create nl_BE translation
+ ([dev/translation#4](https://lab.civicrm.org/dev/translation/-/issues/4):
+ [17048](https://github.com/civicrm/civicrm-core/pull/17048),
+ [17027](https://github.com/civicrm/civicrm-core/pull/17027) and
+ [16966](https://github.com/civicrm/civicrm-core/pull/16966))**
-- **Fixes a regression when cancelling a recurring with no processor_id ([17292](https://github.com/civicrm/civicrm-core/pull/17292))**
+ Adds a "Dutch (Belgium)" (shorthand: nl_BE) translation of CiviCRM which
+ heavily borrows from the existing "Dutch (Netherlands)" (nl_NL) translation
+ with a few changes.
-- **Remove "page=CiviCRM" query string from WordPress front-end (5.26) ([17352](https://github.com/civicrm/civicrm-core/pull/17352))**
+- **APIv4 - Allow field options to be returned in multiple formats
+ ([17167](https://github.com/civicrm/civicrm-core/pull/17167))**
-- **Revert "[REF] Code readability changes on activity tokens." ([17365](https://github.com/civicrm/civicrm-core/pull/17365))**
+ Gives more flexibility about how options are returned from APIv4 and adds
+ visibility in the API explorer.
-- **[REF] Fix install on Drupal 8 using new setup code ([17334](https://github.com/civicrm/civicrm-core/pull/17334))**
+- **APIv4 - how do I interact with option values???
+ ([dev/core#1705](https://lab.civicrm.org/dev/core/-/issues/1705):
+ [17158](https://github.com/civicrm/civicrm-core/pull/17158),
+ [17138](https://github.com/civicrm/civicrm-core/pull/17138) and
+ [17219](https://github.com/civicrm/civicrm-core/pull/17219))**
-- **dev/core#1681 Add in deprecation notice for Systems using MySQL versions before 5.7 and require 5.5 for install ([17261](https://github.com/civicrm/civicrm-core/pull/17261))**
+ Adds support for pseudoconstants to APIv4.
-- **[regression] Fix error on no MIME type ([17265](https://github.com/civicrm/civicrm-core/pull/17265))**
+- **Add MessageTemplate api to v4
+ ([17073](https://github.com/civicrm/civicrm-core/pull/17073))**
-- **SyntaxConformanceTest::testSqlOperators - Fix failure on MySQL 8 ([17262](https://github.com/civicrm/civicrm-core/pull/17262))**
+ Adds new "MessageTemplate" entity to APIv4.
-- **Add workflow_name column to civicrm_msg_template, deprecate workflow_id ([17227](https://github.com/civicrm/civicrm-core/pull/17227))**
+- **APIv4 - Add support for HAVING clause
+ ([17015](https://github.com/civicrm/civicrm-core/pull/17015))**
-- **[NFC/Test] - Fix typo in `if` statement that seems intended as a workaround ([17258](https://github.com/civicrm/civicrm-core/pull/17258))**
+ Adds support for using HAVING clauses in APIv4.
-- **5.25 ([17252](https://github.com/civicrm/civicrm-core/pull/17252))**
+- **APIv4 Query Improvements (Work Towards
+ [dev/report#31](https://lab.civicrm.org/dev/report/-/issues/31):
+ [17113](https://github.com/civicrm/civicrm-core/pull/17113) and
+ [17047](https://github.com/civicrm/civicrm-core/pull/17047))**
-- **E2E_Core_HookTest - Fix test failure due to leak ([17251](https://github.com/civicrm/civicrm-core/pull/17251))**
+ Adds UI support for new APIv4 features specifically, SQL functions and aliases
+ are now available in the API explorer, as is the HAVING clause and GROUP BY
+ clause.
-- **5.25 ([17248](https://github.com/civicrm/civicrm-core/pull/17248))**
+- **End of life planning for MySQL server 5.0 - 5.6 (Work Towards
+ [dev/core#1681](https://lab.civicrm.org/dev/core/-/issues/1681):
+ [17261](https://github.com/civicrm/civicrm-core/pull/17261))**
-- **5.25 ([17243](https://github.com/civicrm/civicrm-core/pull/17243))**
+ Adds a deprecation notice for Systems using MySQL versions before 5.7 and
+ requires 5.5 to install.
-- **dev/core#1739 Enable Longitude on Address editing by default (option 12) ([17238](https://github.com/civicrm/civicrm-core/pull/17238))**
+- **allow inline help text title to be overriden
+ ([dev/core#1693](https://lab.civicrm.org/dev/core/-/issues/1693):
+ [16998](https://github.com/civicrm/civicrm-core/pull/16998))**
-- **APIv4 - Fix schema map to use canonical field names ([17239](https://github.com/civicrm/civicrm-core/pull/17239))**
+ Makes it possible to override inline help text titles.
-- **(REF) dev/core#1744 - Cleanup event naming ([17240](https://github.com/civicrm/civicrm-core/pull/17240))**
+- **Update attachment message on mailing form. .
+ ([dev/core#1696](https://lab.civicrm.org/dev/core/-/issues/1696):
+ [17024](https://github.com/civicrm/civicrm-core/pull/17024))**
-- **5.25 ([17236](https://github.com/civicrm/civicrm-core/pull/17236))**
+ Adds more help text to the attachment field on the mailing form.
-- **dev/core#1742 Expose CiviCRM Database details for views configuration… ([17232](https://github.com/civicrm/civicrm-core/pull/17232))**
+- **Allow override of inherited CMS language when in CiviCRM
+ ([17006](https://github.com/civicrm/civicrm-core/pull/17006))**
-- **[REF] [Test] IDE cleanup on ReportTemplateTest ([17197](https://github.com/civicrm/civicrm-core/pull/17197))**
+ Makes it possible to override the CMS langhage when in CiviCRM.
-- **Reporting #20 - correct stats when force=1 on Contribution Detail Report ([17234](https://github.com/civicrm/civicrm-core/pull/17234))**
+- **Convert bcc field to use an entity reference.
+ ([17064](https://github.com/civicrm/civicrm-core/pull/17064))**
-- **[REF] Simplify non-creditcard participant.create ([16584](https://github.com/civicrm/civicrm-core/pull/16584))**
+ Changes the bcc field on all email forms to use an entity reference
+ field. This simplifies the code and extends filtering on the field.
-- **dev/core#57 On Behalf Of fails to populate in Email Receipt ([17026](https://github.com/civicrm/civicrm-core/pull/17026))**
+- **Switch cc field on emailTrait to use entity reference
+ ([17129](https://github.com/civicrm/civicrm-core/pull/17129))**
-- **APIv4 - Deprecate option_value joins and display notices in Explorer ([17235](https://github.com/civicrm/civicrm-core/pull/17235))**
+ Changes the cc field on all email forms to use an entity reference
+ field. This simplifies the code and extends filtering on the field.
-- **(REF,NFC) TokenProcessor - Minor DX improvements ([17231](https://github.com/civicrm/civicrm-core/pull/17231))**
+- **Introduce "civi.dao.preUpdate" and "civi.dao.preInsert" events
+ ([dev/core#1638](https://lab.civicrm.org/dev/core/-/issues/1638):
+ [16714](https://github.com/civicrm/civicrm-core/pull/16714))**
-- **[REF] Permit domain tokens being used within Thank You letters ([17230](https://github.com/civicrm/civicrm-core/pull/17230))**
+ Makes it possible to use a hook to inspect the data of an Option Value prior
+ to it being created or updated.
-- **Convert fatals to statusBounces in case forms ([17212](https://github.com/civicrm/civicrm-core/pull/17212))**
+- **Add ID to custom group/field admin forms
+ ([17055](https://github.com/civicrm/civicrm-core/pull/17055))**
-- **(REF) CRM_Utils_Hook - Remove deprecated formulations of `invoke(int,…)` ([17124](https://github.com/civicrm/civicrm-core/pull/17124))**
+ Exposes custom field/group IDs on admin forms.
-- **dev/core#1460, dev/core#1713 - Categorical fix for upgrade<=>hook issues ([17126](https://github.com/civicrm/civicrm-core/pull/17126))**
+- **Improve AngularJS performance with one-time binding for static strings
+ ([17050](https://github.com/civicrm/civicrm-core/pull/17050))**
-- **Allow override of inherited CMS language when in CiviCRM ([17006](https://github.com/civicrm/civicrm-core/pull/17006))**
+ Improves performance of AngularJS forms.
-- **dev/mail#62 - Mailing Error when civicrm_mailing_group has duplicate … ([17130](https://github.com/civicrm/civicrm-core/pull/17130))**
+- **Allow setting metadata to use the `table` option. Update example setting
+ `default_invoice_page`.
+ ([16903](https://github.com/civicrm/civicrm-core/pull/16903))**
-- **[REF] Switch CRM_Utils_Array::value to empty in conditionals ([17091](https://github.com/civicrm/civicrm-core/pull/17091))**
+ Adds a new option to setting metadata "table" and an example of how tot use
+ it.
-- **Further removal of long-deprecated skipCleanMoney ([17175](https://github.com/civicrm/civicrm-core/pull/17175))**
+- **Add / make fit for purpose email.getlist api call
+ ([16993](https://github.com/civicrm/civicrm-core/pull/16993))**
-- **[REF] Minor code cleanup ([17225](https://github.com/civicrm/civicrm-core/pull/17225))**
+ Improves the `Email.getlist` API so that it is usable for entity reference
+ fields.
-- **APIv4 - Deprecate old way of retrieving activityType/optionValue ids ([17219](https://github.com/civicrm/civicrm-core/pull/17219))**
+### CiviCase
-- **[REF] Minor code cleanup. ([17222](https://github.com/civicrm/civicrm-core/pull/17222))**
+- **Add email link in case summary
+ ([16959](https://github.com/civicrm/civicrm-core/pull/16959))**
-- **[NFC] Test cleanup ([17224](https://github.com/civicrm/civicrm-core/pull/17224))**
+ Adds an "Email" icon to the Case Summary page that when clicked opens a pop up
+ window to email the client.
-- **Fix admin page url for "conference slots" option values ([17223](https://github.com/civicrm/civicrm-core/pull/17223))**
+### CiviContribute
-- **5.25 ([17221](https://github.com/civicrm/civicrm-core/pull/17221))**
+- **Add contribution source to recurring contribution report
+ ([17187](https://github.com/civicrm/civicrm-core/pull/17187))**
-- **dev/core#1460 - Small cleanups in CiviEventDispatcher{,Test} ([17216](https://github.com/civicrm/civicrm-core/pull/17216))**
+ Adds "Contribution Source" as a column on the Recurring Contribution Report.
-- **5.25 ([17217](https://github.com/civicrm/civicrm-core/pull/17217))**
+- **Show email receipt status on view recurring contribution
+ ([17177](https://github.com/civicrm/civicrm-core/pull/17177))**
-- **[REF] Reduce boilerplate code in BAO add/create functions ([17172](https://github.com/civicrm/civicrm-core/pull/17172))**
+ When viewing a contribution this change exposes the value of
+ `is_email_receipt`.
-- **[REF] Minor cleanup around action schedule code. ([17151](https://github.com/civicrm/civicrm-core/pull/17151))**
+- **Add contributor email address to cancelSubscription form so it is clear who
+ will be notified
+ ([16716](https://github.com/civicrm/civicrm-core/pull/16716))**
-- **[NFC][Test] Preliminary cleanup ([17213](https://github.com/civicrm/civicrm-core/pull/17213))**
+ Adds the contributor email to the Cancel Recurring Contribution form so it is
+ clear who will be notified.
-- **Cleanup and throw exceptions in OpenCase form ([17184](https://github.com/civicrm/civicrm-core/pull/17184))**
+- **add filter and sorting for receipt date in contribution report
+ ([17044](https://github.com/civicrm/civicrm-core/pull/17044) and
+ [16994](https://github.com/civicrm/civicrm-core/pull/16994))**
-- **(NFC) Remove $Id$ artifacts from old SCM ([17211](https://github.com/civicrm/civicrm-core/pull/17211))**
+ Adds a filter and sorting for "receipt date" to Contribution Reports.
-- **Cleanup core pseudoconstant buildOptions ([17122](https://github.com/civicrm/civicrm-core/pull/17122))**
+- **Capitalise PAN truncation
+ ([16973](https://github.com/civicrm/civicrm-core/pull/16973) and
+ [16964](https://github.com/civicrm/civicrm-core/pull/16964))**
-- **APIv4 - Allow field options to be returned in multiple formats ([17167](https://github.com/civicrm/civicrm-core/pull/17167))**
+ Capitilizes the "PAN" in "Pan Truncation" to improve user experience. PAN is
+ an acronym for Primary Account Number (credit card number).
-- **[REF] Cleanup a few instances where we use old call to get loggedInUserID ([17196](https://github.com/civicrm/civicrm-core/pull/17196))**
+### CiviMail
-- **5.25 ([17209](https://github.com/civicrm/civicrm-core/pull/17209))**
+- **Mailing Report: hide the HTML preview
+ ([16899](https://github.com/civicrm/civicrm-core/pull/16899))**
-- **5.25 ([17207](https://github.com/civicrm/civicrm-core/pull/17207))**
+ Improves the Mailing report by hiding the HTML preview because it was too
+ short to be helpful to begin with.
-- **5.25 ([17201](https://github.com/civicrm/civicrm-core/pull/17201))**
+## <a name="bugs"></a>Bugs resolved
-- **Move batch-form support code back to the form ([17176](https://github.com/civicrm/civicrm-core/pull/17176))**
+### Core CiviCRM
-- **[REF] Simplify determination of enabled components ([17195](https://github.com/civicrm/civicrm-core/pull/17195))**
+- **How best to handle Event Dispatchers during upgrade (Work Towards
+ [dev/core#1460](https://lab.civicrm.org/dev/core/-/issues/1460):
+ [17127](https://github.com/civicrm/civicrm-core/pull/17127) and
+ [17216](https://github.com/civicrm/civicrm-core/pull/17216))**
-- **5.25 ([17199](https://github.com/civicrm/civicrm-core/pull/17199))**
+ This updates the `CiviEventDispatcher` with a method `setDispatchPolicy()`
+ that can be used to dynamically toggle support for specific events/hooks and
+ updates a related test.
-- **[REF] stop overriding postProcess function in activity report detail ([17194](https://github.com/civicrm/civicrm-core/pull/17194))**
+- **After core upgrade, extension routes unavailable
+ ([dev/core#1460](https://lab.civicrm.org/dev/core/-/issues/1460) and
+ [dev/core#1713](https://lab.civicrm.org/dev/core/-/issues/1713)
+ [17126](https://github.com/civicrm/civicrm-core/pull/17126))**
-- **[REF] Reconcile CRM_Utils_System::getUrlPath and CRM_Utils_System::currentPath ([17068](https://github.com/civicrm/civicrm-core/pull/17068))**
+- **Report Dev tab display SQL multiple times
+ ([dev/core#1673](https://lab.civicrm.org/dev/core/-/issues/1673):
+ [17001](https://github.com/civicrm/civicrm-core/pull/17001))**
-- **Fix Dedupe entity_tag mangling bug ([17125](https://github.com/civicrm/civicrm-core/pull/17125))**
+- **Namespaced classes cannot contain an underscore
+ ([dev/core#1684](https://lab.civicrm.org/dev/core/-/issues/1684):
+ [17105](https://github.com/civicrm/civicrm-core/pull/17105))**
-- **Add contribution source to recurring contribution report ([17187](https://github.com/civicrm/civicrm-core/pull/17187))**
+ Allows underscores in class names.
-- **Gitlab issue template - Ask for link to stackexchange or chat conversations ([17186](https://github.com/civicrm/civicrm-core/pull/17186))**
+- **Search builder returns DB error on Group => Empty filter
+ ([dev/core#1685](https://lab.civicrm.org/dev/core/-/issues/1685):
+ [16953](https://github.com/civicrm/civicrm-core/pull/16953))**
-- **Remove deprecated calls to optionValueQuery and no-longer-need param ([17182](https://github.com/civicrm/civicrm-core/pull/17182))**
+- **Financial ACL Report check always fails
+ ([dev/core#1700](https://lab.civicrm.org/dev/core/-/issues/1700):
+ [17046](https://github.com/civicrm/civicrm-core/pull/17046))**
-- **Show email receipt status on view recurring contribution ([17177](https://github.com/civicrm/civicrm-core/pull/17177))**
+ Ensures that if Finacial Type ACL's are enabled and the extension
+ `biz.jmaconsulting.financialaclreport` is installed the warning that you need
+ to install the extension is not displayed.
-- **dev/core#1460 - CiviEventDispatcher - Add policy options ([17127](https://github.com/civicrm/civicrm-core/pull/17127))**
+- **Longitude not checked out of box
+ ([dev/core#1739](https://lab.civicrm.org/dev/core/-/issues/1739):
+ [17238](https://github.com/civicrm/civicrm-core/pull/17238))**
-- **Switch cc field on emailTrait to use entity reference ([17129](https://github.com/civicrm/civicrm-core/pull/17129))**
+ Enables the Longitude field on Address Editing by default for new installs.
-- **show title on status message instead machine name ([17174](https://github.com/civicrm/civicrm-core/pull/17174))**
+- **Contact restore from trash not working
+ ([dev/core#1784](https://lab.civicrm.org/dev/core/-/issues/1784):
+ [17418](https://github.com/civicrm/civicrm-core/pull/17418))**
-- **dev/wp#46 - Remove styling that attempts to make inputs match select2 ([16882](https://github.com/civicrm/civicrm-core/pull/16882))**
+- **[regression] Fix error on no MIME type
+ ([17265](https://github.com/civicrm/civicrm-core/pull/17265))**
-- **Refactor api3 Payment.Get API to support options + most fields in civicrm_financial_trxn ([17071](https://github.com/civicrm/civicrm-core/pull/17071))**
+ Fixes `TypeError: Argument 1 passed to
+ MimeTyper\Repository\AbstractRepository::setFromMap() must be of the type
+ array, null given` error.
-- **5.25 to master ([17173](https://github.com/civicrm/civicrm-core/pull/17173))**
+- **SyntaxConformanceTest::testSqlOperators - Fix failure on MySQL 8
+ ([17262](https://github.com/civicrm/civicrm-core/pull/17262))**
-- **Remove unused parameter, immediately overwritten parameter ([17131](https://github.com/civicrm/civicrm-core/pull/17131))**
+- **API explorer fatal joining to contribution from contact
+ ([dev/core#1563](https://lab.civicrm.org/dev/core/-/issues/1563):
+ [17239](https://github.com/civicrm/civicrm-core/pull/17239))**
-- **Do not create smarty cached templates for processed greetings ([16733](https://github.com/civicrm/civicrm-core/pull/16733))**
+- **APIv4 - Prevent field alias conflicts.
+ ([17109](https://github.com/civicrm/civicrm-core/pull/17109))**
-- **5.25 ([17171](https://github.com/civicrm/civicrm-core/pull/17171))**
+- **APIv4 - Fix setting offset with no limit
+ ([17063](https://github.com/civicrm/civicrm-core/pull/17063))**
-- **OptionValue - Use DB defaults instead of setting them in BAO::add ([17170](https://github.com/civicrm/civicrm-core/pull/17170))**
+- **Fix admin page url for "conference slots" option values
+ ([17223](https://github.com/civicrm/civicrm-core/pull/17223))**
-- **[REF] APIv4 - Enforce contact field permissions via metadata ([17168](https://github.com/civicrm/civicrm-core/pull/17168))**
+- **Fix Dedupe entity_tag mangling bug
+ ([17125](https://github.com/civicrm/civicrm-core/pull/17125))**
-- **Add contribution id as activity source record when downloading or emailing invoice ([17165](https://github.com/civicrm/civicrm-core/pull/17165))**
+ Fixes a bug whereby the merge script alters non-contact entity tags, changing
+ the entity they are related to.
-- **Correct option_group pseudoconstant and regenerate dao ([17166](https://github.com/civicrm/civicrm-core/pull/17166))**
+- **show title on status message instead of machine name
+ ([17174](https://github.com/civicrm/civicrm-core/pull/17174))**
-- **[REF] Code readability changes on activity tokens. ([17161](https://github.com/civicrm/civicrm-core/pull/17161))**
+- **Do not create smarty cached templates for processed greetings
+ ([16733](https://github.com/civicrm/civicrm-core/pull/16733))**
-- **Less svn ([17159](https://github.com/civicrm/civicrm-core/pull/17159))**
+- **Add contribution id as activity source record when downloading or emailing
+ invoice ([17165](https://github.com/civicrm/civicrm-core/pull/17165))**
-- **[REF] Minor extraction ([17160](https://github.com/civicrm/civicrm-core/pull/17160))**
+ Ensures that the Activity Source ID field is populated correctly for
+ Activities of the type "Emailed Invoice" and "Downloaded Invoice".
-- **OptionValues - Munge custom value names and return names in validate context ([17158](https://github.com/civicrm/civicrm-core/pull/17158))**
+- **Correct option_group pseudoconstant and regenerate dao
+ ([17166](https://github.com/civicrm/civicrm-core/pull/17166))**
-- **[NFC] Superficial code clean up ([17155](https://github.com/civicrm/civicrm-core/pull/17155))**
+ Fixes metadata for option_group pseudoconstant list so that labels are visible
+ in the list.
-- **[NFC] A bit less svn in our code ([17157](https://github.com/civicrm/civicrm-core/pull/17157))**
+- **Update Colmbra state/province to Coimbra
+ ([17106](https://github.com/civicrm/civicrm-core/pull/17106) and
+ [17136](https://github.com/civicrm/civicrm-core/pull/17136))**
-- **[REF] Consistently lookup dispatcher via `Civi::dispatcher()` ([17154](https://github.com/civicrm/civicrm-core/pull/17154))**
+ Fixes up some Portugal Province labels.
-- **Convert test to use APIV4 in setup for cleaner code ([17153](https://github.com/civicrm/civicrm-core/pull/17153))**
+- **Archive text ([17074](https://github.com/civicrm/civicrm-core/pull/17074))**
-- **[NFC] [Test] minor code cleanup ([17152](https://github.com/civicrm/civicrm-core/pull/17152))**
+ Updates the intro text to archive contrib.txt in favor of recognizing
+ contributors via the release notes.
-- **dev/core#1705 APIv4 - Support pseudoconstant lookups ([17138](https://github.com/civicrm/civicrm-core/pull/17138))**
+- **Fix 'selectedChild' parameter for pages with tabs
+ ([17066](https://github.com/civicrm/civicrm-core/pull/17066))**
-- **5.25 ([17150](https://github.com/civicrm/civicrm-core/pull/17150))**
+ Ensures that the tab set using the `selectedChild` URL parameter is respected.
-- **[NFC] Cleanup CRM_Report_Form ([17141](https://github.com/civicrm/civicrm-core/pull/17141))**
+- **Export: use X icon `fa-times` for closing things
+ ([17076](https://github.com/civicrm/civicrm-core/pull/17076))**
-- **Update more Portugal provinces ([17136](https://github.com/civicrm/civicrm-core/pull/17136))**
+ Ensures that the X icon is always used for closing things.
-- **5.25 ([17139](https://github.com/civicrm/civicrm-core/pull/17139))**
+- **Dupe improve custom data handling
+ ([17060](https://github.com/civicrm/civicrm-core/pull/17060) and
+ [17077](https://github.com/civicrm/civicrm-core/pull/17077))**
-- **(NFC) Comment clarification in test class ([17133](https://github.com/civicrm/civicrm-core/pull/17133))**
+ Reduces code complexity & locking queries when merging contacts.
-- **dev/core#1684 - Use PSR-4 autoloader instead of PSR-0 for "Civi" namespace ([17105](https://github.com/civicrm/civicrm-core/pull/17105))**
+- **fixed mapping when using custom field for contact sub type
+ ([16957](https://github.com/civicrm/civicrm-core/pull/16957))**
-- **Add contributor email address to cancelSubscription form so it is cle… ([16716](https://github.com/civicrm/civicrm-core/pull/16716))**
+ Ensures import mappings populate contact sub-type custom fields.
-- **dev/user-interface#19 - Remove leftover description text on contribution form mistakenly left in ([17135](https://github.com/civicrm/civicrm-core/pull/17135))**
+- **set is_deceased to not null in schema and upgrade script
+ ([dev/core#1697](https://lab.civicrm.org/dev/core/-/issues/1697):
+ [17025](https://github.com/civicrm/civicrm-core/pull/17025))**
-- **5.25 ([17123](https://github.com/civicrm/civicrm-core/pull/17123))**
+- **Allow adding variables to CRM.vars in any region
+ ([16888](https://github.com/civicrm/civicrm-core/pull/16888))**
-- **dev/core#1718 membership batch entry join date fix ([17099](https://github.com/civicrm/civicrm-core/pull/17099))**
+- **Fix setting custom field TextArea attributes
+ ([16997](https://github.com/civicrm/civicrm-core/pull/16997))**
-- **Convert bcc field to use an entity reference. ([17064](https://github.com/civicrm/civicrm-core/pull/17064))**
+ Ensures attributes for existing text area custom fields are not overwritten
+ during update operations.
-- **[REF] Minor var simplification ([17121](https://github.com/civicrm/civicrm-core/pull/17121))**
+- **Fix bug on handling 'is_required'
+ ([16901](https://github.com/civicrm/civicrm-core/pull/16901))**
-- **Update Colmbra state/province to Coimbra ([17106](https://github.com/civicrm/civicrm-core/pull/17106))**
+ Ensures that there is a "none" option for select fields that are not
+ required and are created extensions using the generic form.
-- **APIv4 - Prevent field alias conflicts. ([17109](https://github.com/civicrm/civicrm-core/pull/17109))**
+- **Fix values passed to tokenValues hook
+ ([16623](https://github.com/civicrm/civicrm-core/pull/16623))**
-- **Restore #16947 - APIv4 support for sql functions and grouping ([17113](https://github.com/civicrm/civicrm-core/pull/17113))**
+ Ensures that the `hook_civicrm_tokenValues` is passed the proper values.
-- **5.25 ([17111](https://github.com/civicrm/civicrm-core/pull/17111))**
+### CiviContribute
-- **[NFC] Remove calculation of unused parameter ([17093](https://github.com/civicrm/civicrm-core/pull/17093))**
+- **Contribution Detail Report gives incorrect results when `force=1`
+ ([dev/report#20](https://lab.civicrm.org/dev/report/-/issues/20):
+ [17234](https://github.com/civicrm/civicrm-core/pull/17234))**
-- **[REF] Remove duplicate checks for an array key existing ([17069](https://github.com/civicrm/civicrm-core/pull/17069))**
+- **On Behalf Of fails to populate in Email Receipt
+ ([dev/core#57](https://lab.civicrm.org/dev/core/-/issues/57):
+ [17026](https://github.com/civicrm/civicrm-core/pull/17026))**
-- **[REF] Import - extract duplicate code to function ([17080](https://github.com/civicrm/civicrm-core/pull/17080))**
+ Fixes a bug where the On Behalf Of section was not being included in email
+ receipts.
-- **(NFC) Gitlab Template - Request more detail about upgrade problems ([17101](https://github.com/civicrm/civicrm-core/pull/17101))**
+- **Fixes a regression when cancelling a recurring with no processor_id
+ ([17292](https://github.com/civicrm/civicrm-core/pull/17292))**
-- **Replace CaseType's own XML encoding function ([17100](https://github.com/civicrm/civicrm-core/pull/17100))**
+- **Fix multiselect/checkbox custom field defaults on contribution online form
+ ([16991](https://github.com/civicrm/civicrm-core/pull/16991))**
-- **Remove unused parameter from function ([17098](https://github.com/civicrm/civicrm-core/pull/17098))**
+### CiviCase
-- **Remove outputHeader as a param for writeCSVFile as it is always true ([17051](https://github.com/civicrm/civicrm-core/pull/17051))**
+- **Invalid and patchy XML encoding causes Case crash if status is not valid XML
+ ([dev/core#1719](https://lab.civicrm.org/dev/core/-/issues/1719):
+ [17100](https://github.com/civicrm/civicrm-core/pull/17100))**
-- **Remove var that is defined on parent ([17102](https://github.com/civicrm/civicrm-core/pull/17102))**
+ Fixes a bug where CiviCase would fail to fully create a CaseType if a Case
+ Status' name was invalid in an XML context.
-- **[REF] Stop passing ids to membership::create from createRelatedMemberships ([17087](https://github.com/civicrm/civicrm-core/pull/17087))**
+- **Case.get API returning Case Clients As Part of Related Contacts
+ ([dev/core#1659](https://lab.civicrm.org/dev/core/-/issues/1659):
+ [16837](https://github.com/civicrm/civicrm-core/pull/16837))**
-- **Don't pass empty ids parameter, fix fatal ([17086](https://github.com/civicrm/civicrm-core/pull/17086))**
+- **Convert fatals to statusBounces in case forms
+ ([17212](https://github.com/civicrm/civicrm-core/pull/17212))**
-- **[REF] get rid of variable variable structure ([17089](https://github.com/civicrm/civicrm-core/pull/17089))**
+- **Add missing translations to case activity revisions
+ ([16987](https://github.com/civicrm/civicrm-core/pull/16987))**
-- **Introduce "civi.dao.preUpdate" and "civi.dao.preInsert" events ([16714](https://github.com/civicrm/civicrm-core/pull/16714))**
+- **Case Details field is empty
+ ([16995](https://github.com/civicrm/civicrm-core/pull/16995))**
-- **5.25 ([17095](https://github.com/civicrm/civicrm-core/pull/17095))**
+ Ensures that the details field value is saved when creating a new case from
+ the core form.
-- **5.25 ([17092](https://github.com/civicrm/civicrm-core/pull/17092))**
+### CiviEvent
-- **[REF] SavedSearch - additional cleanup & bugfixes ([17090](https://github.com/civicrm/civicrm-core/pull/17090))**
+- **Fix multiselect/checkbox custom field defaults on registration profile
+ ([16981](https://github.com/civicrm/civicrm-core/pull/16981))**
-- **[NFC] Remove all the places where tests unnecessarily pass to Membership::create ([17088](https://github.com/civicrm/civicrm-core/pull/17088))**
+### CiviMail
-- **Add MessageTemplate api to v4 ([17073](https://github.com/civicrm/civicrm-core/pull/17073))**
+- **Mailing Error when civicrm_mailing_group has duplicate entries of recipient
+ groups([dev/mail#62](https://lab.civicrm.org/dev/mail/-/issues/62):
+ [17130](https://github.com/civicrm/civicrm-core/pull/17130))**
-- **Archive text ([17074](https://github.com/civicrm/civicrm-core/pull/17074))**
+### CiviMember
-- **[REF] APIv4 Explorer - improve performance ([17062](https://github.com/civicrm/civicrm-core/pull/17062))**
+- **membership batch entry: fix join date population
+ ([dev/core#1718](https://lab.civicrm.org/dev/core/-/issues/1718):
+ [17099](https://github.com/civicrm/civicrm-core/pull/17099))**
-- **5.25 ([17083](https://github.com/civicrm/civicrm-core/pull/17083))**
+ Ensures that when using the membership batch entry tool the "join date" is
+ populated with existing data.
-- **Fix 'selectedChild' parameter for pages with tabs ([17066](https://github.com/civicrm/civicrm-core/pull/17066))**
+- **Fix bug where tax_amount is miscalculated on membership renewals
+ ([16772](https://github.com/civicrm/civicrm-core/pull/16772))**
-- **Add ID to custom group/field admin forms ([17055](https://github.com/civicrm/civicrm-core/pull/17055))**
+### Drupal Integration
-- **Export: use X icon `fa-times` for closing things ([17076](https://github.com/civicrm/civicrm-core/pull/17076))**
+- **UF Settings page doesn't show CiviCRM database details for Drupal 8 Views
+ ([dev/core#1742](https://lab.civicrm.org/dev/core/-/issues/1742):
+ [17232](https://github.com/civicrm/civicrm-core/pull/17232))**
-- **[NFC] Improve cleanup on membershipStatus to cope with undeleted memberships ([16756](https://github.com/civicrm/civicrm-core/pull/16756))**
+### WordPress Integration
-- **Follow up fix on change to merge sqls ([17077](https://github.com/civicrm/civicrm-core/pull/17077))**
+- **Support Clean URLs when using Polylang
+ ([191](https://github.com/civicrm/civicrm-wordpress/pull/191),
+ [189](https://github.com/civicrm/civicrm-wordpress/pull/189) and
+ [176](https://github.com/civicrm/civicrm-wordpress/pull/176))**
-- **dev/core#1693 inline text title override ([16998](https://github.com/civicrm/civicrm-core/pull/16998))**
+ Ensures clean URLs work in WordPress with Polylang.
-- **[NFC] Remove a handful of legacy svn notations ([17070](https://github.com/civicrm/civicrm-core/pull/17070))**
+- **Fix WordPress support for Get UF Locale
+ ([dev/core#1635](https://lab.civicrm.org/dev/core/-/issues/1635):
+ [16700](https://github.com/civicrm/civicrm-core/pull/16700))**
-- **Dupe improve custom data handling ([17060](https://github.com/civicrm/civicrm-core/pull/17060))**
+ Ensures WordPress front end pages follow the CMS language set in CiviCRM
+ instead of using the default CiviCRM language.
-- **APIv4 - Fix setting offset with no limit ([17063](https://github.com/civicrm/civicrm-core/pull/17063))**
+- **Styling issues after upgrade to WordPress 5.3
+ ([dev/wordpress#46](https://lab.civicrm.org/dev/wordpress/-/issues/46):
+ [16882](https://github.com/civicrm/civicrm-core/pull/16882))**
-- **[REF] move all functions associated with the submit function onto the Trait ([17057](https://github.com/civicrm/civicrm-core/pull/17057))**
+ Ensures Select fields look like Select2 fields for WordPress users.
-- **[NFC] Code cleanup around comments, strict comparison, formatting ([17058](https://github.com/civicrm/civicrm-core/pull/17058))**
+- **CiviCRM front end pages broken on WP Latest (master)
+ ([dev/wordpress#49](https://lab.civicrm.org/dev/wordpress/-/issues/49):
+ [17352](https://github.com/civicrm/civicrm-core/pull/17352),
+ [199](https://github.com/civicrm/civicrm-wordpress/pull/199) and
+ [194](https://github.com/civicrm/civicrm-wordpress/pull/194))**
-- **Improve AngularJS performance with one-time binding for static strings ([17050](https://github.com/civicrm/civicrm-core/pull/17050))**
+ `canonical_redirect()` will strip "page=CiviCRM" from front end pages. These
+ changes ensures that CiviCRM plays nicely with this WordPress change.
-- **Duplicate EmailCommon::buildQuickForm onto the trait ([17052](https://github.com/civicrm/civicrm-core/pull/17052))**
+- **Public mailing URL links are broken after merge of REST API wrapper code
+ ([dev/wordpress#52](https://lab.civicrm.org/dev/wordpress/-/issues/52):
+ [195](https://github.com/civicrm/civicrm-wordpress/pull/195))**
-- **Make transaction param optional in completeOrder ([17053](https://github.com/civicrm/civicrm-core/pull/17053))**
+- **CiviMail doesn't send to full recipient list with merge of REST API wrapper
+ code ([dev/wordpress#53](https://lab.civicrm.org/dev/wordpress/-/issues/53):
+ [196](https://github.com/civicrm/civicrm-wordpress/pull/196))**
-- **[Test] Extend custom field test trait & some related tests ([17037](https://github.com/civicrm/civicrm-core/pull/17037))**
+## <a name="misc"></a>Miscellany
+
+- **Use isSerialized function rather guessing from html_type
+ ([16979](https://github.com/civicrm/civicrm-core/pull/16979))**
-- **fixed mapping when using custom field for contact sub type ([16957](https://github.com/civicrm/civicrm-core/pull/16957))**
+- **Mitigate flaky test failure about
+ "CRM_Utils_Check_Component_Env->checkVersion()"
+ ([17038](https://github.com/civicrm/civicrm-core/pull/17038))**
-- **[NFC] Fix use of pattern-hated-by-Coleman ([17049](https://github.com/civicrm/civicrm-core/pull/17049))**
+- **Simplify groupContactCache - remove redundant query
+ ([17011](https://github.com/civicrm/civicrm-core/pull/17011))**
-- **add filter for receipt date in contribution reports ([17044](https://github.com/civicrm/civicrm-core/pull/17044))**
+- **Duplicate EmailCommon::buildQuickForm onto the trait
+ ([17052](https://github.com/civicrm/civicrm-core/pull/17052))**
-- **dev/translation#4 - Refine upgrade steps for modifying nl_NL ([17048](https://github.com/civicrm/civicrm-core/pull/17048))**
+- **Make transaction param optional in completeOrder
+ ([17053](https://github.com/civicrm/civicrm-core/pull/17053))**
-- **Fix bug where tax_amount is miscalculated on membership renewals ([16772](https://github.com/civicrm/civicrm-core/pull/16772))**
+- **Don't pass empty ids parameter, fix fatal
+ ([17086](https://github.com/civicrm/civicrm-core/pull/17086))**
-- **dev/report#31 - Api4 Explorer: Support SQL functions and HAVING clause ([17047](https://github.com/civicrm/civicrm-core/pull/17047))**
+- **Less svn ([17159](https://github.com/civicrm/civicrm-core/pull/17159))**
-- **Update 5.24.2.md - Fix version number in title. ([17043](https://github.com/civicrm/civicrm-core/pull/17043))**
+- **OptionValue - Use DB defaults instead of setting them in BAO::add
+ ([17170](https://github.com/civicrm/civicrm-core/pull/17170))**
-- **core#1700 - Fix Financial ACL Report check ([17046](https://github.com/civicrm/civicrm-core/pull/17046))**
+- **Move batch-form support code back to the form
+ ([17176](https://github.com/civicrm/civicrm-core/pull/17176))**
-- **dev/translation#4 - Upgrade script for nl_BE ([17027](https://github.com/civicrm/civicrm-core/pull/17027))**
+- **Start using apiv4 in test setup
+ ([17020](https://github.com/civicrm/civicrm-core/pull/17020))**
-- **Simplify groupContactCache - remove redundant query ([17011](https://github.com/civicrm/civicrm-core/pull/17011))**
+- **Further removal of long-deprecated skipCleanMoney
+ ([17175](https://github.com/civicrm/civicrm-core/pull/17175))**
-- **Add missing translations to case activity revisions ([16987](https://github.com/civicrm/civicrm-core/pull/16987))**
+- **Add workflow_name column to civicrm_msg_template, deprecate workflow_id
+ ([17227](https://github.com/civicrm/civicrm-core/pull/17227))**
-- **dev/core#1696 - Update attachment message on mailing form. ([17024](https://github.com/civicrm/civicrm-core/pull/17024))**
+- **Misplaced text in the Additional Details section on New Contribution
+ ([dev/user-interface#19](https://lab.civicrm.org/dev/user-interface/-/issues/19):
+ [17135](https://github.com/civicrm/civicrm-core/pull/17135))**
-- **set is_deceased to not null in schema and upgrade script dev/core#1697 ([17025](https://github.com/civicrm/civicrm-core/pull/17025))**
+- **Cleanup and throw exceptions in OpenCase form
+ ([17184](https://github.com/civicrm/civicrm-core/pull/17184))**
-- **Mitigate flaky test failure about "CRM_Utils_Check_Component_Env->checkVersion()" ([17038](https://github.com/civicrm/civicrm-core/pull/17038))**
+- **Cleanup core pseudoconstant buildOptions
+ ([17122](https://github.com/civicrm/civicrm-core/pull/17122))**
-- **Allow adding variables to CRM.vars in any region ([16888](https://github.com/civicrm/civicrm-core/pull/16888))**
+- **Gitlab issue template - Ask for link to stackexchange or chat conversations
+ ([17186](https://github.com/civicrm/civicrm-core/pull/17186))**
-- **5.25 ([17042](https://github.com/civicrm/civicrm-core/pull/17042))**
+- **Remove deprecated calls to optionValueQuery and no-longer-need param
+ ([17182](https://github.com/civicrm/civicrm-core/pull/17182))**
-- **[REF] Extract transferParticipantRegistration function ([16976](https://github.com/civicrm/civicrm-core/pull/16976))**
+- **Refactor api3 Payment.Get API to support options + most fields in
+ civicrm_financial_trxn
+ ([17071](https://github.com/civicrm/civicrm-core/pull/17071))**
-- **Allow setting metadata to use the `table` option. Update example setting `default_invoice_page`. ([16903](https://github.com/civicrm/civicrm-core/pull/16903))**
+- **Remove unused parameter, immediately overwritten parameter
+ ([17131](https://github.com/civicrm/civicrm-core/pull/17131))**
-- **Add / make fit for purpose email.getlist api call ([16993](https://github.com/civicrm/civicrm-core/pull/16993))**
+- **Remove unused parameter from function
+ ([17098](https://github.com/civicrm/civicrm-core/pull/17098))**
-- **REF Remove redundant param from completeOrder ([17034](https://github.com/civicrm/civicrm-core/pull/17034))**
+- **Remove outputHeader as a param for writeCSVFile as it is always true
+ ([17051](https://github.com/civicrm/civicrm-core/pull/17051))**
-- **[REF] Update Contact email form to use the trait for EmailCommon functions ([17031](https://github.com/civicrm/civicrm-core/pull/17031))**
+- **Remove var that is defined on parent
+ ([17102](https://github.com/civicrm/civicrm-core/pull/17102))**
-- **5.25 ([17035](https://github.com/civicrm/civicrm-core/pull/17035))**
+- **Convert test to use APIV4 in setup for cleaner code
+ ([17153](https://github.com/civicrm/civicrm-core/pull/17153))**
-- **APIv4 - Add support for HAVING clause ([17015](https://github.com/civicrm/civicrm-core/pull/17015))**
+- **[Test] Extend custom field test trait & some related tests
+ ([17037](https://github.com/civicrm/civicrm-core/pull/17037))**
-- **[REF] Move generic instances of listTokens to trait ([17029](https://github.com/civicrm/civicrm-core/pull/17029))**
+- **E2E_Core_HookTest - Fix test failure due to leak
+ ([17251](https://github.com/civicrm/civicrm-core/pull/17251))**
-- **Add email link in case summary ([16959](https://github.com/civicrm/civicrm-core/pull/16959))**
+- **[NFC][Test] cleanup on customDataTrait for tests
+ ([17022](https://github.com/civicrm/civicrm-core/pull/17022))**
-- **Start using apiv4 in test setup ([17020](https://github.com/civicrm/civicrm-core/pull/17020))**
+- **[NFC][Test] Minor cleanup in test class
+ ([17002](https://github.com/civicrm/civicrm-core/pull/17002))**
-- **Mailing Report: hide the HTML preview ([16899](https://github.com/civicrm/civicrm-core/pull/16899))**
+- **[NFC][Test] Preliminary cleanup
+ ([17213](https://github.com/civicrm/civicrm-core/pull/17213))**
-- **[NFC][Test] cleanup on customDataTrait for tests ([17022](https://github.com/civicrm/civicrm-core/pull/17022))**
+- **[NFC] [Test] minor code cleanup
+ ([17152](https://github.com/civicrm/civicrm-core/pull/17152))**
-- **[REF] Move generic preProcess function to the trait ([16954](https://github.com/civicrm/civicrm-core/pull/16954))**
+- **[NFC] Minor code cleanups
+ ([17019](https://github.com/civicrm/civicrm-core/pull/17019))**
-- **5.25 to master ([17023](https://github.com/civicrm/civicrm-core/pull/17023))**
+- **[NFC] Superficial code clean up
+ ([17155](https://github.com/civicrm/civicrm-core/pull/17155))**
-- **[NFC] Minor code cleanups ([17019](https://github.com/civicrm/civicrm-core/pull/17019))**
+- **(NFC) Remove $Id$ artifacts from old SCM
+ ([17211](https://github.com/civicrm/civicrm-core/pull/17211))**
-- **dev/core#1659: Fix Case.get API returning Case Clients As Part of Related Contacts ([16837](https://github.com/civicrm/civicrm-core/pull/16837))**
+- **[NFC] A bit less svn in our code
+ ([17157](https://github.com/civicrm/civicrm-core/pull/17157))**
-- **5.25 ([17018](https://github.com/civicrm/civicrm-core/pull/17018))**
+- **[NFC] Fix use of pattern-hated-by-Coleman
+ ([17049](https://github.com/civicrm/civicrm-core/pull/17049))**
-- **[REF] Clarify variable & tighten use. ([17016](https://github.com/civicrm/civicrm-core/pull/17016))**
+- **[NFC] Cleanup CRM_Report_Form
+ ([17141](https://github.com/civicrm/civicrm-core/pull/17141))**
-- **[REF] Use bool instead of boolean ([17013](https://github.com/civicrm/civicrm-core/pull/17013))**
+- **(NFC) Comment clarification in test class
+ ([17133](https://github.com/civicrm/civicrm-core/pull/17133))**
-- **[REF] Formatting and use bool instead of boolean ([17012](https://github.com/civicrm/civicrm-core/pull/17012))**
+- **[NFC] Improve cleanup on membershipStatus to cope with undeleted memberships
+ ([16756](https://github.com/civicrm/civicrm-core/pull/16756))**
-- **[REF] CustomField code cleanup to use isSerialized method ([17009](https://github.com/civicrm/civicrm-core/pull/17009))**
+- **[NFC] Remove calculation of unused parameter
+ ([17093](https://github.com/civicrm/civicrm-core/pull/17093))**
-- **[REF] CustomField code cleanup ([16968](https://github.com/civicrm/civicrm-core/pull/16968))**
+- **(NFC) Gitlab Template - Request more detail about upgrade problems
+ ([17101](https://github.com/civicrm/civicrm-core/pull/17101))**
-- **[NFC][Test] Minor cleanup in test class ([17002](https://github.com/civicrm/civicrm-core/pull/17002))**
+- **[NFC] Remove a handful of legacy svn notations
+ ([17070](https://github.com/civicrm/civicrm-core/pull/17070))**
-- **[REF] Cleanup customField prepareCreate function ([16996](https://github.com/civicrm/civicrm-core/pull/16996))**
+- **[NFC/Test] - Fix typo in `if` statement that seems intended as a workaround
+ ([17258](https://github.com/civicrm/civicrm-core/pull/17258))**
-- **dev/core#1673 Ensure that SQL statements are not duplicated in the de… ([17001](https://github.com/civicrm/civicrm-core/pull/17001))**
+- **[NFC] Add Comment to avoid someone removing field only used in CiviCase
+ extension ([17000](https://github.com/civicrm/civicrm-core/pull/17000))**
-- **[NFC] Add Comment to avoid someone removing field only used in CiviCase extension ([17000](https://github.com/civicrm/civicrm-core/pull/17000))**
+- **[NFC] Test cleanup
+ ([17224](https://github.com/civicrm/civicrm-core/pull/17224))**
-- **[REF] Update custom data handing in contact import ([16986](https://github.com/civicrm/civicrm-core/pull/16986))**
+- **[NFC] Code cleanup around comments, strict comparison, formatting
+ ([17058](https://github.com/civicrm/civicrm-core/pull/17058))**
-- **Fix setting custom field TextArea attributes ([16997](https://github.com/civicrm/civicrm-core/pull/16997))**
+- **[NFC] Remove all the places where tests unnecessarily pass to
+ Membership::create
+ ([17088](https://github.com/civicrm/civicrm-core/pull/17088))**
-- **add filter and sorting for receipt date in contribution report ([16994](https://github.com/civicrm/civicrm-core/pull/16994))**
+- **[REF] SavedSearch - additional cleanup & bugfixes
+ ([17090](https://github.com/civicrm/civicrm-core/pull/17090))**
-- **Case Details field is empty ([16995](https://github.com/civicrm/civicrm-core/pull/16995))**
+- **(REF) dev/core#1744 - Cleanup event naming
+ ([17240](https://github.com/civicrm/civicrm-core/pull/17240))**
-- **Fix bug on handling 'is_required' ([16901](https://github.com/civicrm/civicrm-core/pull/16901))**
+- **[REF] [Test] IDE cleanup on ReportTemplateTest
+ ([17197](https://github.com/civicrm/civicrm-core/pull/17197))**
-- **dev/core#1685 - Search builder returns DB error on Group => Empty filter ([16953](https://github.com/civicrm/civicrm-core/pull/16953))**
+- **[REF] Simplify non-creditcard participant.create
+ ([16584](https://github.com/civicrm/civicrm-core/pull/16584))**
-- **Fix values passed to tokenValues hook ([16623](https://github.com/civicrm/civicrm-core/pull/16623))**
+- **[REF] Fix install on Drupal 8 using new setup code
+ ([17334](https://github.com/civicrm/civicrm-core/pull/17334))**
-- **[REF] Cleanup custom field handling... twice ([16989](https://github.com/civicrm/civicrm-core/pull/16989))**
+- **[REF] Minor var simplification
+ ([17121](https://github.com/civicrm/civicrm-core/pull/17121))**
-- **Cleanup custom field handling in ufGroup BAO ([16984](https://github.com/civicrm/civicrm-core/pull/16984))**
+- **[REF] Consistently lookup dispatcher via `Civi::dispatcher()`
+ ([17154](https://github.com/civicrm/civicrm-core/pull/17154))**
-- **[REF] Cleanup CustomField BAO to use its own isSerialized function ([16990](https://github.com/civicrm/civicrm-core/pull/16990))**
+- **(REF,NFC) TokenProcessor - Minor DX improvements
+ ([17231](https://github.com/civicrm/civicrm-core/pull/17231))**
-- **5.25 ([16988](https://github.com/civicrm/civicrm-core/pull/16988))**
+- **[REF] Permit domain tokens being used within Thank You letters
+ ([17230](https://github.com/civicrm/civicrm-core/pull/17230))**
-- **Fix multiselect/checkbox custom field defaults on contribution online form ([16991](https://github.com/civicrm/civicrm-core/pull/16991))**
+- **(REF) CRM_Utils_Hook - Remove deprecated formulations of `invoke(int,…)`
+ ([17124](https://github.com/civicrm/civicrm-core/pull/17124))**
-- **Fix multiselect/checkbox custom field defaults on registration profile ([16981](https://github.com/civicrm/civicrm-core/pull/16981))**
+- **[REF] Switch CRM_Utils_Array::value to empty in conditionals
+ ([17091](https://github.com/civicrm/civicrm-core/pull/17091))**
-- **[REF] Call makeCSVTable function directly from writeRows ([16980](https://github.com/civicrm/civicrm-core/pull/16980))**
+- **[REF] Minor code cleanup
+ ([17225](https://github.com/civicrm/civicrm-core/pull/17225))**
-- **Use isSerialized function rather guessing from html_type ([16979](https://github.com/civicrm/civicrm-core/pull/16979))**
+- **[REF] Minor code cleanup.
+ ([17222](https://github.com/civicrm/civicrm-core/pull/17222))**
-- **dev/translation#4 - Add nl_BE language ([16966](https://github.com/civicrm/civicrm-core/pull/16966))**
+- **[REF] Reduce boilerplate code in BAO add/create functions
+ ([17172](https://github.com/civicrm/civicrm-core/pull/17172))**
-- **[REF] CustomGroup - cleanup handling of serialized fields in old function ([16970](https://github.com/civicrm/civicrm-core/pull/16970))**
+- **[REF] Minor cleanup around action schedule code.
+ ([17151](https://github.com/civicrm/civicrm-core/pull/17151))**
-- **[REF] CustomField - Remove pointless caching and move form variable to form class ([16975](https://github.com/civicrm/civicrm-core/pull/16975))**
+- **[REF] get rid of variable variable structure
+ ([17089](https://github.com/civicrm/civicrm-core/pull/17089))**
-- **Capitalise PAN truncation ([16973](https://github.com/civicrm/civicrm-core/pull/16973))**
+- **[REF] Remove duplicate checks for an array key existing
+ ([17069](https://github.com/civicrm/civicrm-core/pull/17069))**
-- **5.25 ([16974](https://github.com/civicrm/civicrm-core/pull/16974))**
+- **[REF] Import - extract duplicate code to function
+ ([17080](https://github.com/civicrm/civicrm-core/pull/17080))**
-- **[REF] Update XML file to match updated title in DAO File ([16969](https://github.com/civicrm/civicrm-core/pull/16969))**
+- **[REF] Cleanup a few instances where we use old call to get loggedInUserID
+ ([17196](https://github.com/civicrm/civicrm-core/pull/17196))**
-- **Code cleanup - replace overcomplicated test for null with isset ([16965](https://github.com/civicrm/civicrm-core/pull/16965))**
+- **[REF] Simplify determination of enabled components
+ ([17195](https://github.com/civicrm/civicrm-core/pull/17195))**
-- **Update FinancialTrxn.php ([16964](https://github.com/civicrm/civicrm-core/pull/16964))**
+- **[REF] stop overriding postProcess function in activity report detail
+ ([17194](https://github.com/civicrm/civicrm-core/pull/17194))**
-- **5.25 ([16962](https://github.com/civicrm/civicrm-core/pull/16962))**
+- **[REF] Reconcile CRM_Utils_System::getUrlPath and
+ CRM_Utils_System::currentPath
+ ([17068](https://github.com/civicrm/civicrm-core/pull/17068))**
-- **Fix WordPress support for Get UF Locale ([16700](https://github.com/civicrm/civicrm-core/pull/16700))**
+- **[REF] Stop passing ids to membership::create from createRelatedMemberships
+ ([17087](https://github.com/civicrm/civicrm-core/pull/17087))**
-- **dev/wordpress#49 Prevent 301 redirects if 'page=CiviCRM' ([199](https://github.com/civicrm/civicrm-wordpress/pull/199))**
+- **[REF] move all functions associated with the submit function onto the Trait
+ ([17057](https://github.com/civicrm/civicrm-core/pull/17057))**
-- **dev/wordpress#52 Accept empty string as q|qid for the REST endpoint civicrm/v3/url ([195](https://github.com/civicrm/civicrm-wordpress/pull/195))**
+- **[REF] APIv4 Explorer - improve performance
+ ([17062](https://github.com/civicrm/civicrm-core/pull/17062))**
-- **dev/wordpress#53 Replace tracking URLs only if mail content is replaceable ([196](https://github.com/civicrm/civicrm-wordpress/pull/196))**
+- **[REF] Clarify variable & tighten use.
+ ([17016](https://github.com/civicrm/civicrm-core/pull/17016))**
-- **Remove "page=CiviCRM" query string from WordPress front-end (5.26) ([194](https://github.com/civicrm/civicrm-wordpress/pull/194))**
+- **[REF] Use bool instead of boolean
+ ([17013](https://github.com/civicrm/civicrm-core/pull/17013))**
-- **Support Clean URLs when using Polylang ([191](https://github.com/civicrm/civicrm-wordpress/pull/191))**
+- **[REF] Formatting and use bool instead of boolean
+ ([17012](https://github.com/civicrm/civicrm-core/pull/17012))**
-- **Revert "Support polylang language prefixes with clean URLs" ([189](https://github.com/civicrm/civicrm-wordpress/pull/189))**
+- **[REF] Move generic preProcess function to the trait
+ ([16954](https://github.com/civicrm/civicrm-core/pull/16954))**
-- **Support polylang language prefixes with clean URLs ([176](https://github.com/civicrm/civicrm-wordpress/pull/176))**
+- **[REF] Extract transferParticipantRegistration function
+ ([16976](https://github.com/civicrm/civicrm-core/pull/16976))**
-- **[REF] CRM_Utils_Array::value -> empty ([288](https://github.com/civicrm/civicrm-packages/pull/288))**
+- **REF Remove redundant param from completeOrder
+ ([17034](https://github.com/civicrm/civicrm-core/pull/17034))**
-- **5.25 ([290](https://github.com/civicrm/civicrm-packages/pull/290))**
+- **[REF] Update Contact email form to use the trait for EmailCommon functions
+ ([17031](https://github.com/civicrm/civicrm-core/pull/17031))**
-## <a name="misc"></a>Miscellany
+- **[REF] Move generic instances of listTokens to trait
+ ([17029](https://github.com/civicrm/civicrm-core/pull/17029))**
+
+- **[REF] CustomField code cleanup to use isSerialized method
+ ([17009](https://github.com/civicrm/civicrm-core/pull/17009))**
+
+- **[REF] CustomField code cleanup
+ ([16968](https://github.com/civicrm/civicrm-core/pull/16968))**
+
+- **[REF] Cleanup customField prepareCreate function
+ ([16996](https://github.com/civicrm/civicrm-core/pull/16996))**
+
+- **[REF] Update custom data handing in contact import
+ ([16986](https://github.com/civicrm/civicrm-core/pull/16986))**
+
+- **[REF] CustomGroup - cleanup handling of serialized fields in old function
+ ([16970](https://github.com/civicrm/civicrm-core/pull/16970))**
+
+- **[REF] APIv4 - Enforce contact field permissions via metadata
+ ([17168](https://github.com/civicrm/civicrm-core/pull/17168))**
+
+- **[REF] Code readability changes on activity tokens.
+ ([17161](https://github.com/civicrm/civicrm-core/pull/17161))**
+
+- **[REF] Minor extraction
+ ([17160](https://github.com/civicrm/civicrm-core/pull/17160))**
+
+- **[REF] CustomField - Remove pointless caching and move form variable to form
+ class ([16975](https://github.com/civicrm/civicrm-core/pull/16975))**
+
+- **[REF] Call makeCSVTable function directly from writeRows
+ ([16980](https://github.com/civicrm/civicrm-core/pull/16980))**
+
+- **[REF] CRM_Utils_Array::value -> empty
+ ([288](https://github.com/civicrm/civicrm-packages/pull/288))**
+
+- **[REF] Update XML file to match updated title in DAO File
+ ([16969](https://github.com/civicrm/civicrm-core/pull/16969))**
+
+- **[REF] Cleanup custom field handling... twice
+ ([16989](https://github.com/civicrm/civicrm-core/pull/16989))**
+
+- **[REF] Cleanup CustomField BAO to use its own isSerialized function
+ ([16990](https://github.com/civicrm/civicrm-core/pull/16990))**
+
+- **Cleanup custom field handling in ufGroup BAO
+ ([16984](https://github.com/civicrm/civicrm-core/pull/16984))**
+
+- **Code cleanup - replace overcomplicated test for null with isset
+ ([16965](https://github.com/civicrm/civicrm-core/pull/16965))**
+
+- **Update 5.24.2.md - Fix version number in title.
+ ([17043](https://github.com/civicrm/civicrm-core/pull/17043))**
## <a name="credits"></a>Credits
This release was developed by the following code authors:
-a-n The Artists Information Company - William Mortada; AGH Strategies - Alice Frumin, Andrew Hunt; Andrei Mondoc; Christian Wach; Circle Interactive - Dave Jenkins, Pradeep Nayak; CiviCRM - Coleman Watts, Josh Gowans, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; GuillaumeSorel; ivan-compucorp; JMA Consulting - Seamus Lee; Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Ray Wright; Third Sector Design - Michael McAndrew; Timbsoft Technologies - Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton
+a-n The Artists Information Company - William Mortada; AGH Strategies - Alice
+Frumin, Andrew Hunt; Andrei Mondoc; Christian Wach; Circle Interactive - Dave
+Jenkins, Pradeep Nayak; CiviCRM - Coleman Watts, Josh Gowans, Tim Otten;
+CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Fuzion -
+Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; All In
+Appli.com - Guillaume Sorel; CompuCorp - Ivan; JMA Consulting - Seamus Lee;
+Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology
+Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Ray Wright; Third
+Sector Design - Michael McAndrew; Timbsoft Technologies - Tunbola Ogunwande;
+Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
-a-n The Artists Information Company - William Mortada; AGH Strategies - Alice Frumin, Andrew Hunt; Andrei Mondoc; Andrew Cormick-Dockery; andyburnsco; Artful Robot - Rich Lott; Blackfly Solutions - Alan Dixon; Christian Wach; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Fuzion - Jitendra Purohit, Peter Davis; GMCVO Databases - Jade Gaunt; Greenpeace Central and Eastern Europe - Patrick Figel; JMA Consulting - Monish Deb, Seamus Lee; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Ray Wright; Richard van Oosterhout; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Team Expansion - Greg Harris; Third Sector Design - Michael McAndrew; Timbsoft Technologies - Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton
+Andrew Cormick-Dockery; Andy Burns; Artful Robot - Rich Lott; Blackfly
+Solutions - Alan Dixon; CiviCoop - Jaap Jansma; Fuzion - Peter Davis; GMCVO
+Databases - Jade Gaunt; JMA Consulting - Monish Deb; MJCO - Mikey O'Toole;
+Richard van Oosterhout; Squiffle Consulting - Aidan Saunders;
+Tadpole Collective - Kevin Cristiano; Team Expansion - Greg Harris;
## <a name="feedback"></a>Feedback