Merge pull request #21845 from colemanw/relationship_cache_case_id
[civicrm-core.git] / release-notes / 5.27.0.md
index 7463a328b385361296ea6dd93c68c2b3c7622acf..2b2dc4ded4c1e8f500caee9973599562312249d4 100644 (file)
@@ -13,463 +13,873 @@ Released July 1, 2020
 
 | *Does this version...?*                                         |         |
 |:--------------------------------------------------------------- |:-------:|
-| Fix security vulnerabilities?                                   |         |
-| Change the database schema?                                     |         |
-| Alter the API?                                                  |         |
-| Require attention to configuration options?                     |         |
-| Fix problems installing or upgrading to a previous version?     |         |
-| Introduce features?                                             |         |
-| Fix bugs?                                                       |         |
+| Fix security vulnerabilities?                                   |   no    |
+| **Change the database schema?**                                 | **yes** |
+| **Alter the API?**                                              | **yes** |
+| **Require attention to configuration options?**                 | **yes** |
+| **Fix problems installing or upgrading to a previous version?** | **yes** |
+| **Introduce features?**                                         | **yes** |
+| **Fix bugs?**                                                   | **yes** |
 
 ## <a name="features"></a>Features
 
-## <a name="bugs"></a>Bugs resolved
-
 ### Core CiviCRM
 
-- **Multi record import screen fix ([17713](https://github.com/civicrm/civicrm-core/pull/17713))**
+- **Warn users who lack PHP-Intl extension (Work Towards
+  [dev/translation#48](https://lab.civicrm.org/dev/translation/-/issues/48):
+  [17668](https://github.com/civicrm/civicrm-core/pull/17668), [17728](https://github.com/civicrm/civicrm-core/pull/17728))**
 
-- **dev/joomla/#28 5.27 Upgrade fails ([17710](https://github.com/civicrm/civicrm-core/pull/17710))**
+  A system check warning will now appear on sites that lack the PHP
+  Internationalization extension.  This is in preparation for changes that will
+  appear in CiviCRM 5.28 and require the extension.
 
-- **dev/translation#48 Add check for PHP-Intl Extension ([17668](https://github.com/civicrm/civicrm-core/pull/17668))**
+- **Advanced Search - Allow searching by first/last name; pass values from
+  quicksearch ([dev/core#1722](https://lab.civicrm.org/dev/core/-/issues/1722):
+  [17118](https://github.com/civicrm/civicrm-core/pull/17118))**
 
-- **handle less common dynamic reference cases ([17653](https://github.com/civicrm/civicrm-core/pull/17653))**
+  This makes separate First Name and Last Name fields available on the Advanced
+  Search form, and it ensures quick search filters are passed to the appropriate
+  field.
 
-- **5.26.2 Release Notes ([17635](https://github.com/civicrm/civicrm-core/pull/17635))**
+- **Add more search options
+  ([17372](https://github.com/civicrm/civicrm-core/pull/17372))**
 
-- **dev/core#1806 - Fix import of "Radio"-style custom fields using option "label" ([17632](https://github.com/civicrm/civicrm-core/pull/17632))**
+  Improves the search form for individuals in contact reference fields by adding
+  fields for Employer Name, First Name, Last Name, and Nick Name.
 
-- **dev/core#1816 - Legacy support for matching custom field options by label ([17628](https://github.com/civicrm/civicrm-core/pull/17628))**
+- **End of life planning for MySQL server 5.0 - 5.6
+  ([dev/core#1681](https://lab.civicrm.org/dev/core/-/issues/1681):
+  [17518](https://github.com/civicrm/civicrm-core/pull/17518) and
+  [17496](https://github.com/civicrm/civicrm-core/pull/17496))**
 
-- **dev/core#1822 - Fix missing newly created activity types from the dropdown on the new activity form ([17625](https://github.com/civicrm/civicrm-core/pull/17625))**
+  Sites running MySQL 5.5 and below will have a pre-upgrade message and a system
+  check warning to say that CiviCRM 5.28 will require MySQL 5.6 or MariaDB 10.1.
 
-- **Fix issue with building smart groups when  is empty ([17622](https://github.com/civicrm/civicrm-core/pull/17622))**
+- **APIv4 - Improve pseudoconstant suffix support
+  ([17368](https://github.com/civicrm/civicrm-core/pull/17368) and
+  [17482](https://github.com/civicrm/civicrm-core/pull/17482))**
 
-- **dev/core#1823 Fix building the Price Field visibility options ([17619](https://github.com/civicrm/civicrm-core/pull/17619))**
+  APIv4 allows pseudoconstant fields to be specified with the pseudoconstant
+  name followed by a suffix, such as `activity_type_id:label`.  This now works
+  for retrieval and sort.
 
-- **Fix payment instrument bug by using correct payment instrument ([17607](https://github.com/civicrm/civicrm-core/pull/17607))**
+- **APIv4 - Support custom entity joins
+  ([17394](https://github.com/civicrm/civicrm-core/pull/17394))**
 
-- **[REF] Fix unit test failures on MySQL 5.6 due to Custom Field table being created without Dynamic Row Format ([17586](https://github.com/civicrm/civicrm-core/pull/17586))**
+  Improves APIv4 so that it supports implicit and explicit joins onto custom
+  entities.
 
-- **Add in deprecation notice and status check for a money value format co… ([17577](https://github.com/civicrm/civicrm-core/pull/17577))**
+- **Make reCAPTCHA settings clearer
+  ([17426](https://github.com/civicrm/civicrm-core/pull/17426))**
 
-- **Dedupe performance - hard-remove financial_item from list of dymnamic  refs to contact table ([17567](https://github.com/civicrm/civicrm-core/pull/17567))**
+  The help text for reCAPTCHA settings now specifies the type of reCAPTCHA
+  supported.
 
-- **QueueTest - Be more forgiving about slow execution ([17532](https://github.com/civicrm/civicrm-core/pull/17532))**
+- **Configurable logfile size and hashing
+  ([17192](https://github.com/civicrm/civicrm-core/pull/17192))**
 
-- **WP - Change definitions of `cms.root`, `civicrm.root` ([17360](https://github.com/civicrm/civicrm-core/pull/17360))**
+  Allows a system administrator to give logs a predictable name, allowing them
+  to be more easily ingested into other tools, and be handled by external log
+  rotation tools.
 
-- **CommunityMessages - Define more consistent behavior in the face of slow execution ([17529](https://github.com/civicrm/civicrm-core/pull/17529))**
+- **Allow for installation on Symfony 4.4
+  ([17380](https://github.com/civicrm/civicrm-core/pull/17380))**
 
-- **Add release-notes/5.26.1.md ([17521](https://github.com/civicrm/civicrm-core/pull/17521))**
+  Makes it so CiviCRM plays nicely with Symfony 4.4.
 
-- **dev/core#1681 - Copy-edits on MySQL version notices ([17518](https://github.com/civicrm/civicrm-core/pull/17518))**
+- **Add domain tokens to the Message Template admin interface
+  ([17388](https://github.com/civicrm/civicrm-core/pull/17388))**
 
-- **[REF] Start to convert Dummy processor to use PropertyBag ([17452](https://github.com/civicrm/civicrm-core/pull/17452))**
+  This adds the domain tokens (the domain organization name, address, email, and
+  phone) to the available listed tokens for editing message templates.
 
-- **Payment PropertyBag - Fix setAmount ([17505](https://github.com/civicrm/civicrm-core/pull/17505))**
+- **Hide icon elements from screen readers and add handling for
+  screen-reader-only text
+  ([17318](https://github.com/civicrm/civicrm-core/pull/17318),
+  [17293](https://github.com/civicrm/civicrm-core/pull/17293),
+  [17294](https://github.com/civicrm/civicrm-core/pull/17294), and
+  [17310](https://github.com/civicrm/civicrm-core/pull/17310))**
 
-- **dev/core#1681 Add in notice about 5.28 Dropping MySQL 5.5 Support ([17496](https://github.com/civicrm/civicrm-core/pull/17496))**
+  CiviCRM uses empty `<i>` elements to provide most icons.  Screen readers,
+  which won't render the visual icon anyway, will either skip over an empty
+  element or announce it in a way that would be confusing.  This makes it
+  explicit that screen readers and other ARIA devices should skip them.
 
-- **[REF] Remove always NULL param modified_id ([17489](https://github.com/civicrm/civicrm-core/pull/17489))**
+  Meanwhile, if the icon is the only way a piece of information is displayed, a
+  screen reader user won't get that information.  This adds a `sr-only` class
+  that makes the element invisible on screen without being ignored by a screen
+  reader.
 
-- **dev/core#1797 Fix jquery Credit card validation on front end contribu… ([17497](https://github.com/civicrm/civicrm-core/pull/17497))**
+  Screen reader text is added for the field option wrench icons, relationship
+  permissions, and membership auto-renew status.
 
-- **Add MembershipType to Api4 ([17448](https://github.com/civicrm/civicrm-core/pull/17448))**
+- **Add icon helper functions and remove most uses of check.gif
+  ([17279](https://github.com/civicrm/civicrm-core/pull/17279) and
+  [17289](https://github.com/civicrm/civicrm-core/pull/17289))**
 
-- **Convert remaining Authorize.net test to use guzzle ([17473](https://github.com/civicrm/civicrm-core/pull/17473))**
+  This adds helper functions in PHP and Smarty to render consistent icons with a
+  minimum of code.  It also replaces most instances of the green checkmark image
+  with a checkmark icon.
 
-- **set boolean fields to false if not set. ([17494](https://github.com/civicrm/civicrm-core/pull/17494))**
+- **Separate icon markup from labels and add JS icon helper
+  ([17319](https://github.com/civicrm/civicrm-core/pull/17319) and
+  [17285](https://github.com/civicrm/civicrm-core/pull/17285))**
 
-- **[Ref] remove calls to, and deprecate, pending function ([17490](https://github.com/civicrm/civicrm-core/pull/17490))**
+  These changes improve `CRM_Core_Action::formLink()`, `hook_civicrm_links`, and
+  certain listing pages so that HTML icon markup is added at the point of
+  display rather than during the processing of values.
 
-- **Make reCAPTCHA settings clearer ([17426](https://github.com/civicrm/civicrm-core/pull/17426))**
+  It also adds a helper function in Javascript similar to those in PHP and
+  Smarty to render icons.
 
-- **[NFC] Fix use of single quotes, strict operator ([17492](https://github.com/civicrm/civicrm-core/pull/17492))**
+- **crmButton: Support icon=0 for no icon
+  ([17303](https://github.com/civicrm/civicrm-core/pull/17303))**
 
-- **Test fixes to support apiv4 add of MembershipType ([17488](https://github.com/civicrm/civicrm-core/pull/17488))**
+  Makes it possible to create a button without an icon using {crmButton}.
 
-- **dev/core/-/issues/1794, changed int to tinyint for boolean fields ([17493](https://github.com/civicrm/civicrm-core/pull/17493))**
+- **Replace stop-icon.png with fa-ban over a relevant icon for privacy
+  ([17283](https://github.com/civicrm/civicrm-core/pull/17283) and
+  [17307](https://github.com/civicrm/civicrm-core/pull/17307))**
 
-- **5.26 ([17486](https://github.com/civicrm/civicrm-core/pull/17486))**
+  The communication preference icons are standardized and more specific than the
+  old stop sign.
 
-- **5.26 ([17484](https://github.com/civicrm/civicrm-core/pull/17484))**
+- **Replace image icons with Font Awesome icons
+  ([17296]([17280](https://github.com/civicrm/civicrm-core/pull/17280),
+  [17281](https://github.com/civicrm/civicrm-core/pull/17281),
+  [17282](https://github.com/civicrm/civicrm-core/pull/17282),
+  [17295](https://github.com/civicrm/civicrm-core/pull/17295),
+  https://github.com/civicrm/civicrm-core/pull/17296),
+  [17297](https://github.com/civicrm/civicrm-core/pull/17297))**
 
-- **APIv4 - Support pseudoconstant suffixes in orderBy clause ([17482](https://github.com/civicrm/civicrm-core/pull/17482))**
+  Nearly all image icons have been replaced with the corresponding icons from
+  the Font Awesome library.
 
-- **[REF] Extract createFollowUpActivities ([17481](https://github.com/civicrm/civicrm-core/pull/17481))**
+- **Simplify admin console and remove superfluous icons
+  ([17284](https://github.com/civicrm/civicrm-core/pull/17284))**
 
-- **5.26 ([17476](https://github.com/civicrm/civicrm-core/pull/17476))**
+  The Administration console has been redesigned to have a simpler layout,
+  display more information, dynamically include all enabled components, display
+  responsively on small screens, and remove a slew of 15-year-old image icons.
 
-- **NFC - Change array() to short syntax [] ([17470](https://github.com/civicrm/civicrm-core/pull/17470))**
+- **Dedupe performance - hard-remove financial_item from list of dymnamic  refs
+  to contact table
+  ([17567](https://github.com/civicrm/civicrm-core/pull/17567))**
 
-- **Remove last reference to Payment->_processorName in core & remove from processors ([17474](https://github.com/civicrm/civicrm-core/pull/17474))**
+  This improves performance when deduping by no longer querying the financial
+  item table.
 
-- **Remove unused singleton from core payment processors ([17468](https://github.com/civicrm/civicrm-core/pull/17468))**
+- **Trigger fatalErrorHandler for PEAR errors and for logs with severity ERROR
+  or higher ([17277](https://github.com/civicrm/civicrm-core/pull/17277))**
 
-- **[REF] Switch to an api call to get the contact details. ([17442](https://github.com/civicrm/civicrm-core/pull/17442))**
+  This allows extensions that implement `$config->fatalErrorHandler` to react to
+  a wider variety of errors that CiviCRM may generate.
 
-- **Fixed hide show of start date ([17446](https://github.com/civicrm/civicrm-core/pull/17446))**
+### CiviContribute
 
-- **[REF] Remove never-passed params from function signature ([17464](https://github.com/civicrm/civicrm-core/pull/17464))**
+- **Wrap separators in price field in spans with classes
+  ([dev/user-interface#18](https://lab.civicrm.org/dev/user-interface/-/issues/18):
+  [17078](https://github.com/civicrm/civicrm-core/pull/17078))**
 
-- **Don't allow Contribution.repeattransaction to be used without a recurring contribution ([17447](https://github.com/civicrm/civicrm-core/pull/17447))**
+  Colons separating pre- and post-field help text from price fields are now
+  wrapped in `<span>` elements.
 
-- **APIv4 - Improve custom field spec gathering ([17471](https://github.com/civicrm/civicrm-core/pull/17471))**
+- **Allow to search on contribution ID
+  ([dev/core#1580](https://lab.civicrm.org/dev/core/-/issues/1580):
+  [16484](https://github.com/civicrm/civicrm-core/pull/16484))**
 
-- **[REF] Fix serialized membership field handling in RelationshipTest ([17469](https://github.com/civicrm/civicrm-core/pull/17469))**
+  This improves the "Find Contributions" search form by adding a field to search
+  by Contribution ID.
 
-- **Add more search options ([17372](https://github.com/civicrm/civicrm-core/pull/17372))**
+- **APIv4 - Add "Price"-related entities
+  ([17363](https://github.com/civicrm/civicrm-core/pull/17363))**
 
-- **Allow bidirectional assignment of relationships from search results ([17413](https://github.com/civicrm/civicrm-core/pull/17413))**
+  Priceset, PriceField, and PriceOption entities are added to APIv4.
 
-- **5.26 ([17467](https://github.com/civicrm/civicrm-core/pull/17467))**
+- **APIv4 - Add ContributionRecur entity
+  ([17299](https://github.com/civicrm/civicrm-core/pull/17299))**
 
-- **Add actual field name for processor_id to getSubscriptionDetails ([17466](https://github.com/civicrm/civicrm-core/pull/17466))**
+  Adds Contribution Recur to APIv4.
 
-- **[REF] Implement required fields database changes that have occured du… ([17465](https://github.com/civicrm/civicrm-core/pull/17465))**
+### CiviMail
 
-- **[REF] Minor simplification ([17443](https://github.com/civicrm/civicrm-core/pull/17443))**
+- **Allow click-through and open tracking to be enabled/disabled by default
+  ([17291](https://github.com/civicrm/civicrm-core/pull/17291))**
 
-- **Nuance cancel options for processors ([17430](https://github.com/civicrm/civicrm-core/pull/17430))**
+  Adds a setting to CiviMail which allows for setting the click-through and open
+  tracking defaults.
 
-- **dev/core#1753 - Attachments aren't deleted when deleting activity ([17298](https://github.com/civicrm/civicrm-core/pull/17298))**
+- **Extend content array of hook_civicrm_alterMailContent
+  ([dev/core#1620](https://lab.civicrm.org/dev/core/-/issues/1620):
+  [16629](https://github.com/civicrm/civicrm-core/pull/16629))**
 
-- **[REF] Bump Pear Log version to fix compatability with Drupal 8 / Drup… ([17460](https://github.com/civicrm/civicrm-core/pull/17460))**
+  Adds campaign_id to template for `alterMailContent` hook.
 
-- **Update MembershipType.name to be a required field ([17463](https://github.com/civicrm/civicrm-core/pull/17463))**
+- **Migrate CiviMail "extern" scripts to conventional routes
+  ([17312](https://github.com/civicrm/civicrm-core/pull/17312))**
 
-- **5.26 to master ([17459](https://github.com/civicrm/civicrm-core/pull/17459))**
+  Updates CiviMail's default behavior to replace `extern/open.php` and
+  `extern/url.php` with `civicrm/mailing/open` and `civicrm/mailing/url`.
 
-- **[REF] Convert one of the http calls in Authorize.net class to use guzzle. ([17449](https://github.com/civicrm/civicrm-core/pull/17449))**
+- **Make `is_archived` work as a url-search parameter
+  ([17328](https://github.com/civicrm/civicrm-core/pull/17328))**
 
-- **Navigation menu: fix translation of new-subtype entries ([17451](https://github.com/civicrm/civicrm-core/pull/17451))**
+  The Find Mailings URL can now have `is_archived` as a parameter to only find
+  archived mailings.
 
-- **APIv4 - Fix entity name on custom groups in schemaMapper ([17425](https://github.com/civicrm/civicrm-core/pull/17425))**
+### CiviMember
 
-- **[REF] Simplify contributionIDs code ([17441](https://github.com/civicrm/civicrm-core/pull/17441))**
+- **Add MembershipType to Api4
+  ([17448](https://github.com/civicrm/civicrm-core/pull/17448))**
 
-- **[NFC] Update Karma to be latest version ([17439](https://github.com/civicrm/civicrm-core/pull/17439))**
+  Adds a Membership Type entity to APIv4.
 
-- **[REF] Simplify subject code. ([17436](https://github.com/civicrm/civicrm-core/pull/17436))**
+### Drupal Integration
 
-- **Revert Matt's fix for dev/membership#24 as it is incomplete and add a… ([17435](https://github.com/civicrm/civicrm-core/pull/17435))**
+- **CiviCRM menu toggle "adjust menu position" customisable
+  ([dev/core#1757](https://lab.civicrm.org/dev/core/-/issues/1757):
+  [17362](https://github.com/civicrm/civicrm-core/pull/17362))**
 
-- **[REF] Refactor to switch from pear HTTP Request class to using Guzzle ([17420](https://github.com/civicrm/civicrm-core/pull/17420))**
+  This hides the "adjust menu position" icon in the CiviCRM Menu for non admin
+  users to avoid confusion for users who do not have access to the Drupal admin
+  menu.
 
-- **[NFC/TEST] dev/core#1784 - Unit tests for contact delete/restore ([17437](https://github.com/civicrm/civicrm-core/pull/17437))**
+- **Provide "Calendar" module with an end-date when a duration is provided
+  ([601](https://github.com/civicrm/civicrm-drupal/pull/601))**
 
-- **dev/core#560 Replace various CRM_Core_Error::fatal with statusBounces… ([17421](https://github.com/civicrm/civicrm-core/pull/17421))**
+  Improves display of activities in calendar views.
 
-- **Make is_archived work as a url-search parameter ([17328](https://github.com/civicrm/civicrm-core/pull/17328))**
+## <a name="bugs"></a>Bugs resolved
 
-- **dev/core#1791 - E_WARNINGS when viewing list of pledge payments ([17434](https://github.com/civicrm/civicrm-core/pull/17434))**
+### Core CiviCRM
 
-- **Make 'Pending' the default status for Contribution.repeattransaction ([17432](https://github.com/civicrm/civicrm-core/pull/17432))**
+- **CRM_Utils_Time::setTime and getTime() and their use in unit tests
+  ([dev/core#1781](https://lab.civicrm.org/dev/core/-/issues/1781):
+  [17414](https://github.com/civicrm/civicrm-core/pull/17414))**
 
-- **Fetch line items from correct contribution when repeating a contribution ([17220](https://github.com/civicrm/civicrm-core/pull/17220))**
+  This allows the CRM_Utils_Time functions used in unit tests to use TIME_FUNC
+  to better isolate timing bugs.
 
-- **5.26 to masterr ([17431](https://github.com/civicrm/civicrm-core/pull/17431))**
+- **Confusing popups when importing activities
+  ([dev/user-interface#17](https://lab.civicrm.org/dev/user-interface/-/issues/17):
+  [17067](https://github.com/civicrm/civicrm-core/pull/17067))**
 
-- **Support order_reference param in API3 Payment.create ([17278](https://github.com/civicrm/civicrm-core/pull/17278))**
+  This fixes a bug where the confirmation popup would appear when hitting the
+  back/cancel buttons, not just the import button, on most import forms.
 
-- **dev/core#1650 Updated Financial Type title to Financial Type ID ([17147](https://github.com/civicrm/civicrm-core/pull/17147))**
+- **Installing CiviCRM in another language, with civicrm-setup
+  ([dev/translation#39](https://lab.civicrm.org/dev/translation/-/issues/39):
+  [17244](https://github.com/civicrm/civicrm-core/pull/17244))**
 
-- **dev/membership#24 Don't hide disabled memberships from the contact membership tab ([17143](https://github.com/civicrm/civicrm-core/pull/17143))**
+  Fixes a bug when installing CiviCRM in another language with civicrm-setup.
 
-- **dev/core#1745 Fix caching bug when adding a contact to a group ([17419](https://github.com/civicrm/civicrm-core/pull/17419))**
+- **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
+  ([dev/core#560](https://lab.civicrm.org/dev/core/-/issues/560):
+  [17421](https://github.com/civicrm/civicrm-core/pull/17421),
+  [17343](https://github.com/civicrm/civicrm-core/pull/17343),
+  [17336](https://github.com/civicrm/civicrm-core/pull/17336) and
+  [17341](https://github.com/civicrm/civicrm-core/pull/17341))**
 
-- **Configurable logfile size and hashing ([17192](https://github.com/civicrm/civicrm-core/pull/17192))**
+- **CiviCRM 5.13.4 - smart groups with contact subtypes: subtype is not in
+  Contact Type field on edit criteria mode
+  ([dev/core#991](https://lab.civicrm.org/dev/core/-/issues/991):
+  [16541](https://github.com/civicrm/civicrm-core/pull/16541))**
 
-- **[REF] Extract getAttachments ([17405](https://github.com/civicrm/civicrm-core/pull/17405))**
+  Fixes contact subtypes not being carried over when editing a smart group
+  created in Advanced Search.
 
-- **Remove always-true if block. ([17415](https://github.com/civicrm/civicrm-core/pull/17415))**
+- **Unable to import relationship
+  ([dev/core#1731](https://lab.civicrm.org/dev/core/-/issues/1731):
+  [17163](https://github.com/civicrm/civicrm-core/pull/17163))**
 
-- **[REF] Preliminary cleanup for #17339 ([17417](https://github.com/civicrm/civicrm-core/pull/17417))**
+  Ensures that importing relationships works as expected when the same field is
+  to be imported for the main imported contact and a related contact.
 
-- **dev/core#1781 - CRM_Utils_Time - Allow TIME_FUNC to better isolate timing bugs ([17414](https://github.com/civicrm/civicrm-core/pull/17414))**
+- **Apostrophes in richtext fields don't get exported properly in CiviReport
+  ([dev/core#1743](https://lab.civicrm.org/dev/core/-/issues/1743):
+  [17260](https://github.com/civicrm/civicrm-core/pull/17260))**
 
-- **Allow for installation on Symfony 4.4 ([17380](https://github.com/civicrm/civicrm-core/pull/17380))**
+- **Statically added members of a smart group are not found
+  ([dev/core#1745](https://lab.civicrm.org/dev/core/-/issues/1745):
+  [17419](https://github.com/civicrm/civicrm-core/pull/17419))**
 
-- **[REF] Pass params not-by-reference ([17406](https://github.com/civicrm/civicrm-core/pull/17406))**
+- **Deleting an activity with attachments doesn't delete the file or entries in
+  civicrm_file/civicrm_entity_file
+  ([dev/core#1753](https://lab.civicrm.org/dev/core/-/issues/1753):
+  [17298](https://github.com/civicrm/civicrm-core/pull/17298))**
 
-- **Use now instead of date for activity API3 spec ([17411](https://github.com/civicrm/civicrm-core/pull/17411))**
+- **Deselected checkbox settings are not saved
+  ([dev/core#1794](https://lab.civicrm.org/dev/core/-/issues/1794):
+  [17493](https://github.com/civicrm/civicrm-core/pull/17493))**
 
-- **Typo Fix ([17409](https://github.com/civicrm/civicrm-core/pull/17409))**
+  Ensures deselected values are saved on custom field settings forms.
 
-- **[REF] Remove unreachable block. ([17407](https://github.com/civicrm/civicrm-core/pull/17407))**
+- **Added activity types don't appear in the type dropdown on New Activity
+  ([dev/core#1822](https://lab.civicrm.org/dev/core/-/issues/1822):
+  [17625](https://github.com/civicrm/civicrm-core/pull/17625))**
 
-- **[REF] duplicate function. ([17400](https://github.com/civicrm/civicrm-core/pull/17400))**
+- **API doesn't allow passing option values by label
+  ([dev/core#1816](https://lab.civicrm.org/dev/core/-/issues/1816):
+  [17628](https://github.com/civicrm/civicrm-core/pull/17628))**
 
-- **Fix logic for job log cleanup and make SQL safer ([17203](https://github.com/civicrm/civicrm-core/pull/17203))**
+  Updates APIv4 so that it matches based on label if name is not found.
 
-- **dev/core#1731 - Unable to import relationship ([17163](https://github.com/civicrm/civicrm-core/pull/17163))**
+- **APIv4 - Improve custom field spec gathering
+  ([17471](https://github.com/civicrm/civicrm-core/pull/17471))**
 
-- **APIv4 - fix returning custom field values with API4 ([17399](https://github.com/civicrm/civicrm-core/pull/17399))**
+- **APIv4 - Remove implicit multi joins & add explicit joins
+ ([17332](https://github.com/civicrm/civicrm-core/pull/17332))**
 
-- **Remove $_REQUEST passed into CRM_Utils_Request::retrieve NFC ([17377](https://github.com/civicrm/civicrm-core/pull/17377))**
+- **APIv4 - Fix entity name on custom groups in schemaMapper
+  ([17425](https://github.com/civicrm/civicrm-core/pull/17425))**
 
-- **Fix core#1773 unsubscribe form causes errors if submitted twice ([17402](https://github.com/civicrm/civicrm-core/pull/17402))**
+- **APIv4 - fix returning custom field values with API4
+  ([17399](https://github.com/civicrm/civicrm-core/pull/17399))**
 
-- **5.26 to master ([17404](https://github.com/civicrm/civicrm-core/pull/17404))**
+- **Attempting to access Multi-Record Custom Field import results
+  in crash
+  ([dev/core#1841](https://lab.civicrm.org/dev/core/-/issues/1841):
+  [17713](https://github.com/civicrm/civicrm-core/pull/17713))**
 
-- **dev/core#1620 - Add campaign_id to template for alterMailContent hook ([16629](https://github.com/civicrm/civicrm-core/pull/16629))**
+- **Fix issue with building smart groups when $contactQueries is empty
+  ([17622](https://github.com/civicrm/civicrm-core/pull/17622))**
 
-- **[REF] Code simplification & unit test on suppressed emails in task ([17393](https://github.com/civicrm/civicrm-core/pull/17393))**
+  If a clause of a contact query used to build a smart group is empty, it would
+  result in a database error.
 
-- **NFC Add a bit more clarity to createEmailActivity function ([17391](https://github.com/civicrm/civicrm-core/pull/17391))**
+- **Replace deprecated `money_format()` fn to support PHP 7.4
+  (Work Towards [dev/core#1494](https://lab.civicrm.org/dev/core/-/issues/1494):
+  [17577](https://github.com/civicrm/civicrm-core/pull/17577), [17730](https://github.com/civicrm/civicrm-core/pull/17730))**
 
-- **Add in domain tokens onto the Message Template admin interface ([17388](https://github.com/civicrm/civicrm-core/pull/17388))**
+  Adds a deprecation notice and a status check for a money value format
+  configuration other than the default.
 
-- **utf8mb4 - If strict mode enabled query will fail if KEY_BLOCK_SIZE is not 0 ([17253](https://github.com/civicrm/civicrm-core/pull/17253))**
+- **QueueTest - Be more forgiving about slow execution
+  ([17532](https://github.com/civicrm/civicrm-core/pull/17532))**
 
-- **Simplify recurring contribution template inheritance ([17178](https://github.com/civicrm/civicrm-core/pull/17178))**
+- **CommunityMessages - Define more consistent behavior in the face of slow
+  execution ([17529](https://github.com/civicrm/civicrm-core/pull/17529))**
 
-- **[REF] Pass an array of correct params to the function to create a recurring contribution. ([17398](https://github.com/civicrm/civicrm-core/pull/17398))**
+  This helps avoid test failures on broadcast messages when the system is
+  running slowly.
 
-- **Update DAO and L10n Schema file ([17395](https://github.com/civicrm/civicrm-core/pull/17395))**
+- **Scheduled Reminders - Set boolean fields to false if not set.
+  ([17494](https://github.com/civicrm/civicrm-core/pull/17494))**
 
-- **APIv4 - support custom entity joins ([17394](https://github.com/civicrm/civicrm-core/pull/17394))**
+- **Allow bidirectional assignment of relationships from search results
+  ([17413](https://github.com/civicrm/civicrm-core/pull/17413))**
 
-- **Api4: Add Price api entities ([17363](https://github.com/civicrm/civicrm-core/pull/17363))**
+  Previously relationships could only be created from search results where the
+  contacts would be valid in the "A" side of the relationship type.
 
-- **dev/core#1722 Allow for first name and last name to be searched on ([17118](https://github.com/civicrm/civicrm-core/pull/17118))**
+- **Navigation menu - Fix translation of new-subtype entries
+  ([17451](https://github.com/civicrm/civicrm-core/pull/17451))**
 
-- **dev/translation#39 - Fix `core:install --lang`. Realign boot plugins. ([17244](https://github.com/civicrm/civicrm-core/pull/17244))**
+  The "New" in menu items for creating a new contact of a subtype was not
+  translated.
 
-- **Remove unused 'reset' param, other NFC tidy up: ([17392](https://github.com/civicrm/civicrm-core/pull/17392))**
+- **utf8mb4 - If strict mode enabled query will fail if KEY_BLOCK_SIZE is not 0
+  ([17253](https://github.com/civicrm/civicrm-core/pull/17253))**
 
-- **Fix pricefield pseudoconstant. ([17364](https://github.com/civicrm/civicrm-core/pull/17364))**
+- **Update DAO and l10n schema file
+  ([17395](https://github.com/civicrm/civicrm-core/pull/17395))**
 
-- **Set default using spec for activity_date_time ([17390](https://github.com/civicrm/civicrm-core/pull/17390))**
+  Price option name and value are now required in the database.
 
-- **dev/core#1775 Fix fee amount reversals when doing a change of financi… ([17386](https://github.com/civicrm/civicrm-core/pull/17386))**
+- **Fix adding languages in multilingual
+  ([17228](https://github.com/civicrm/civicrm-core/pull/17228))**
 
-- **Use apiv4, cache infra for basicTypes ([17387](https://github.com/civicrm/civicrm-core/pull/17387))**
+  This resolves a database error when adding or removing a language on a
+  multilingual site.
 
-- **Fix adding languages in multilingual ([17228](https://github.com/civicrm/civicrm-core/pull/17228))**
+- **Don't exclude deleted contacts from ACL cache when user has permission
+  ([17379](https://github.com/civicrm/civicrm-core/pull/17379))**
 
-- **Various BAO create/add cleanups to use writeRecord() ([17308](https://github.com/civicrm/civicrm-core/pull/17308))**
+- **SMTP page appears broken when language is French (JS issue)
+  ([dev/core#1760](https://lab.civicrm.org/dev/core/-/issues/1760):
+  [17317](https://github.com/civicrm/civicrm-core/pull/17317))**
 
-- **Remove instantiation of transaction from payment express ipn class ([17348](https://github.com/civicrm/civicrm-core/pull/17348))**
+  Javascript strings that appear in Smarty are now escaped more thoroughly to
+  avoid markup problems.
 
-- **Remove null code ([17381](https://github.com/civicrm/civicrm-core/pull/17381))**
+- **Add serialize column to civicrm_custom_field, remove "Multi-Select" html
+  type ([16992](https://github.com/civicrm/civicrm-core/pull/16992), [17722](https://github.com/civicrm/civicrm-core/pull/17722))**
 
-- **Remove validation bypass ([17384](https://github.com/civicrm/civicrm-core/pull/17384))**
+  Work towards making custom select and multi-select fields more similar to
+  core select/multi-select fields.
 
-- **[NFC] Remove some more of the old  cvs blocks ([17383](https://github.com/civicrm/civicrm-core/pull/17383))**
+- **Respect file fields that have been configured as view only in profiles
+  ([17079](https://github.com/civicrm/civicrm-core/pull/17079))**
 
-- **[TEST] Fix test failure on Drupal 8 E2E PrevNextTest by only includin… ([17358](https://github.com/civicrm/civicrm-core/pull/17358))**
+- **Tag create - Respect created_date and created_id params
+  ([17257](https://github.com/civicrm/civicrm-core/pull/17257))**
 
-- **#991 subtypes not filled in when editing a smart group ([16541](https://github.com/civicrm/civicrm-core/pull/16541))**
+- **Public status messages should show correct class/icon like error
+  ([17376](https://github.com/civicrm/civicrm-core/pull/17376))**
 
-- **Don't exclude deleted contacts from ACL cache when user has permission ([17379](https://github.com/civicrm/civicrm-core/pull/17379))**
+- **Decorative chevrons should be icons not angle quotes
+  ([17245](https://github.com/civicrm/civicrm-core/pull/17245))**
 
-- **Make all icons aria-hidden ([17318](https://github.com/civicrm/civicrm-core/pull/17318))**
+- **A/B Test - Icon should be Erlenmeyer flask, not bar chart
+  ([17316](https://github.com/civicrm/civicrm-core/pull/17316))**
 
-- **CiviEvent Dashboard and Manage Events: clean up disused url template vars ([17378](https://github.com/civicrm/civicrm-core/pull/17378))**
+- **Proceeding to confirmation page should be a "next" button not a check
+  ([17246](https://github.com/civicrm/civicrm-core/pull/17246))**
 
-- **Replace ical and office calendar image icons ([17282](https://github.com/civicrm/civicrm-core/pull/17282))**
+### CiviCase
 
-- **Preliminary cleanup on form ([17345](https://github.com/civicrm/civicrm-core/pull/17345))**
+- **Case Activity: Follow-up activity assignee does not receive email
+  ([dev/core#1721](https://lab.civicrm.org/dev/core/-/issues/1721):
+  [17116](https://github.com/civicrm/civicrm-core/pull/17116))**
 
-- **Public status messages should show correct class/icon like error ([17376](https://github.com/civicrm/civicrm-core/pull/17376))**
+  Ensures when a follow up case activity is created the assignee is sent an
+  email.
 
-- **[REF] Minor code simplification ([17373](https://github.com/civicrm/civicrm-core/pull/17373))**
+### CiviContribute
 
-- **[REF] Call completeOrder directly from event status update form ([17346](https://github.com/civicrm/civicrm-core/pull/17346))**
+- **Custom fields disappear on page refresh
+  ([dev/core#1728](https://lab.civicrm.org/dev/core/-/issues/1728):
+  [17301](https://github.com/civicrm/civicrm-core/pull/17301))**
 
-- **Undo variable variable. ([17371](https://github.com/civicrm/civicrm-core/pull/17371))**
+  This ensures that financial type specific custom fields are displayed on the
+  backend contribution form when it is refreshed.
 
-- **Use non-deprecated method ([17370](https://github.com/civicrm/civicrm-core/pull/17370))**
+- **Fix pricefield pseudoconstant.
+  ([17364](https://github.com/civicrm/civicrm-core/pull/17364))**
 
-- **APIv4 - Improve pseudoconstant suffix support ([17368](https://github.com/civicrm/civicrm-core/pull/17368))**
+  Fixes `PriceField` entity to build options for the `price_set_id`
+  pseudoconstant field.
 
-- **Migrate CiviMail "extern" scripts to conventional routes ([17312](https://github.com/civicrm/civicrm-core/pull/17312))**
+- **Nuance cancel options for processors
+  ([17430](https://github.com/civicrm/civicrm-core/pull/17430))**
 
-- **dev/core#1757 hide menu toggle when D7 toolbar is absent ([17362](https://github.com/civicrm/civicrm-core/pull/17362))**
+  This allows payment processors to specify the way they allow cancellation of
+  recurring contributions.
 
-- **5.26 to master ([17369](https://github.com/civicrm/civicrm-core/pull/17369))**
+- **[regression] Contribution amount choices don't appear for anonymous users
+  ([dev/core#1823](https://lab.civicrm.org/dev/core/-/issues/1823):
+  [17619](https://github.com/civicrm/civicrm-core/pull/17619))**
 
-- **Fix setLanguage docblock, other nfc changes ([17356](https://github.com/civicrm/civicrm-core/pull/17356))**
+- **Import Contribution of custom fields only accepts "Numeric Value" rather
+  than "Label" ([dev/core#1806](https://lab.civicrm.org/dev/core/-/issues/1806):
+  [17632](https://github.com/civicrm/civicrm-core/pull/17632))**
 
-- **Improve js escaping in smarty {ts} ([17317](https://github.com/civicrm/civicrm-core/pull/17317))**
+- **"Financial Type" listed twice in contribution export
+  ([dev/core#1650](https://lab.civicrm.org/dev/core/-/issues/1650):
+  [17147](https://github.com/civicrm/civicrm-core/pull/17147))**
 
-- **Fix for dev/core#1608: correct date format for trxn_date. ([17355](https://github.com/civicrm/civicrm-core/pull/17355))**
+- **Record Payment does not update check_number & trxn id on main contribution.
+  ([dev/core#1758](https://lab.civicrm.org/dev/core/-/issues/1758):
+  [17314](https://github.com/civicrm/civicrm-core/pull/17314))**
 
-- **APIv4 - Remove implicit multi joins & add explicit joins ([17332](https://github.com/civicrm/civicrm-core/pull/17332))**
+- **civicrm_financial_trxn.fee_amount reversals mixed up
+  ([dev/core#1775](https://lab.civicrm.org/dev/core/-/issues/1775):
+  [17386](https://github.com/civicrm/civicrm-core/pull/17386))**
 
-- **[REF] [Reports] Ensure that all contribution pages including disabled ones are return… ([17357](https://github.com/civicrm/civicrm-core/pull/17357))**
+- **jquery validation type error on the credit card field
+  ([dev/core#1797](https://lab.civicrm.org/dev/core/-/issues/1797):
+  [17497](https://github.com/civicrm/civicrm-core/pull/17497))**
 
-- **[TEST] Update test to support for 8.0.19 change ([17354](https://github.com/civicrm/civicrm-core/pull/17354))**
+  Fixes a jQuery error when submitting a front end contribution form with a
+  credit card field.
 
-- **[REF] Cleanup and extract string functions specific to entity names. ([17330](https://github.com/civicrm/civicrm-core/pull/17330))**
+- **Fix payment instrument bug by using correct payment instrument
+  ([17607](https://github.com/civicrm/civicrm-core/pull/17607))**
 
-- **Switch docblock code to use markdown syntax. ([17304](https://github.com/civicrm/civicrm-core/pull/17304))**
+  When a backend payment form records a payment it now will use a
+  processor-specific default payment instrument rather than the site-wide
+  default if it is set.
 
-- **[REF] Stop passing  by reference. ([17349](https://github.com/civicrm/civicrm-core/pull/17349))**
+- **Payment PropertyBag - Fix setAmount
+  ([17505](https://github.com/civicrm/civicrm-core/pull/17505))**
 
-- **Call completeOrder directly from contribute status update form ([17347](https://github.com/civicrm/civicrm-core/pull/17347))**
+  Ensures "Amount" is set correctly on PropertyBag.
 
-- **Use status bounces, not fatal, in front end contribution form base class ([17343](https://github.com/civicrm/civicrm-core/pull/17343))**
+- **Fixed hide show of start date
+  ([17446](https://github.com/civicrm/civicrm-core/pull/17446))**
 
-- **dev/core#560 Replace deprecated CRM_Core_Error::fatal with either sta… ([17341](https://github.com/civicrm/civicrm-core/pull/17341))**
+  Fix hide/show of receive date for recurring contributions.
 
-- **Remove code that still seems unnecessary. ([17342](https://github.com/civicrm/civicrm-core/pull/17342))**
+- **Don't allow Contribution.repeattransaction to be used without a recurring
+  contribution ([17447](https://github.com/civicrm/civicrm-core/pull/17447))**
 
-- **[TEST] dev/core#1766 - Remove flakiness from testGetFromTo tests ([17338](https://github.com/civicrm/civicrm-core/pull/17338))**
+- **Add actual field name for processor_id to getSubscriptionDetails
+  ([17466](https://github.com/civicrm/civicrm-core/pull/17466))**
 
-- **[NFC] Add comment that deprecated code is actually still reachable ([17340](https://github.com/civicrm/civicrm-core/pull/17340))**
+- **Make 'Pending' the default status for Contribution.repeattransaction
+  ([17432](https://github.com/civicrm/civicrm-core/pull/17432))**
 
-- **dev/core#560 Replace some instances of CRM_Core_Error::fatal with an … ([17336](https://github.com/civicrm/civicrm-core/pull/17336))**
+- **Fetch line items from correct contribution when repeating a contribution
+  ([17220](https://github.com/civicrm/civicrm-core/pull/17220))**
 
-- **Extend icon helper support, including for formLink ([17319](https://github.com/civicrm/civicrm-core/pull/17319))**
+- **Support order_reference param in API3 Payment.create
+  ([17278](https://github.com/civicrm/civicrm-core/pull/17278))**
 
-- **Removed last TreePlus.gif and TreeMinus.gif spots ([17297](https://github.com/civicrm/civicrm-core/pull/17297))**
+- **E_WARNINGS when viewing list of pledge payments
+  ([dev/core#1791](https://lab.civicrm.org/dev/core/-/issues/1791):
+  [17434](https://github.com/civicrm/civicrm-core/pull/17434))**
 
-- **5.26 ([17337](https://github.com/civicrm/civicrm-core/pull/17337))**
+- **Add propertyBag handling for getEmail when incoming uses email-5
+  ([17267](https://github.com/civicrm/civicrm-core/pull/17267))**
 
-- **[REF] CRM_Core_DAO_AllCoreTables::getBriefName to accept BAO name ([17331](https://github.com/civicrm/civicrm-core/pull/17331))**
+  Payment processors can now retrieve billing email using the `propertyBag`
+  class methods.
 
-- **[REF] Missing semicolon on smtp settings page, code cleanup in file-on-case, add test ([17335](https://github.com/civicrm/civicrm-core/pull/17335))**
+### CiviMail
 
-- **Allow click-through and open tracking to be enabled/disabled by default ([17291](https://github.com/civicrm/civicrm-core/pull/17291))**
+- **Don't log subscription_history
+  ([dev/core#1762](https://lab.civicrm.org/dev/core/-/issues/1762):
+  [17323](https://github.com/civicrm/civicrm-core/pull/17323))**
 
-- **dev/core#1762 Don't log subscription_history ([17323](https://github.com/civicrm/civicrm-core/pull/17323))**
+  The `civicrm_subscription_history` table is effectively a log of contacts
+  being added to and removed from groups.  Rows do not change value; each change
+  in group subscription results in a new row.  Consequently, there is no reason
+  to attach detailed logging to this table.
 
-- **Accordion open-close with Font Awesome icons ([17296](https://github.com/civicrm/civicrm-core/pull/17296))**
+- **Unsubscribe generates 500 server error responses, logs say "missing
+  parameters" ([dev/core#1773](https://lab.civicrm.org/dev/core/-/issues/1773):
+  [17402](https://github.com/civicrm/civicrm-core/pull/17402))**
 
-- **[NFC] Add comment regarding lower case for Polish states ([17327](https://github.com/civicrm/civicrm-core/pull/17327))**
+  Ensures the unsubscribe form can only be submitted once.
 
-- **5.26 ([17329](https://github.com/civicrm/civicrm-core/pull/17329))**
+### CiviMember
 
-- **Trigger fatalErrorHandler for PEAR errors and for logs with severity ERROR or higher ([17277](https://github.com/civicrm/civicrm-core/pull/17277))**
+- **Recurring contribution fails with "ipn_payment_callback_exception", for
+  membership auto-renewal via PayPalPro.
+  ([dev/core#1608](https://lab.civicrm.org/dev/core/-/issues/1608):
+  [17355](https://github.com/civicrm/civicrm-core/pull/17355))**
 
-- **Comm prefs: add condition param for {privacyFlag} ([17307](https://github.com/civicrm/civicrm-core/pull/17307))**
+- **Don't hide disabled memberships from the contact membership tab
+  ([dev/membership#24](https://lab.civicrm.org/dev/membership/-/issues/24):
+  [17143](https://github.com/civicrm/civicrm-core/pull/17143) and
+  [17435](https://github.com/civicrm/civicrm-core/pull/17435))**
 
-- **Member tab: auto-renew status was hidden from screen readers ([17310](https://github.com/civicrm/civicrm-core/pull/17310))**
+  This resolves a problem where memberships of disabled membership types would
+  not appear on the membership tab but would throw a duplicate membership
+  warning when creating a new membership with the same membership organization.
+  This also adds a unit test to lock in the correct behavior.
 
-- **Remove unneeded parameters in {ts} on membership form ([17326](https://github.com/civicrm/civicrm-core/pull/17326))**
+- **Update MembershipType.name to be a required field
+  ([17463](https://github.com/civicrm/civicrm-core/pull/17463))**
 
-- **(NFC) CRM_Utils_Url - Fix declared type ([17320](https://github.com/civicrm/civicrm-core/pull/17320))**
+- **Fix PHP notice when is_override is not set
+  ([17273](https://github.com/civicrm/civicrm-core/pull/17273))**
 
-- **(NFC) Remove some cvs docblock help ([17322](https://github.com/civicrm/civicrm-core/pull/17322))**
+### Joomla Integration
 
-- **Add serialize column to civicrm_custom_field, remove "Multi-Select" html type ([16992](https://github.com/civicrm/civicrm-core/pull/16992))**
+- **Upgrade from 5.26.2 to 5.27 RC Fails
+  ([dev/joomla/#28](https://lab.civicrm.org/dev/joomla/-/issues/28):
+  [17710](https://github.com/civicrm/civicrm-core/pull/17710))**
 
-- **dev/core#1758 - Fix check number and trxn id values on record payment… ([17314](https://github.com/civicrm/civicrm-core/pull/17314))**
+### WordPress Integration
 
-- **No rendered icons in data source ([17285](https://github.com/civicrm/civicrm-core/pull/17285))**
+- **Styling issues after upgrade to WordPress 5.3
+  ([dev/wordpress#46](https://lab.civicrm.org/dev/wordpress/-/issues/46):
+  [16967](https://github.com/civicrm/civicrm-core/pull/16967))**
 
-- **crmButton: support icon=0 for no icon ([17303](https://github.com/civicrm/civicrm-core/pull/17303))**
+- **WP - Change definitions of `cms.root`, `civicrm.root`
+  ([17360](https://github.com/civicrm/civicrm-core/pull/17360))**
 
-- **Cleanup PriceFieldValue BAO ([17306](https://github.com/civicrm/civicrm-core/pull/17306))**
+  The base logic for computing path/URL defaults is in Civi/Core/Paths.php.
 
-- **Ui 18 ([17078](https://github.com/civicrm/civicrm-core/pull/17078))**
+  For CiviCRM on WordPress, certain variables (which are easier to compute via
+  WordPress APIs) are overridden in `CRM_Utils_System_WordPress`.
 
-- **dev/core#1721 send email to case follow-up activity assignees ([17116](https://github.com/civicrm/civicrm-core/pull/17116))**
+  On WordPress, the path/URL logic for has been split: there is one code path
+  for normal CiviCRM pages which is based on WordPress APIs, and there is
+  another for older, standalone scripts in the `extern` folder which is based on
+  the same logic as before.
 
-- **Clarify definition of amount field in civicrm_contribution_recur table. ([17311](https://github.com/civicrm/civicrm-core/pull/17311))**
+- **Declare minimum WP and PHP versions required for installation
+  ([201](https://github.com/civicrm/civicrm-wordpress/pull/201))**
 
-- **5.26 ([17313](https://github.com/civicrm/civicrm-core/pull/17313))**
+- **wp-rest - Adjust extern URL. Be more defensive about 'query' part.
+  ([192](https://github.com/civicrm/civicrm-wordpress/pull/192))**
 
-- **A/B test: icon should be Erlenmeyer flask, not bar chart ([17316](https://github.com/civicrm/civicrm-core/pull/17316))**
+  This resolves issues with tracking URLs via the `wp-rest` endpoint that are
+  then modified with `hook_civicrm_alterExternUrl`.
 
-- **[REF] Cleanup MailingAB BAO ([17309](https://github.com/civicrm/civicrm-core/pull/17309))**
+## <a name="misc"></a>Miscellany
 
-- **Screen reader text for wrenches ([17293](https://github.com/civicrm/civicrm-core/pull/17293))**
+- **Handle less common dynamic reference cases
+  ([17653](https://github.com/civicrm/civicrm-core/pull/17653))**
 
-- **sr-only text for relationship permissions ([17294](https://github.com/civicrm/civicrm-core/pull/17294))**
+- **Use apiv4, cache infra for basicTypes
+  ([17387](https://github.com/civicrm/civicrm-core/pull/17387))**
 
-- **dev/core#1728 Ensure that custom fields that extend specified financi… ([17301](https://github.com/civicrm/civicrm-core/pull/17301))**
+- **Cleanup PriceFieldValue BAO
+  ([17306](https://github.com/civicrm/civicrm-core/pull/17306))**
 
-- **[REF] Minor tidy up ([17302](https://github.com/civicrm/civicrm-core/pull/17302))**
+- **Clarify definition of amount field in civicrm_contribution_recur table.
+  ([17311](https://github.com/civicrm/civicrm-core/pull/17311))**
 
-- **Proceeding to confirmation page should be a "next" button not a check ([17246](https://github.com/civicrm/civicrm-core/pull/17246))**
+- **Call completeOrder directly from contribute status update form
+  ([17347](https://github.com/civicrm/civicrm-core/pull/17347))**
 
-- **Add ContributionRecur crud api ([17299](https://github.com/civicrm/civicrm-core/pull/17299))**
+- **Switch docblock code to use markdown syntax.
+  ([17304](https://github.com/civicrm/civicrm-core/pull/17304))**
 
-- **Replaced more> icon with Font Awesome ([17295](https://github.com/civicrm/civicrm-core/pull/17295))**
+- **Preliminary cleanup on form
+  ([17345](https://github.com/civicrm/civicrm-core/pull/17345))**
 
-- **Icon helper: replace quotes in html title. ([17289](https://github.com/civicrm/civicrm-core/pull/17289))**
+- **Add getBAOClassName utiltiy function
+  ([17268](https://github.com/civicrm/civicrm-core/pull/17268))**
 
-- **Fix PHP notice when is_override is not set ([17273](https://github.com/civicrm/civicrm-core/pull/17273))**
+- **CRM/Logging - Remove obsolete cache static clear in test
+  ([17269](https://github.com/civicrm/civicrm-core/pull/17269))**
 
-- **dev/wp#46 - Fix overlarge select2 elements in WordPress 5.3+ ([16967](https://github.com/civicrm/civicrm-core/pull/16967))**
+- **Remove incorrect retrievals of tax-term setting
+  ([17183](https://github.com/civicrm/civicrm-core/pull/17183))**
 
-- **Simplify admin console and remove superfluous icons ([17284](https://github.com/civicrm/civicrm-core/pull/17284))**
+- **CiviEvent Dashboard and Manage Events: clean up disused url template vars
+  ([17378](https://github.com/civicrm/civicrm-core/pull/17378))**
 
-- **Replace stop-icon.png with fa-ban over a relevant icon for privacy ([17283](https://github.com/civicrm/civicrm-core/pull/17283))**
+- **Set default using spec for activity_date_time
+  ([17390](https://github.com/civicrm/civicrm-core/pull/17390))**
 
-- **[REF] Add contribution_id field to search using metadata instead of h… ([17286](https://github.com/civicrm/civicrm-core/pull/17286))**
+- **Convert remaining Authorize.net test to use guzzle
+  ([17473](https://github.com/civicrm/civicrm-core/pull/17473))**
 
-- **Replace all instances of copy.png with font awesome ([17280](https://github.com/civicrm/civicrm-core/pull/17280))**
+- **Various BAO create/add cleanups to use writeRecord()
+  ([17308](https://github.com/civicrm/civicrm-core/pull/17308))**
 
-- **Remove most uses of check.gif ([17279](https://github.com/civicrm/civicrm-core/pull/17279))**
+- **Remove instantiation of transaction from payment express ipn class
+  ([17348](https://github.com/civicrm/civicrm-core/pull/17348))**
 
-- **NFC Change hardcoded ID to constant ([17275](https://github.com/civicrm/civicrm-core/pull/17275))**
+- **Remove null code
+  ([17381](https://github.com/civicrm/civicrm-core/pull/17381))**
 
-- **Replace geotag_16.png with fa-map-marker ([17281](https://github.com/civicrm/civicrm-core/pull/17281))**
+- **Remove validation bypass
+  ([17384](https://github.com/civicrm/civicrm-core/pull/17384))**
 
-- **(dev/core#1580) Allow to search on contribution id ([16484](https://github.com/civicrm/civicrm-core/pull/16484))**
+- **Simplify recurring contribution template inheritance
+  ([17178](https://github.com/civicrm/civicrm-core/pull/17178))**
 
-- **dev/user-interface#17 Fix popup confirmation on import forms ([17067](https://github.com/civicrm/civicrm-core/pull/17067))**
+- **Remove $_REQUEST passed into CRM_Utils_Request::retrieve NFC
+  ([17377](https://github.com/civicrm/civicrm-core/pull/17377))**
 
-- **Merge code - remove UPDATE IGNORE+Delete & just use reliable update ([17072](https://github.com/civicrm/civicrm-core/pull/17072))**
+- **Use now instead of date for activity API3 spec
+  ([17411](https://github.com/civicrm/civicrm-core/pull/17411))**
 
-- **respect file fields that have been configured as view only in profiles ([17079](https://github.com/civicrm/civicrm-core/pull/17079))**
+- **Typo Fix ([17409](https://github.com/civicrm/civicrm-core/pull/17409))**
 
-- **dev/core#1743 - Fix decoding of apostrophes in csv export from CiviReports ([17260](https://github.com/civicrm/civicrm-core/pull/17260))**
+- **Fix logic for job log cleanup and make SQL safer
+  ([17203](https://github.com/civicrm/civicrm-core/pull/17203))**
 
-- **Decorative chevrons should be icons not angle quotes ([17245](https://github.com/civicrm/civicrm-core/pull/17245))**
+- **Remove always-true if block.
+  ([17415](https://github.com/civicrm/civicrm-core/pull/17415))**
 
-- **Tag create: respect created_date and created_id params ([17257](https://github.com/civicrm/civicrm-core/pull/17257))**
+- **Remove No longer required HTTP_Request Package
+  ([293](https://github.com/civicrm/civicrm-packages/pull/293))**
 
-- **Add getBAOClassName utiltiy function ([17268](https://github.com/civicrm/civicrm-core/pull/17268))**
+- **Remove code that still seems unnecessary.
+  ([17342](https://github.com/civicrm/civicrm-core/pull/17342))**
 
-- **CRM/Logging - Remove obsolete cache static clear in test ([17269](https://github.com/civicrm/civicrm-core/pull/17269))**
+- **Undo variable variable.
+  ([17371](https://github.com/civicrm/civicrm-core/pull/17371))**
 
-- **Add propertyBag handling for getEmail when incoming uses email-5 ([17267](https://github.com/civicrm/civicrm-core/pull/17267))**
+- **Use non-deprecated method
+  ([17370](https://github.com/civicrm/civicrm-core/pull/17370))**
 
-- **(NFC) RegionTest - Small cleanups ([17270](https://github.com/civicrm/civicrm-core/pull/17270))**
+- **Remove last reference to Payment->_processorName in core & remove from
+  processors ([17474](https://github.com/civicrm/civicrm-core/pull/17474))**
 
-- **5.26 ([17263](https://github.com/civicrm/civicrm-core/pull/17263))**
+- **Remove unused singleton from core payment processors
+  ([17468](https://github.com/civicrm/civicrm-core/pull/17468))**
 
-- **[REF] Grant BAO cleanup ([17264](https://github.com/civicrm/civicrm-core/pull/17264))**
+- **Test fixes to support apiv4 add of MembershipType
+  ([17488](https://github.com/civicrm/civicrm-core/pull/17488))**
 
-- **[NFC] Add sr-only class for content only for screen readers ([17255](https://github.com/civicrm/civicrm-core/pull/17255))**
+- **Merge code - remove UPDATE IGNORE+Delete & just use reliable update
+  ([17072](https://github.com/civicrm/civicrm-core/pull/17072))**
 
-- **Remove incorrect retrievals of tax-term setting ([17183](https://github.com/civicrm/civicrm-core/pull/17183))**
+- **Remove unneeded parameters in {ts} on membership form
+  ([17326](https://github.com/civicrm/civicrm-core/pull/17326))**
 
-- **provide Calendar module with end_date when duration is provided ([601](https://github.com/civicrm/civicrm-drupal/pull/601))**
+- **Remove unused 'reset' param, other NFC tidy up:
+  ([17392](https://github.com/civicrm/civicrm-core/pull/17392))**
 
-- **Declare Minimum WP and PHP versions required for installation ([201](https://github.com/civicrm/civicrm-wordpress/pull/201))**
+- **Fix setLanguage docblock, other nfc changes
+  ([17356](https://github.com/civicrm/civicrm-core/pull/17356))**
 
-- **5.26 ([200](https://github.com/civicrm/civicrm-wordpress/pull/200))**
+- **[REF] Simplify contributionIDs code
+  ([17441](https://github.com/civicrm/civicrm-core/pull/17441))**
 
-- **wp-rest - Adjust extern URL. Be more defensive about 'query' part. ([192](https://github.com/civicrm/civicrm-wordpress/pull/192))**
+- **[REF] Extract getAttachments
+  ([17405](https://github.com/civicrm/civicrm-core/pull/17405))**
 
-- **5.26 ([198](https://github.com/civicrm/civicrm-wordpress/pull/198))**
+- **[REF] Preliminary cleanup for #17339
+  ([17417](https://github.com/civicrm/civicrm-core/pull/17417))**
 
-- **5.26 to master ([197](https://github.com/civicrm/civicrm-wordpress/pull/197))**
+- **[REF] Remove unreachable block.
+  ([17407](https://github.com/civicrm/civicrm-core/pull/17407))**
 
-- **Remove No longer required HTTP_Request Package ([293](https://github.com/civicrm/civicrm-packages/pull/293))**
+- **[REF] Pass an array of correct params to the function to create a recurring
+  contribution. ([17398](https://github.com/civicrm/civicrm-core/pull/17398))**
 
-## <a name="misc"></a>Miscellany
+- **[REF] Code simplification & unit test on suppressed emails in task
+  ([17393](https://github.com/civicrm/civicrm-core/pull/17393))**
+
+- **[REF] duplicate function.
+  ([17400](https://github.com/civicrm/civicrm-core/pull/17400))**
+
+- **[REF] Pass params not-by-reference
+  ([17406](https://github.com/civicrm/civicrm-core/pull/17406))**
+
+- **[REF] Refactor to switch from pear HTTP Request class to using Guzzle
+  ([17420](https://github.com/civicrm/civicrm-core/pull/17420))**
+
+- **[REF] [Reports] Ensure that all contribution pages including disabled ones
+  are return… ([17357](https://github.com/civicrm/civicrm-core/pull/17357))**
+
+- **[REF] Cleanup and extract string functions specific to entity names.
+  ([17330](https://github.com/civicrm/civicrm-core/pull/17330))**
+
+- **[REF] Stop passing  by reference.
+  ([17349](https://github.com/civicrm/civicrm-core/pull/17349))**
+
+- **[REF] Simplify subject code.
+  ([17436](https://github.com/civicrm/civicrm-core/pull/17436))**
+
+- **[REF] Implement required fields database changes that have occured du…
+  ([17465](https://github.com/civicrm/civicrm-core/pull/17465), [17725](https://github.com/civicrm/civicrm-core/pull/17725))**
+
+- **[REF] Bump Pear Log version to fix compatability with Drupal 8 / Drup…
+  ([17460](https://github.com/civicrm/civicrm-core/pull/17460))**
+
+- **[REF] Convert one of the http calls in Authorize.net class to use guzzle.
+  ([17449](https://github.com/civicrm/civicrm-core/pull/17449))**
+
+- **[REF] Minor simplification
+  ([17443](https://github.com/civicrm/civicrm-core/pull/17443))**
+
+- **[REF] Grant BAO cleanup
+  ([17264](https://github.com/civicrm/civicrm-core/pull/17264))**
+
+- **[REF] CRM_Core_DAO_AllCoreTables::getBriefName to accept BAO name
+  ([17331](https://github.com/civicrm/civicrm-core/pull/17331))**
+
+- **[REF] Missing semicolon on smtp settings page, code cleanup in file-on-case,
+  add test ([17335](https://github.com/civicrm/civicrm-core/pull/17335))**
+
+- **[REF] Extract createFollowUpActivities
+  ([17481](https://github.com/civicrm/civicrm-core/pull/17481))**
+
+- **[REF] Switch to an api call to get the contact details.
+  ([17442](https://github.com/civicrm/civicrm-core/pull/17442))**
+
+- **[REF] Minor code simplification
+  ([17373](https://github.com/civicrm/civicrm-core/pull/17373))**
+
+- **[REF] Call completeOrder directly from event status update form
+  ([17346](https://github.com/civicrm/civicrm-core/pull/17346))**
+
+- **[REF] Remove never-passed params from function signature
+  ([17464](https://github.com/civicrm/civicrm-core/pull/17464))**
+
+- **[REF] Fix serialized membership field handling in RelationshipTest
+  ([17469](https://github.com/civicrm/civicrm-core/pull/17469))**
+
+- **[REF] Minor tidy up
+  ([17302](https://github.com/civicrm/civicrm-core/pull/17302))**
+
+- **[REF] Remove always NULL param modified_id
+  ([17489](https://github.com/civicrm/civicrm-core/pull/17489))**
+
+- **[REF] Add contribution_id field to search using metadata instead of h…
+  ([17286](https://github.com/civicrm/civicrm-core/pull/17286))**
+
+- **[REF] Fix unit test failures on MySQL 5.6 due to Custom Field table being
+  created without Dynamic Row Format
+  ([17586](https://github.com/civicrm/civicrm-core/pull/17586))**
+
+- **[REF] Start to convert Dummy processor to use PropertyBag
+  ([17452](https://github.com/civicrm/civicrm-core/pull/17452))**
+
+- **[Ref] remove calls to, and deprecate, pending function
+  ([17490](https://github.com/civicrm/civicrm-core/pull/17490))**
+
+- **[REF] Cleanup MailingAB BAO
+  ([17309](https://github.com/civicrm/civicrm-core/pull/17309))**
+
+- **[TEST] Update test to support for 8.0.19 change
+  ([17354](https://github.com/civicrm/civicrm-core/pull/17354))**
+
+- **[TEST] Fix test failure on Drupal 8 E2E PrevNextTest by only includin…
+  ([17358](https://github.com/civicrm/civicrm-core/pull/17358))**
+
+- **[TEST] dev/core#1766 - Remove flakiness from testGetFromTo tests
+  ([dev/core#1766](https://lab.civicrm.org/dev/core/-/issues/1766):
+  [17338](https://github.com/civicrm/civicrm-core/pull/17338))**
+
+- **[NFC/TEST] dev/core#1784 - Unit tests for contact delete/restore
+  ([dev/core#1784](https://lab.civicrm.org/dev/core/-/issues/1784):
+  [17437](https://github.com/civicrm/civicrm-core/pull/17437))**
+
+- **NFC - Change array() to short syntax []
+  ([17470](https://github.com/civicrm/civicrm-core/pull/17470))**
+
+- **[NFC] Update Karma to be latest version
+  ([17439](https://github.com/civicrm/civicrm-core/pull/17439))**
+
+- **(NFC) CRM_Utils_Url - Fix declared type
+  ([17320](https://github.com/civicrm/civicrm-core/pull/17320))**
+
+- **[NFC] Remove some more of the old  cvs blocks
+  ([17383](https://github.com/civicrm/civicrm-core/pull/17383))**
+
+- **NFC Add a bit more clarity to createEmailActivity function
+  ([17391](https://github.com/civicrm/civicrm-core/pull/17391))**
+
+- **[NFC] Add comment that deprecated code is actually still reachable
+  ([17340](https://github.com/civicrm/civicrm-core/pull/17340))**
+
+- **(NFC) Remove some cvs docblock help
+  ([17322](https://github.com/civicrm/civicrm-core/pull/17322))**
+
+- **[NFC] Add comment regarding lower case for Polish states
+  ([17327](https://github.com/civicrm/civicrm-core/pull/17327))**
+
+- **(NFC) RegionTest - Small cleanups
+  ([17270](https://github.com/civicrm/civicrm-core/pull/17270))**
+
+- **[NFC] Add sr-only class for content only for screen readers
+  ([17255](https://github.com/civicrm/civicrm-core/pull/17255))**
+
+- **NFC Change hardcoded ID to constant
+  ([17275](https://github.com/civicrm/civicrm-core/pull/17275))**
+
+- **[NFC] Fix use of single quotes, strict operator
+  ([17492](https://github.com/civicrm/civicrm-core/pull/17492))**
 
 ## <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; British Humanist Association - Andrew West; Caltha - Tomasz Pietrzkowski; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - René Olivo; Coop SymbioTIC - Mathieu Lutfy; Dave D; Electronic Frontier Foundation - Mark Burdett; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; JMA Consulting - Edsel Lopez, Seamus Lee; jmdh; John Kingsnorth; Joinery - Allen Shaw; Kartik Kathuria; Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Palante Technology Cooperative - Morgan Robinson; Semper IT - Karin Gerritsen; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton
+a-n The Artists Information Company - William Mortada; AGH Strategies - Alice
+Frumin, Andie Hunt; Andrei Mondoc; British Humanist Association - Andrew West;
+Caltha - Tomasz Pietrzkowski; Christian Wach; Circle Interactive - Pradeep
+Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku;
+CompuCorp - René Olivo; Coop SymbioTIC - Mathieu Lutfy; Dave D; Dominic Hargreaves;
+Electronic Frontier Foundation - Mark Burdett; Freeform Solutions - Herb van den
+Dool; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick
+Figel; JMA Consulting - Edsel Lopez, Seamus Lee; John Kingsnorth; Joinery -
+Allen Shaw; Kartik Kathuria; Lighthouse Design and Consulting - Brian
+Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey
+O'Toole; MJW Consulting - Matthew Wire; Palante Technology Cooperative - Morgan
+Robinson; Semper IT - Karin Gerritsen; Tadpole Collective - Kevin Cristiano;
+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; Agileware - Justin Freeman; Artful Robot - Rich Lott; Betty Dolfing; British Humanist Association - Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - René Olivo; Coop SymbioTIC - Mathieu Lutfy; Dave D; Electronic Frontier Foundation - Mark Burdett; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; iXiam - Luciano Spiegel; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Joinery - Allen Shaw; Kartik Kathuria; Korlon - Stuart Gaston; megaphonetech-dennis; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Palante Technology Cooperative - Morgan Robinson; Semper IT - Karin Gerritsen; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton
+Agileware - Justin Freeman; Artful Robot - Rich Lott; Betty Dolfing; CiviCoop -
+Jaap Jansma; iXiam - Luciano Spiegel; JMA Consulting - Monish Deb; Kartik
+Kathuria; Korlon - Stuart Gaston; Megaphone Technology Consulting - Dennis P.
+Osorio; Squiffle Consulting - Aidan Saunders
 
 ## <a name="feedback"></a>Feedback
 
-These release notes are edited by Alice Frumin and Andrew Hunt.  If you'd like
+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`.