| *Does this version...?* | |
|:--------------------------------------------------------------- |:-------:|
-| Fix security vulnerabilities? | |
-| Change the database schema? | |
-| Alter the API? | |
-| Require attention to configuration options? | |
-| Fix problems installing or upgrading to a previous version? | |
-| Introduce features? | |
-| Fix bugs? | |
+| Fix security vulnerabilities? | no |
+| **Change the database schema?** | **yes** |
+| **Alter the API?** | **yes** |
+| **Require attention to configuration options?** | **yes** |
+| **Fix problems installing or upgrading to a previous version?** | **yes** |
+| **Introduce features?** | **yes** |
+| **Fix bugs?** | **yes** |
## <a name="features"></a>Features
### Core CiviCRM
-- **crm- Missing Summary ([17809](https://github.com/civicrm/civicrm-core/pull/17809))**
+- **Contact export is very slow, creates huge temporary tables
+ ([dev/core#1725](https://lab.civicrm.org/dev/core/-/issues/1725):
+ [17458](https://github.com/civicrm/civicrm-core/pull/17458))**
-- **CRM- Missing Summary ([17749](https://github.com/civicrm/civicrm-core/pull/17749))**
+ Improves performance when exporting contacts by only exporting primary address
+ fields.
-## <a name="bugs"></a>Bugs resolved
+- **Allow different output formats for CiviReport results, like native excel
+ format, and untangle code
+ ([dev/core#1855](https://lab.civicrm.org/dev/core/-/issues/1855):
+ [17901](https://github.com/civicrm/civicrm-core/pull/17901))**
-### Core CiviCRM
+ This makes it possible to extend CiviReport by reworking the PDF and CSV
+ generation code as new output handlers, and allowing for extension developers
+ to add new ones.
-- **dev/core#1983 Fix to tax calculation on multi-line-item ([18290](https://github.com/civicrm/civicrm-core/pull/18290))**
+- **Icon in status message after saving a civireport is misleading
+ ([dev/report#43](https://lab.civicrm.org/dev/report/-/issues/43):
+ [17863](https://github.com/civicrm/civicrm-core/pull/17863))**
-- **dev/core#1982 - 5.29 version of PR 18282 ([18301](https://github.com/civicrm/civicrm-core/pull/18301))**
+ Improves icons in Status Messages for reports.
-- **dev/core#1972 Fix tax_amount calclation on renewal form ([18271](https://github.com/civicrm/civicrm-core/pull/18271))**
+- **Show cron warning on Scheduled Jobs admin page
+ ([18065](https://github.com/civicrm/civicrm-core/pull/18065))**
-- **Update contributor key for Andrew ([18230](https://github.com/civicrm/civicrm-core/pull/18230))**
+ A pop-up message will appear on the Scheduled Jobs page if cron has not been
+ running.
-- **5.28.2 & 5.29.3 Release Notes ([18228](https://github.com/civicrm/civicrm-core/pull/18228))**
+- **Add APIv4 and pseudoconstants for RelationshipCache
+ ()**
-- **dev/core#1937 - Upgrade message about needing composer patching turned on and updating mysql in DSN strings ([18174](https://github.com/civicrm/civicrm-core/pull/18174))**
+- **RelationshipCache - Add a high-level index to facilitate relationship
+ queries (more fields)
+ ([17781](https://github.com/civicrm/civicrm-core/pull/17781) and
+ [17879](https://github.com/civicrm/civicrm-core/pull/17879))**
-- **Revert "Swap out button/submit inputs for button elements" ([18185](https://github.com/civicrm/civicrm-core/pull/18185))**
+ A new table caches relationships to provide a single resource for tracking
+ relationships from a specified contact's perspective. The RelationshipCache
+ records the "near" and "far" contacts and relationship names along with the
+ orientation and relationship type. Each record from `civicrm_relationship`
+ will have two records in `civicrm_relationship_cache`, one for each
+ orientation.
-- **Installation doclinks not getting url-rewritten ([18175](https://github.com/civicrm/civicrm-core/pull/18175))**
+- **Remove ORDER BY and GROUP BY from alphabetQuery to improve performance
+ ([16877](https://github.com/civicrm/civicrm-core/pull/16877))**
-- **Fix 5.29 (unreleased) regression using temp tables ([18133](https://github.com/civicrm/civicrm-core/pull/18133))**
+- **Differentiate smart group from regular group using icon in select2 field
+ ([dev/core#785](https://lab.civicrm.org/dev/core/-/issues/785):
+ [17927](https://github.com/civicrm/civicrm-core/pull/17927))**
-- **Swap out button/submit inputs for button elements ([18091](https://github.com/civicrm/civicrm-core/pull/18091))**
+ Improves Group's select2 by adding icon next to smart groups.
-- **dev/event#40 - EventCart - Check legacy setting until extension is public ([18101](https://github.com/civicrm/civicrm-core/pull/18101))**
+- **Feature: Ability to enable SSL for database connection.
+ ([dev/core#1137](https://lab.civicrm.org/dev/core/-/issues/1137):
+ [17706](https://github.com/civicrm/civicrm-core/pull/17706))**
-- **dev/wordpress#66 Re-instate newer variables but with more support for… ([18068](https://github.com/civicrm/civicrm-core/pull/18068))**
+ Makes it so sites can use ssl to connect to mysql.
-- **dev/core#1895 fix first/last name adv search ([17950](https://github.com/civicrm/civicrm-core/pull/17950))**
+- **Add in hook to allow for altering of Profile Schemas
+ ([dev/core#1913](https://lab.civicrm.org/dev/core/-/issues/1913):
+ [17986](https://github.com/civicrm/civicrm-core/pull/17986))**
-- **dev/core#1905 force backend links for new "configure" buttons ([18088](https://github.com/civicrm/civicrm-core/pull/18088))**
+ Extensions that allow additional fields to be added to profiles can now add
+ schemas so that fields can be added from new entities.
-- **dev/core#1932 - Make status-checks more polite during upgrade ([18085](https://github.com/civicrm/civicrm-core/pull/18085))**
+- **Why not make the buttons flat?
+ ([18054](https://github.com/civicrm/civicrm-core/pull/18054))**
-- **dev/core#1928 Fix HTML5 error due to required attribute being set swi… ([18080](https://github.com/civicrm/civicrm-core/pull/18080))**
+ Buttons no longer have a gradient background.
-- **5.28 ([18084](https://github.com/civicrm/civicrm-core/pull/18084))**
+- **SystemCheck: add ability to efficiently run only specified checks
+ ([17824](https://github.com/civicrm/civicrm-core/pull/17824))**
-- **5.28 ([18082](https://github.com/civicrm/civicrm-core/pull/18082))**
+ The APIv4 system check action can now filter on name, running just the
+ specified check(s).
-- **dev/financial#135 Remove stub function from payflowPro ([18078](https://github.com/civicrm/civicrm-core/pull/18078))**
+- **Change inform-icon to fa-info-circle
+ ([18001](https://github.com/civicrm/civicrm-core/pull/18001))**
-- **5.28 ([18077](https://github.com/civicrm/civicrm-core/pull/18077))**
+ The information icon is now produced with Font Awesome rather than a sprite.
-- **Fix button name on updated form ([18000](https://github.com/civicrm/civicrm-core/pull/18000))**
+- **APIv4 - Add keyword to select all custom fields
+ ([17955](https://github.com/civicrm/civicrm-core/pull/17955))**
-- **[NFC] Fix provider unit test on PHP7.4 ([18073](https://github.com/civicrm/civicrm-core/pull/18073))**
+ You can now use a wildcard to select all custom fields on an entity without
+ specifying each individually.
-- **[REF] Move handling of form elements back to the Form ([17981](https://github.com/civicrm/civicrm-core/pull/17981))**
+- **Improve caching of current domain
+ ([17916](https://github.com/civicrm/civicrm-core/pull/17916))**
-- **Do not pass-by-reference to recur function ([18071](https://github.com/civicrm/civicrm-core/pull/18071))**
+ Domain information is now cached in one central place, making it more
+ straightforward to use and flush.
-- **dev/financial#135 Remove unreachable doDirectPayment from manual processor ([18072](https://github.com/civicrm/civicrm-core/pull/18072))**
+- **APIv4 - Specify BridgeEntities to assist with joins
+ ([17808](https://github.com/civicrm/civicrm-core/pull/17808))**
-- **Refactor "applyLocale" and remove references to "language" column in UFMatch table ([18049](https://github.com/civicrm/civicrm-core/pull/18049))**
+ Minor entities that intermediate many-to-many relationships are now specified
+ as bridge entities and extend from a new base class. This will allow them to
+ be distinguished better in the future.
-- **Show cron warning on Scheduled Jobs admin page ([18065](https://github.com/civicrm/civicrm-core/pull/18065))**
+- **APIv4 - Add shorthand for setCheckPermissions()
+ ([17834](https://github.com/civicrm/civicrm-core/pull/17834) and
+ [17874](https://github.com/civicrm/civicrm-core/pull/17874))**
-- **5.28 ([18069](https://github.com/civicrm/civicrm-core/pull/18069))**
+ The CRUD functions of APIv4 now accept a boolean argument that corresponds to
+ the value sent to `setCheckPermissions()`. This provides a shorthand for a
+ very common use case.
-- **Use correct pdf package to generate pdf file on invoice download/email activity ([18056](https://github.com/civicrm/civicrm-core/pull/18056))**
+- **Add search extension
+ ([17775](https://github.com/civicrm/civicrm-core/pull/17775),
+ [17789](https://github.com/civicrm/civicrm-core/pull/17789), and
+ [17864](https://github.com/civicrm/civicrm-core/pull/17864))**
-- **Fix buggy placement of icons on buttons ([18005](https://github.com/civicrm/civicrm-core/pull/18005))**
+ An extension that replaces Search Builder is now shipped with core, though it
+ is hidden from the extensions user interface because it is currently
+ incompatible with the default theming framework.
-- **[REF] Even less variable variables ([18058](https://github.com/civicrm/civicrm-core/pull/18058))**
+### CiviContribute
-- **dev/core#1905 rework #17942 with simpler ts strings ([18064](https://github.com/civicrm/civicrm-core/pull/18064))**
+- **Add configure and priceset url icons on public contribution & event pages
+ ([dev/core#1905](https://lab.civicrm.org/dev/core/-/issues/1905):
+ [17942](https://github.com/civicrm/civicrm-core/pull/17942),
+ [18088](https://github.com/civicrm/civicrm-core/pull/18088) and
+ [18064](https://github.com/civicrm/civicrm-core/pull/18064))**
-- **Extract code to set isEmailReceipt in Contribution.completeOrder ([18039](https://github.com/civicrm/civicrm-core/pull/18039))**
+ A "Configure" button now appears to administrators when viewing a contribution
+ page or event, or a priceset within either, from the frontend. This links to
+ the corresponding form to administer the contribution page, event, or
+ priceset.
-- **[REF] remove first attempt to set currency in repeattransaction flow ([18055](https://github.com/civicrm/civicrm-core/pull/18055))**
+### CiviEvent
-- **5.28 ([18063](https://github.com/civicrm/civicrm-core/pull/18063))**
+- **Move Event Cart to extension
+ ([17741](https://github.com/civicrm/civicrm-core/pull/17741),
+ [17743](https://github.com/civicrm/civicrm-core/pull/17743),
+ [17861](https://github.com/civicrm/civicrm-core/pull/17861),
+ [17884](https://github.com/civicrm/civicrm-core/pull/17884),
+ [17885](https://github.com/civicrm/civicrm-core/pull/17885), and
+ [17891](https://github.com/civicrm/civicrm-core/pull/17891))**
-- **dev/core#1905 Add configure icons on public pages ([17942](https://github.com/civicrm/civicrm-core/pull/17942))**
+ The event cart features have been moved to a separate extension that is
+ shipped with core.
-- **CRM_Utils_Hook: deprecation warning and short array syntax ([17995](https://github.com/civicrm/civicrm-core/pull/17995))**
+### CiviMember
-- **event#35: move statusBounce out of BAO layer; don't allow self-service when dis… ([18040](https://github.com/civicrm/civicrm-core/pull/18040))**
+- **Option to update expired memberships as part of the job.process_membership
+ ([dev/membership#18](https://lab.civicrm.org/dev/membership/-/issues/18):
+ [16298](https://github.com/civicrm/civicrm-core/pull/16298))**
-- **Why not make the buttons flat? ([18054](https://github.com/civicrm/civicrm-core/pull/18054))**
+ Improves the Job.process_membership API/Scheduled job by adding some new
+ parameters, specifically:
-- **[REF] Simplify location metadata handling in Export class ([17951](https://github.com/civicrm/civicrm-core/pull/17951))**
+ - exclude_test_memberships: Exclude test memberships from calculations
+ (default = TRUE)
+ - only_active_membership_types: Exclude disabled membership types from
+ calculations (default = TRUE)
+ - exclude_membership_status_ids: Default: Exclude Pending, Cancelled,
+ Expired.
-- **5.28 ([18059](https://github.com/civicrm/civicrm-core/pull/18059))**
+ Deceased will always be excluded
-- **[REF] Do not pass by reference to the recur function ([18057](https://github.com/civicrm/civicrm-core/pull/18057))**
+- **Add auto-renew status to membership detail report
+ ([17683](https://github.com/civicrm/civicrm-core/pull/17683) and
+ [17911](https://github.com/civicrm/civicrm-core/pull/17911))**
-- **[REF] Simplify getMembershipStatusByDate more ([18051](https://github.com/civicrm/civicrm-core/pull/18051))**
+ The membership detail report can now display and filter on the auto-renew
+ status of each membership.
-- **Fix obscure dedupe scenario where 'bad' location data can overwrite good data ([17993](https://github.com/civicrm/civicrm-core/pull/17993))**
+### Backdrop Integration
-- **dev/drupal#127 - require email for the Useradd task and errors not showing ([17915](https://github.com/civicrm/civicrm-core/pull/17915))**
+- **Support for installing CiviCRM-Backdrop via "setup" UI
+ ([17749](https://github.com/civicrm/civicrm-core/pull/17749) and
+ [121](https://github.com/civicrm/civicrm-backdrop/pull/121))**
-- **dev/core#1921 [Ref] remove isoToMysql ([18025](https://github.com/civicrm/civicrm-core/pull/18025))**
+ Improves the installation and Setup process for Backdrop integration's so that
+ one enables the CiviCRM module like any other module and then is directed to
+ the setup screen to complete installation as opposed to having to navigate to
+ a specific link.
-- **dev/core#1665 Remove the having clause as well as having needs a group by ([18052](https://github.com/civicrm/civicrm-core/pull/18052))**
+### Drupal Integration
-- **Remove ORDER BY and GROUP BY from alphabetQuery to improve performance ([16877](https://github.com/civicrm/civicrm-core/pull/16877))**
+- **Upgrading a site that still has "mysql" in the dsn string breaks in latest
+ master ([dev/core#1937](https://lab.civicrm.org/dev/core/-/issues/1937):
+ [18174](https://github.com/civicrm/civicrm-core/pull/18174))**
-- **Fix JQuery Validation for radios ([17937](https://github.com/civicrm/civicrm-core/pull/17937))**
+ This adds an upgrade message for 5.29.0 warning that Composer patching will
+ need to be enabled before upgrading to 5.30.0 or higher.
-- **[REF] Simplify membership status date handling ([18030](https://github.com/civicrm/civicrm-core/pull/18030))**
+ The "mysql" in the DSN (as opposed to "mysqli") will not be a problem, but the
+ solution for this is in a package patch that appears in 5.30.
-- **Fix PaypalIPN single function to not receive-by-reference ([18044](https://github.com/civicrm/civicrm-core/pull/18044))**
+- **Installation - Support "activate first" w/setup UI
+ ([606](https://github.com/civicrm/civicrm-drupal/pull/606))**
-- **Remove requirement to pass 'contribution_status_id' => Pending from order.create ([18018](https://github.com/civicrm/civicrm-core/pull/18018))**
+ The new setup user interface for Backdrop and WordPress installations is now
+ available for Drupal 7.
-- **[REF] Clean up handling of financial_type_id override ([18032](https://github.com/civicrm/civicrm-core/pull/18032))**
+### WordPress Integration
-- **Use saved contribution's line items rather than the primaryContributionID ([18033](https://github.com/civicrm/civicrm-core/pull/18033))**
+- **Add system check to ensure WP base page exists
+ ([17698](https://github.com/civicrm/civicrm-core/pull/17698))**
-- **[REF] Remove transaction from completeOrder signature ([18046](https://github.com/civicrm/civicrm-core/pull/18046))**
+ A new system check will display a message if the base page, as set in CiviCRM,
+ doesn't match an existing page in WordPress. No message will display if
+ WordPress multisite is enabled.
-- **Wrap multi record custom field inside a div ([17966](https://github.com/civicrm/civicrm-core/pull/17966))**
+## <a name="bugs"></a>Bugs resolved
-- **[Test fix] We might need this to ensure really quick test runs don't fail ([18045](https://github.com/civicrm/civicrm-core/pull/18045))**
+### Core CiviCRM
-- **dev/core#1137 - Allow ssl connection to mysql by specifying in DSN ([17706](https://github.com/civicrm/civicrm-core/pull/17706))**
+- **CRM_Dedupe_Finder parses phone key incorrectly
+ ([dev/core#1767](https://lab.civicrm.org/dev/core/-/issues/1767):
+ [17361](https://github.com/civicrm/civicrm-core/pull/17361) and
+ [17882](https://github.com/civicrm/civicrm-core/pull/17882))**
-- **Test - attempt to replicate #17852 ([18038](https://github.com/civicrm/civicrm-core/pull/18038))**
+ The process to match duplicate contacts was not accurately identifying phone
+ fields, causing contacts with matching phone numbers to be treated as if they
+ didn't match.
-- **[REF] Remove transaction from BaseIPN completeTransaction call ([18042](https://github.com/civicrm/civicrm-core/pull/18042))**
+- **Dedupe: Location type is treated inconsistently
+ ([dev/core#1826](https://lab.civicrm.org/dev/core/-/issues/1826):
+ [17645](https://github.com/civicrm/civicrm-core/pull/17645))**
-- **Remove url-tracking in mass sms. dev/core#1843 ([17700](https://github.com/civicrm/civicrm-core/pull/17700))**
+ Duplicate matching now ignores location type for postal address fields, now
+ consistent with how it has ignored phone and email location types.
-- **Do not overwrite values saved from the repeatContribution routine ([17972](https://github.com/civicrm/civicrm-core/pull/17972))**
+- **Installing Drupal 8 using civicrm-setup leads to "incorrect resource url"
+ system status check errors
+ ([dev/drupal#114](https://lab.civicrm.org/dev/drupal/-/issues/114) and
+ [dev/core#1647](https://lab.civicrm.org/dev/core/-/issues/1647):
+ [17754](https://github.com/civicrm/civicrm-core/pull/17754))**
-- **dev/core#1916 - Fix naming of case export fields / remove ones that aren't true ([18043](https://github.com/civicrm/civicrm-core/pull/18043))**
+ Removes the resource URL status check.
+
+- **API4: 500 error on chain with custom field
+ ([dev/core#1578](https://lab.civicrm.org/dev/core/-/issues/1578):
+ [17866](https://github.com/civicrm/civicrm-core/pull/17866))**
+
+- **MySQL uses filesort index when building the query which can cause
+ performance issues
+ ([dev/core#1665](https://lab.civicrm.org/dev/core/-/issues/1665):
+ [18052](https://github.com/civicrm/civicrm-core/pull/18052))**
+
+- **Custom fields not copied on shared address
+ ([dev/core#1670](https://lab.civicrm.org/dev/core/-/issues/1670):
+ [17580](https://github.com/civicrm/civicrm-core/pull/17580))**
+
+- **Email template permissions
+ ([dev/core#1751](https://lab.civicrm.org/dev/core/-/issues/1751):
+ [17480](https://github.com/civicrm/civicrm-core/pull/17480))**
+
+ Users sending an email are no longer able to save or modify a template if they
+ lack the "edit message templates" permission.
+
+- **Using Parent tag in search form doesn't pull contacts marked with child tag
+ in search form result
+ ([dev/core#1795](https://lab.civicrm.org/dev/core/-/issues/1795):
+ [17513](https://github.com/civicrm/civicrm-core/pull/17513))**
+
+- **Activity Search : Tags are not working
+ ([dev/core#1827](https://lab.civicrm.org/dev/core/-/issues/1827):
+ [17655](https://github.com/civicrm/civicrm-core/pull/17655) and
+ [17755](https://github.com/civicrm/civicrm-core/pull/17755))**
-- **SystemCheck: add ability to efficiently run only specified checks ([17824](https://github.com/civicrm/civicrm-core/pull/17824))**
+- **Autocomplete-select custom field is not searchable
+ ([dev/core#1805](https://lab.civicrm.org/dev/core/-/issues/1805):
+ [17569](https://github.com/civicrm/civicrm-core/pull/17569))**
-- **Add testing to Authorize.net and remove the lines that are repeated ([18028](https://github.com/civicrm/civicrm-core/pull/18028))**
+- **Do not allow enabling database logging when using multilingual
+ ([dev/core#1812](https://lab.civicrm.org/dev/core/-/issues/1812):
+ [17815](https://github.com/civicrm/civicrm-core/pull/17815))**
-- **Add test on status calculation ([18037](https://github.com/civicrm/civicrm-core/pull/18037))**
+ This has never worked, with network errors as the result. This prevents it
+ from being set.
-- **Fix qill typo ([18041](https://github.com/civicrm/civicrm-core/pull/18041))**
+- **Can't remove subtype if any required custom field is based on it
+ ([dev/core#1853](https://lab.civicrm.org/dev/core/-/issues/1853):
+ [17765](https://github.com/civicrm/civicrm-core/pull/17765))**
-- **dev/core#1919 - Missing resubscribe url in text/plain version of unsubscribe confirmation email ([18015](https://github.com/civicrm/civicrm-core/pull/18015))**
+- **User account form action not passing along contact id correctly possibly
+ leading to duplicate contacts
+ ([dev/core#1858](https://lab.civicrm.org/dev/core/-/issues/1858):
+ [17769](https://github.com/civicrm/civicrm-core/pull/17769))**
-- **[Ref] Simplify is_email_receipt in sendMail ([18029](https://github.com/civicrm/civicrm-core/pull/18029))**
+ When creating a user account from a contact record, the contact ID was not
+ properly passed along. Depending upon your unsupervised duplicate matching
+ rule, it would potentially create a duplicate contact record.
-- **Update flexmailer release information ([17912](https://github.com/civicrm/civicrm-core/pull/17912))**
+- **Cannot edit a profile field of "Email" to use the Location Type "Primary"
+ ([dev/core#1861](https://lab.civicrm.org/dev/core/-/issues/1861):
+ [17812](https://github.com/civicrm/civicrm-core/pull/17812))**
-- **[REF] [Test] Minor simplification on test ([18019](https://github.com/civicrm/civicrm-core/pull/18019))**
+ The location type would get reset to your default location type rather than
+ staying as "primary".
-- **dev/core#1906 - Allow payment create api to record payment on Failed … ([17943](https://github.com/civicrm/civicrm-core/pull/17943))**
+- **Downgrade checkEnvironment level and skip non-prod checks (part of
+ [dev/core#1863](https://lab.civicrm.org/dev/core/-/issues/1863):
+ [17807](https://github.com/civicrm/civicrm-core/pull/17807))**
-- **Fix for failing test ([18036](https://github.com/civicrm/civicrm-core/pull/18036))**
+ In non-production environments, a system check produces a message saying so.
+ This downgrades it from an "Alert" to a more appropriate level of "Notice",
+ and it also suppresses cron and CiviMail system checks in this situation.
-- **Remove invalid use of crmMoney formatter ([18031](https://github.com/civicrm/civicrm-core/pull/18031))**
+- **Slew of E_NOTICES on Profiles admin page and description field is always
+ blank ([dev/core#1868](https://lab.civicrm.org/dev/core/-/issues/1868):
+ [17786](https://github.com/civicrm/civicrm-core/pull/17786))**
-- **Remove main PaymentExpress class ([18010](https://github.com/civicrm/civicrm-core/pull/18010))**
+- **CiviReport sent as email via mail_report job with a CSV attachment doesn't
+ show UTF8 characters properly in Excel
+ ([dev/core#1869](https://lab.civicrm.org/dev/core/-/issues/1869):
+ [17806](https://github.com/civicrm/civicrm-core/pull/17806))**
-- **[Ref] Remove transaction instantiation in PaypalPro ([18026](https://github.com/civicrm/civicrm-core/pull/18026))**
+- **References to packages path in security status checks are assumed to be
+ under civicrm root
+ ([dev/core#1872](https://lab.civicrm.org/dev/core/-/issues/1872):
+ [17844](https://github.com/civicrm/civicrm-core/pull/17844))**
-- **[REF] Stop instantiating transaction in PaypalIPN ([18020](https://github.com/civicrm/civicrm-core/pull/18020))**
+ This changes how package and vendor paths are calculated in system checks
+ since (in Drupal 8 and potentially elsewhere) they may not be within the
+ CiviCRM root folder.
-- **Remove unused parameter ids['billing'] ([18021](https://github.com/civicrm/civicrm-core/pull/18021))**
+- **Custom data insert/update error if using reserved words
+ ([dev/core#1880](https://lab.civicrm.org/dev/core/-/issues/1880):
+ [17848](https://github.com/civicrm/civicrm-core/pull/17848))**
-- **5.28 to master ([18023](https://github.com/civicrm/civicrm-core/pull/18023))**
+- **Advanced Search (search by complete or partial name) returns all contacts
+ ([dev/core#1895](https://lab.civicrm.org/dev/core/-/issues/1895):
+ [17950](https://github.com/civicrm/civicrm-core/pull/17950))**
-- **Cache loader - remove legacy handling, handle null result from setting ([17999](https://github.com/civicrm/civicrm-core/pull/17999))**
+ The ability to search first/last name was recently added to core. The primary
+ intent was to properly handle advanced searches that originate from
+ quicksearch first/last name filters. While that was working, a first/last name
+ search that originated directly from an advanced search was not working. This
+ fixes the issue.
-- **Change inform-icon to fa-info-circle ([18001](https://github.com/civicrm/civicrm-core/pull/18001))**
+- **Miscellaneous E_NOTICES
+ ([dev/core#1909](https://lab.civicrm.org/dev/core/-/issues/1909):
+ [18006](https://github.com/civicrm/civicrm-core/pull/18006),
+ [17962](https://github.com/civicrm/civicrm-core/pull/17962),
+ [17964](https://github.com/civicrm/civicrm-core/pull/17964),
+ [17959](https://github.com/civicrm/civicrm-core/pull/17959), and
+ [17985](https://github.com/civicrm/civicrm-core/pull/17985))**
-- **[REF] Remove pass-by-reference & always empty param ([17984](https://github.com/civicrm/civicrm-core/pull/17984))**
+- **CRM_Core_Key::valid() does backwards comparison
+ ([dev/core#1918](https://lab.civicrm.org/dev/core/-/issues/1918):
+ [18007](https://github.com/civicrm/civicrm-core/pull/18007))**
-- **CIVICRM_BAO_CACHE_ADAPTER - Remove obsolete option ([17990](https://github.com/civicrm/civicrm-core/pull/17990))**
+ This removes legacy code that appeared to attempt to check for a valid
+ quickForm key but wasn't effectively doing so.
-- **SQL temp table not using utf8mb4 if server default already set to utf8mb4 ([18012](https://github.com/civicrm/civicrm-core/pull/18012))**
+- **Upgrade fails for 4.6 => 5.29 during status-check
+ ([dev/core#1932](https://lab.civicrm.org/dev/core/-/issues/1932):
+ [18085](https://github.com/civicrm/civicrm-core/pull/18085))**
-- **Wrong link to admin page in error message about FROM address on PCP page ([17996](https://github.com/civicrm/civicrm-core/pull/17996))**
+- **Installation doclinks not getting url-rewritten
+ ([18175](https://github.com/civicrm/civicrm-core/pull/18175))**
-- **[REF] Tighten up function signature for dedupePair ([17923](https://github.com/civicrm/civicrm-core/pull/17923))**
+ Links to the new installation documentation are now handled in the same way as
+ other documentation sites.
-- **[Ref] Move noisily deprecate BaseIPN->sendMail, call api from it rather than BAO function ([17982](https://github.com/civicrm/civicrm-core/pull/17982))**
+- **Wrap multi record custom field inside a div
+ ([17966](https://github.com/civicrm/civicrm-core/pull/17966))**
-- **[REF] Use CRM_Utils_Mail::send for sending emails for confirming unsu… ([17396](https://github.com/civicrm/civicrm-core/pull/17396))**
+- **Fixed filling default values for tagssets in the advanced search form
+ ([17978](https://github.com/civicrm/civicrm-core/pull/17978))**
-- **CRM_Core_BAO_Cache - Remove functions deprecated a year ago ([17989](https://github.com/civicrm/civicrm-core/pull/17989))**
+- **Simplify caching of status checks
+ ([17817](https://github.com/civicrm/civicrm-core/pull/17817))**
-- **[Test framework] re-re-fix test and add test for test ([18013](https://github.com/civicrm/civicrm-core/pull/18013))**
+- **Ensure custom field checkboxes are populated in profiles
+ ([17977](https://github.com/civicrm/civicrm-core/pull/17977))**
-- **Re-fix test ([18009](https://github.com/civicrm/civicrm-core/pull/18009))**
+- **Upgrade PEAR/mail_mime package to be compliant with PHP7.4 and deploy it
+ using composer ([17948](https://github.com/civicrm/civicrm-core/pull/17948))**
-- **[NFC] Improve docs for APIv4 Save action ([18004](https://github.com/civicrm/civicrm-core/pull/18004))**
+- **Setup UI - Validate that at least one "Component" is enabled
+ ([17778](https://github.com/civicrm/civicrm-core/pull/17778))**
-- **dev/core#1909 - E_NOTICE on contribution edit ([18006](https://github.com/civicrm/civicrm-core/pull/18006))**
+ This prevents you from proceeding with installation without enabling at least
+ one component. Not enabling any components causes a messy failed
+ installation.
-- **dev/core#1918 - Remove dubious qfkey checking code that never runs ([18007](https://github.com/civicrm/civicrm-core/pull/18007))**
+- **Call apiv4 from Contribution create rather than fugly addActivity function
+ ([17881](https://github.com/civicrm/civicrm-core/pull/17881))**
-- **5.28 ([18008](https://github.com/civicrm/civicrm-core/pull/18008))**
+- **Search debug ([17887](https://github.com/civicrm/civicrm-core/pull/17887))**
-- **[REF] Reduce calls to CRM_Member_PseudoConstant::membershipType ([17987](https://github.com/civicrm/civicrm-core/pull/17987))**
+- **Simplify flushing group contact cache query to reduce table locking and
+ improve performance
+ ([17846](https://github.com/civicrm/civicrm-core/pull/17846))**
-- **dev/core#1915 - E_NOTICE when making pcp contribution ([18002](https://github.com/civicrm/civicrm-core/pull/18002))**
+- **Make api get upgrade-safe
+ ([17729](https://github.com/civicrm/civicrm-core/pull/17729))**
-- **[Test framework] - Update failing test ([18003](https://github.com/civicrm/civicrm-core/pull/18003))**
+ This avoids database errors when the code and database versions don't match by
+ preventing the API from accessing fields that are unsupported in the database.
-- **Fix repeattransaction api to use custom data from the template contribution ([17975](https://github.com/civicrm/civicrm-core/pull/17975))**
+- **CheckEnv - Give new installs a grace period before 'Cron Not Running' msg
+ ([17800](https://github.com/civicrm/civicrm-core/pull/17800))**
-- **dev/financial#139 contribution receive_date shouldn't change when payments come in ([17777](https://github.com/civicrm/civicrm-core/pull/17777))**
+ The system check will lower the severity of the "cron not running" check for
+ the first 24 hours after a site has been installed.
-- **5.28 ([17997](https://github.com/civicrm/civicrm-core/pull/17997))**
+- **Sort permittedActivityTypes
+ ([17794](https://github.com/civicrm/civicrm-core/pull/17794))**
-- **Fix case activity field set to allow long details to be exported ([17970](https://github.com/civicrm/civicrm-core/pull/17970))**
+ This improves performance on filtering activity types by making it possible to
+ compare a list of permitted types with the overall list of activity type IDs.
-- **dev/core#1913 Allow for schemas to be added by extensions if they are… ([17986](https://github.com/civicrm/civicrm-core/pull/17986))**
+- **APIv4 - Fix saving custom fields with same name
+ ([17791](https://github.com/civicrm/civicrm-core/pull/17791))**
-- **[REF] Use Standard function cacheClause to re-use contact acl cache t… ([17707](https://github.com/civicrm/civicrm-core/pull/17707))**
+- **Status Checks - Use more specific label regarding "Domain"/"Organization"
+ check ([17776](https://github.com/civicrm/civicrm-core/pull/17776))**
-- **Fixed filling default values for tagssets in the advanced search form ([17978](https://github.com/civicrm/civicrm-core/pull/17978))**
+- **SQL temp table not using utf8mb4 if server default already set to utf8mb4
+ ([18012](https://github.com/civicrm/civicrm-core/pull/18012))**
-- **dev/core#1909 - Avoid E_Notice on SMS provider form when no default url ([17985](https://github.com/civicrm/civicrm-core/pull/17985))**
+- **Wrong link to admin page in error message about FROM address on PCP page
+ ([17996](https://github.com/civicrm/civicrm-core/pull/17996))**
-- **Remove duplicate cache flush ([17988](https://github.com/civicrm/civicrm-core/pull/17988))**
+- **Fix sticky table header on "Find Activities" page
+ ([17917](https://github.com/civicrm/civicrm-core/pull/17917))**
-- **[REF] Extract setUserContext on contribution form & cleanup on backend add membership form ([17968](https://github.com/civicrm/civicrm-core/pull/17968))**
+- **Fixed DB Error: syntax error if line item refers to civicrm_case
+ ([16626](https://github.com/civicrm/civicrm-core/pull/16626))**
-- **dev/core#1755 Fix reCaptcha on Mailing Subscribe ([17305](https://github.com/civicrm/civicrm-core/pull/17305))**
+- **Fix potential js error on summary screen when reloading blocks
+ ([17865](https://github.com/civicrm/civicrm-core/pull/17865))**
-- **[REF] Make explicit what we are doing with 'values' in this code ([17979](https://github.com/civicrm/civicrm-core/pull/17979))**
+- **Fix 'Undefined variable: jsSet in CRM_Core_BAO_Mapping::loadSavedMapping()'
+ ([17816](https://github.com/civicrm/civicrm-core/pull/17816))**
-- **Simplify caching of status checks ([17817](https://github.com/civicrm/civicrm-core/pull/17817))**
+- **Fixed notice error on Relationships report
+ ([17787](https://github.com/civicrm/civicrm-core/pull/17787))**
-- **[REF] Reduce interaction between dedupe code and createProfileContact ([17920](https://github.com/civicrm/civicrm-core/pull/17920))**
+- **Fix obscure dedupe scenario where 'bad' location data can overwrite good
+ data ([17993](https://github.com/civicrm/civicrm-core/pull/17993))**
-- **ensure custom field checkboxes are populated in profiles ([17977](https://github.com/civicrm/civicrm-core/pull/17977))**
+- **Fix JQuery Validation for radios
+ ([17937](https://github.com/civicrm/civicrm-core/pull/17937))**
-- **dev/core#785 Differentiate smart group from regular group using icon in select2 field ([17927](https://github.com/civicrm/civicrm-core/pull/17927))**
+### CiviCase
-- **[REF] Minor code clean up ([17974](https://github.com/civicrm/civicrm-core/pull/17974))**
+- **Fix case activity field set to allow long details to be exported
+ ([17970](https://github.com/civicrm/civicrm-core/pull/17970))**
-- **5.28 to master ([17976](https://github.com/civicrm/civicrm-core/pull/17976))**
+- **Case export has two fields that are not what they say they are
+ ([dev/core#1916](https://lab.civicrm.org/dev/core/-/issues/1916):
+ [18043](https://github.com/civicrm/civicrm-core/pull/18043))**
-- **[REF] Grant cleanup ([17967](https://github.com/civicrm/civicrm-core/pull/17967))**
+- **Collapsed custom field set for activities with a required radio makes case
+ activity buttons seem disabled
+ ([dev/core#1928](https://lab.civicrm.org/dev/core/-/issues/1928):
+ [18080](https://github.com/civicrm/civicrm-core/pull/18080))**
-- **[NFC] Add in a unit test of calling the contribution page widget endp… ([17965](https://github.com/civicrm/civicrm-core/pull/17965))**
+- **CRM_Utils_Check_Component_Case - Guard against post-upgrade crash
+ ([17944](https://github.com/civicrm/civicrm-core/pull/17944))**
-- **5.28 ([17963](https://github.com/civicrm/civicrm-core/pull/17963))**
+### CiviContribute
-- **dev/core#1909 Fix E-notice when adding a field on a profile ([17962](https://github.com/civicrm/civicrm-core/pull/17962))**
+- **Define the logic that sets (or not) contribution receive_date in relation to
+ payments
+ ([dev/financial#139](https://lab.civicrm.org/dev/financial/-/issues/139):
+ [17777](https://github.com/civicrm/civicrm-core/pull/17777) and
+ [18000](https://github.com/civicrm/civicrm-core/pull/18000))**
-- **dev/core#1909 Fix e-notice when adding a payment processor ([17964](https://github.com/civicrm/civicrm-core/pull/17964))**
+ This undoes a regression where the contribution date of a pay-later
+ contribution would change when a payment completes the contribution. The
+ contribution date is the accrual date and is distinct from the date the
+ contribution is entered and the date when all payments have been received.
-- **dev/core#1909 - E_NOTICE opening file-on-case ([17959](https://github.com/civicrm/civicrm-core/pull/17959))**
+ In the process, this changes the "Update pending contribution status" search
+ action to be "Record payments for contributions". The result is generally the
+ same, but the status change comes about because the payments complete the
+ contributions. You can modify contribution statuses in bulk with a profile by
+ using the "Update multiple contributions" action.
-- **[Ref] Simplify field reference ([17941](https://github.com/civicrm/civicrm-core/pull/17941))**
+- **Disable frequency/interval fields if not required. Mark required if they are
+ so they are validated before submit
+ ([17526](https://github.com/civicrm/civicrm-core/pull/17526))**
-- **[Test framework] - Combine triplicate createCase functions ([17957](https://github.com/civicrm/civicrm-core/pull/17957))**
+ The frequency and interval fields for recurring contributions now use jQuery
+ validation to disable or require them as appropriate.
-- **[REF] Refactor to use the standard CRM_Core_Form::addRadio function f… ([17932](https://github.com/civicrm/civicrm-core/pull/17932))**
+- **Paypal IPN sometimes fails to update the next scheduled payment date when
+ recording the latest recurring payment
+ ([dev/core#1679](https://lab.civicrm.org/dev/core/-/issues/1679):
+ [17744](https://github.com/civicrm/civicrm-core/pull/17744))**
-- **Upgrade PEAR/mail_mime package to be compliant with PHP7.4 and deploy it using composer ([17948](https://github.com/civicrm/civicrm-core/pull/17948))**
+- **Contribution Details Statistics are multiplied under many circumstances
+ ([dev/report#21](https://lab.civicrm.org/dev/report/-/issues/21):
+ [15435](https://github.com/civicrm/civicrm-core/pull/15435) and
+ [17809](https://github.com/civicrm/civicrm-core/pull/17809))**
-- **[REF] Fix the default to_financial_account_id for generated transactions ([17938](https://github.com/civicrm/civicrm-core/pull/17938))**
+- **Contribution Summary Report: The "general total" row does not take the
+ currency filtered
+ ([dev/report#27](https://lab.civicrm.org/dev/report/-/issues/27):
+ [16736](https://github.com/civicrm/civicrm-core/pull/16736))**
-- **APIv4 - Add keyword to select all custom fields ([17955](https://github.com/civicrm/civicrm-core/pull/17955))**
+ When the contribution summary report is used by filtering for a currency other
+ than the site's default currency, the "grand total" row shows the sign of the
+ default currency instead of the filtered currency.
-- **[REF] Upgrade dompdf version to be more compatible with PHP7.4 ([17946](https://github.com/civicrm/civicrm-core/pull/17946))**
+- **Fix PaypalIPN single function to not receive-by-reference
+ ([18044](https://github.com/civicrm/civicrm-core/pull/18044))**
-- **[REF] [Tests] Cleanup test declaration to take advantage of mapping improvements ([17939](https://github.com/civicrm/civicrm-core/pull/17939))**
+- **Allow Failed -> Completed status for contributions
+ ([dev/core#1906](https://lab.civicrm.org/dev/core/-/issues/1906):
+ [17943](https://github.com/civicrm/civicrm-core/pull/17943))**
-- **dev/drupal#127 - CRM_Core_Session::setStatus() gets ignored sometimes ([17914](https://github.com/civicrm/civicrm-core/pull/17914))**
+- **Fix currency symbol for Total Amount on contribution page
+ ([17703](https://github.com/civicrm/civicrm-core/pull/17703))**
-- **5.28 to master ([17953](https://github.com/civicrm/civicrm-core/pull/17953))**
+ This resolves a but where the total amount would show the default system
+ currency symbol regardless of the currency configured on the contribution
+ page.
-- **[REF] Remove unnecessary complexity on im export ([17949](https://github.com/civicrm/civicrm-core/pull/17949))**
+- **On behalf label / Honoree Title / Honoree Description not translatable on
+ contribution page
+ ([dev/core#1280](https://lab.civicrm.org/dev/core/-/issues/1280):
+ [16838](https://github.com/civicrm/civicrm-core/pull/16838))**
-- **NFC - Docblock cleanup ([17945](https://github.com/civicrm/civicrm-core/pull/17945))**
+- **Load contribution page if live payment processor is disabled but test is
+ available ([17828](https://github.com/civicrm/civicrm-core/pull/17828))**
-- **CRM_Utils_Check_Component_Case - Guard against post-upgrade crash ([17944](https://github.com/civicrm/civicrm-core/pull/17944))**
+- **Remove requirement to pass 'contribution_status_id' => Pending from
+ order.create ([18018](https://github.com/civicrm/civicrm-core/pull/18018))**
-- **Remove error checking by-pass in tests ([17940](https://github.com/civicrm/civicrm-core/pull/17940))**
+- **Use saved contribution's line items rather than the primaryContributionID
+ ([18033](https://github.com/civicrm/civicrm-core/pull/18033))**
-- **Remove extraneous opportunistic cache flush. ([17936](https://github.com/civicrm/civicrm-core/pull/17936))**
+- **Do not overwrite values saved from the repeatContribution routine
+ ([17972](https://github.com/civicrm/civicrm-core/pull/17972))**
-- **dev/core#1902: "Contribution Source" profile field has no effect ([17930](https://github.com/civicrm/civicrm-core/pull/17930))**
+- **"Contribution Source" profile field has no effect on new contribution
+ ([dev/core#1902](https://lab.civicrm.org/dev/core/-/issues/1902):
+ [17930](https://github.com/civicrm/civicrm-core/pull/17930))**
-- **[REF] GroupContact BAO - Minor code cleanup ([17928](https://github.com/civicrm/civicrm-core/pull/17928))**
+- **Incorrect check for "soft_credit" after making pcp donation
+ ([dev/core#1915](https://lab.civicrm.org/dev/core/-/issues/1915):
+ [18002](https://github.com/civicrm/civicrm-core/pull/18002))**
-- **5.28 to master ([17931](https://github.com/civicrm/civicrm-core/pull/17931))**
+- **Total Tax Amount on the Contribution (generated in backoffice/offline) no
+ longer adds up to sum of the Tax Amount for the individual line items
+ ([dev/core#1983](https://lab.civicrm.org/dev/core/-/issues/1983):
+ [18290](https://github.com/civicrm/civicrm-core/pull/18290))**
-- **[REF] Minor function signuture cleanup ([17922](https://github.com/civicrm/civicrm-core/pull/17922))**
+- **Downloaded Invoice activity attaches non wkhtmltopdf invoice
+ ([dev/core#1922](https://lab.civicrm.org/dev/core/-/issues/1922):
+ [18056](https://github.com/civicrm/civicrm-core/pull/18056))**
-- **[REF] Do not pass variable by reference ([17921](https://github.com/civicrm/civicrm-core/pull/17921))**
+ Downloading an invoice would ignore whether wkhtmltopdf was configured and
+ always use dompdf.
-- **5.28 ([17926](https://github.com/civicrm/civicrm-core/pull/17926))**
+- **Fix repeattransaction api to use custom data from the template contribution
+ ([17975](https://github.com/civicrm/civicrm-core/pull/17975))**
-- **[NFC] Update a few doc/wiki links in code comments ([17918](https://github.com/civicrm/civicrm-core/pull/17918))**
+ The Contribution.repeattransaction API will now copy custom data from the
+ template rather than the earliest related contribution.
-- **Improve caching of current domain ([17916](https://github.com/civicrm/civicrm-core/pull/17916))**
+### CiviEvent
-- **Setup UI - Validate that at least one "Component" is enabled ([17778](https://github.com/civicrm/civicrm-core/pull/17778))**
+- **Can't meaningfully disable self-service transfer/cancellation once enabled
+ ([dev/event#35](https://lab.civicrm.org/dev/event/-/issues/35):
+ [18040](https://github.com/civicrm/civicrm-core/pull/18040))**
-- **Member detail report: nest "in" options in parentheses ([17911](https://github.com/civicrm/civicrm-core/pull/17911))**
+- **Event registration form has inconsistent labeling
+ ([dev/event#38](https://lab.civicrm.org/dev/event/-/issues/38):
+ [17695](https://github.com/civicrm/civicrm-core/pull/17695))**
-- **Fix sticky table header on "Find Activities" page ([17917](https://github.com/civicrm/civicrm-core/pull/17917))**
+- **Event cart hidden/enabled in buildkit 5.29 RC
+ ([dev/event#40](https://lab.civicrm.org/dev/event/-/issues/40):
+ [18101](https://github.com/civicrm/civicrm-core/pull/18101))**
-- **5.28 ([17908](https://github.com/civicrm/civicrm-core/pull/17908))**
+ Ensures that the Event Cart functionality defaults to off.
-- **[REF] remove unnecessary variable variables ([17903](https://github.com/civicrm/civicrm-core/pull/17903))**
+### CiviMail
-- **dev/core#1855 - Allow different output formats for CiviReport results and untangle code ([17901](https://github.com/civicrm/civicrm-core/pull/17901))**
+- **Remove URL-tracking in mass SMS
+ ([dev/core#1843](https://lab.civicrm.org/dev/core/-/issues/1843):
+ [17700](https://github.com/civicrm/civicrm-core/pull/17700))**
-- **[REF] - Add helper function for the repetitive task of fetching multilingual ([17650](https://github.com/civicrm/civicrm-core/pull/17650))**
+ Rewritten URLs were confusing and made SMS messages unnecessarily long. There
+ also have never been SMS tracking reports to use them anyway.
-- **[unreleased regression] Dummy processor now is ID 7 on buildkit sites ([17905](https://github.com/civicrm/civicrm-core/pull/17905))**
+- **Test mailings create new contacts even when "Add Contacts" permission is not
+ present. ([dev/mail#70](https://lab.civicrm.org/dev/mail/-/issues/70):
+ [17867](https://github.com/civicrm/civicrm-core/pull/17867))**
-- **Remove unused "ufUniqID" session variable ([17904](https://github.com/civicrm/civicrm-core/pull/17904))**
+ Ensures contacts are not created when a user without permissions to create
+ contacts sends a test email.
-- **Replace a load of references to the wiki with docs links ([17900](https://github.com/civicrm/civicrm-core/pull/17900))**
+- **Mailing Subscription form does not validate reCAPTCHA
+ ([dev/core#1755](https://lab.civicrm.org/dev/core/-/issues/1755):
+ [17305](https://github.com/civicrm/civicrm-core/pull/17305))**
-- **dev/core#1894 - Make CRM_Activity_Form_SearchTest::testQill less time-sensitive ([17902](https://github.com/civicrm/civicrm-core/pull/17902))**
+- **Text version of unsubscribed email is missing the link to resubscribe
+ ([dev/core#1919](https://lab.civicrm.org/dev/core/-/issues/1919):
+ [18015](https://github.com/civicrm/civicrm-core/pull/18015))**
-- **dev/core#183 Use TempTable builder to generate table for import ([17827](https://github.com/civicrm/civicrm-core/pull/17827))**
+- **Add CiviMail synchronisation frequency setting
+ (in support of [dev/core#1768](https://lab.civicrm.org/dev/core/-/issues/1768):
+ [17709](https://github.com/civicrm/civicrm-core/pull/17709))**
-- **Remove check for valid email in synchronizeUFMatch ([17771](https://github.com/civicrm/civicrm-core/pull/17771))**
+ This adds a setting for updating how frequently the database should be updated
+ with the status of emails that have been sent. Updating the database more
+ frequently can slow the process down, but it reduces the likelihood that a
+ recipient will be re-emailed when recovering from a stalled mailing.
-- **Call apiv4 from Contribution create rather than fugly addActivity function ([17881](https://github.com/civicrm/civicrm-core/pull/17881))**
+- **Mark the new routes for "open.php" and "url.php" as public
+ ([17813](https://github.com/civicrm/civicrm-core/pull/17813))**
-- **APIv4 - Add BasicEntity helper class ([17899](https://github.com/civicrm/civicrm-core/pull/17899))**
+ This denotes the paths for open and URL tracking as "public" pages as they are
+ meant to be used by unauthenticated email clients and recipients.
-- **mailing#70 Don't create users for test mail if user doesn't have permission ([17867](https://github.com/civicrm/civicrm-core/pull/17867))**
+### CiviMember
-- **Add APIv4 and pseudoconstants for RelationshipCache ([17879](https://github.com/civicrm/civicrm-core/pull/17879))**
+- **Decimal Separator - Invalid value "total_amount" (NaN,N) creating or editing
+ a membership ([dev/core#1113](https://lab.civicrm.org/dev/core/-/issues/1113):
+ [16429](https://github.com/civicrm/civicrm-core/pull/16429))**
-- **dev/core#1670 copy custom fields from master to shared address ([17580](https://github.com/civicrm/civicrm-core/pull/17580))**
+- **Offline Membership Renewal Tax Calculation is incorrect [regression]
+ ([dev/core#1972](https://lab.civicrm.org/dev/core/-/issues/1972):
+ [18271](https://github.com/civicrm/civicrm-core/pull/18271))**
-- **[Ref] Unit test attempt to create reported bugs , minor cleanup ([17560](https://github.com/civicrm/civicrm-core/pull/17560))**
+### Drupal Integration
-- **Update version in the test_data_second_domain file and also update th… ([17897](https://github.com/civicrm/civicrm-core/pull/17897))**
+- **Drupal 8 - Using Create User Record action on a contact with no email is too
+ quiet. Also CRM_Core_Session::setStatus is sometimes ignored.
+ ([dev/drupal#127](https://lab.civicrm.org/dev/drupal/-/issues/127):
+ [17914](https://github.com/civicrm/civicrm-core/pull/17914) and
+ [17915](https://github.com/civicrm/civicrm-core/pull/17915))**
-- **dev/core#1888 - Fix one line in PR 17888 ([17898](https://github.com/civicrm/civicrm-core/pull/17898))**
+ Require email when adding a user and ensure that errors show.
-- **Be a little less supportive to cvs ([17896](https://github.com/civicrm/civicrm-core/pull/17896))**
+- **The following PHP variables are not set: $_SERVER[HTTP_HOST]
+ ([dev/core#750](https://lab.civicrm.org/dev/core/-/issues/750):
+ [17636](https://github.com/civicrm/civicrm-core/pull/17636))**
-- **dev/core#1888 and dev/core#1885 - Fatal error on advanced search and warnings and missing group display on contact form ([17888](https://github.com/civicrm/civicrm-core/pull/17888))**
+ Skip the server variable checks if running in a CLI environment, removing an
+ error when running Drush commands against Drupal 8 and Drupal 9 based sites.
-- **APIv4 - Specify BridgeEntities to assist with joins ([17808](https://github.com/civicrm/civicrm-core/pull/17808))**
+- **Can't find reCAPTCHA in Drupal 8
+ ([dev/core#1871](https://lab.civicrm.org/dev/core/-/issues/1871):
+ [17822](https://github.com/civicrm/civicrm-core/pull/17822))**
-- **Contribution Summary Report: Taking the currency filtered in the "gen… ([16736](https://github.com/civicrm/civicrm-core/pull/16736))**
+- **Fixed for multi-select filter
+ ([615](https://github.com/civicrm/civicrm-drupal/pull/615))**
-- **Event Cart ext: Move menu entries to extension ([17891](https://github.com/civicrm/civicrm-core/pull/17891))**
+ This fixes filters for multi-select fields in Views.
-- **5.28 ([17895](https://github.com/civicrm/civicrm-core/pull/17895))**
+- **Fix URL for file field
+ ([608](https://github.com/civicrm/civicrm-drupal/pull/608))**
-- **[Test Framework] - Tests for report downloads ([17892](https://github.com/civicrm/civicrm-core/pull/17892))**
+ This fixes the generated URL for file fields in Views.
-- **dev/core#1578 - Fix APIv4 chaining with custom fields ([17866](https://github.com/civicrm/civicrm-core/pull/17866))**
+### Wordpress Integration
-- **Unit test for #17361 ([17882](https://github.com/civicrm/civicrm-core/pull/17882))**
+- **[civicrm.files] token doesn't work in some cases since 5.27
+ ([dev/wordpress#66](https://lab.civicrm.org/dev/wordpress/-/issues/66):
+ [18068](https://github.com/civicrm/civicrm-core/pull/18068))**
-- **EventCart ext: Cleanup and move form components to ext ([17885](https://github.com/civicrm/civicrm-core/pull/17885))**
+ Ensures the [civicrm.files] token plays nice for sites with older WordPress
+ file directory set ups.
-- **EventCart ext: Fix autogenerated code, remove unused hooks, update readme ([17884](https://github.com/civicrm/civicrm-core/pull/17884))**
+- **CiviCRM and the WordPress Pods plugin (since version 2.7.13) is incompatible
+ due to Pods including marionette v3.3.1 for backbone, newer than CiviCRM's
+ bundled marionette v1.0.3
+ ([dev/core#1090](https://lab.civicrm.org/dev/core/-/issues/1090):
+ [17855](https://github.com/civicrm/civicrm-core/pull/17855))**
-- **Load contribution page if live payment processor is disabled but test is available ([17828](https://github.com/civicrm/civicrm-core/pull/17828))**
+ Ensures CiviCRM plays nicely with recent versions of Elementor Plugin.
-- **Search debug ([17887](https://github.com/civicrm/civicrm-core/pull/17887))**
+- **Fix PHP notice on WordPress permissions form
+ ([17758](https://github.com/civicrm/civicrm-core/pull/17758))**
-- **dev/core#1767 Fix phone key parsing in CRM_Dedupe_Finder ([17361](https://github.com/civicrm/civicrm-core/pull/17361))**
+- **Slow down the frequency of WordPress "heartbeat" calls in CiviCRM admin
+ ([dev/wordpress#67](https://lab.civicrm.org/dev/wordpress/-/issues/67):
+ [214](https://github.com/civicrm/civicrm-wordpress/pull/214))**
-- **[NFC] Fix nonstandard header comments ([17880](https://github.com/civicrm/civicrm-core/pull/17880))**
+- **Be more forgiving about slash in wpBasePage ([dev/wordpress#73](https://lab.civicrm.org/dev/wordpress/issues/73):
+ [18332](https://github.com/civicrm/civicrm-core/pull/18332))**
-- **dev/core#1751: [Create Email] Only Show Update/Save Template when User has Permission to Edit Templates ([17480](https://github.com/civicrm/civicrm-core/pull/17480))**
+## <a name="misc"></a>Miscellany
-- **Use new checkPermissions shorthand in api calls ([17874](https://github.com/civicrm/civicrm-core/pull/17874))**
+- **APIv4 - Add BasicEntity helper class
+ ([17899](https://github.com/civicrm/civicrm-core/pull/17899))**
-- **5.28 ([17878](https://github.com/civicrm/civicrm-core/pull/17878))**
+- **Bump minimum upgradable version to 4.4.7
+ ([17750](https://github.com/civicrm/civicrm-core/pull/17750))**
-- **Simplify flushing group contact cache query to reduce table locking and improve performance ([17846](https://github.com/civicrm/civicrm-core/pull/17846))**
+- **Update version in the test_data_second_domain file and also update the
+ setVersion script to update the file version as necessary
+ ([17897](https://github.com/civicrm/civicrm-core/pull/17897))**
-- **dev/core#1869 - Include BOM in attachment when sending CSV CiviReport via mail_report job ([17806](https://github.com/civicrm/civicrm-core/pull/17806))**
+- **Be a little less supportive to cvs
+ ([17896](https://github.com/civicrm/civicrm-core/pull/17896))**
-- **dev/core#1280 Fix ContributionPage soft_credit translation ([16838](https://github.com/civicrm/civicrm-core/pull/16838))**
+- **Replace a load of references to the wiki with docs links
+ ([17900](https://github.com/civicrm/civicrm-core/pull/17900))**
-- **[NFC] Comment block cleanup ([17872](https://github.com/civicrm/civicrm-core/pull/17872))**
+- **Remove unneccessary isoToDate function
+ ([dev/core#1921](https://lab.civicrm.org/dev/core/-/issues/1921):
+ [18025](https://github.com/civicrm/civicrm-core/pull/18025))**
-- **REF Extract addToRecentItems from membership create ([17524](https://github.com/civicrm/civicrm-core/pull/17524))**
+- **CRM_Activity_Form_SearchTest::testQill can fail semi-randomly
+ ([dev/core#1894](https://lab.civicrm.org/dev/core/-/issues/1894):
+ [17902](https://github.com/civicrm/civicrm-core/pull/17902))**
-- **Disable frequency/interval fields if not required. Mark required if they are so they are validated before submit ([17526](https://github.com/civicrm/civicrm-core/pull/17526))**
+- **Test for fatal error on new individual form
+ ([dev/core#1874](https://lab.civicrm.org/dev/core/-/issues/1874):
+ [17835](https://github.com/civicrm/civicrm-core/pull/17835))**
-- **dev/membership#18 Enhance parameters for Job.process_membership ([16298](https://github.com/civicrm/civicrm-core/pull/16298))**
+- **Bump lodash from 4.17.15 to 4.17.19
+ ([17858](https://github.com/civicrm/civicrm-core/pull/17858))**
-- **Fix currency symbol for Total Amount on contribution page ([17703](https://github.com/civicrm/civicrm-core/pull/17703))**
+- **Update regen.sh with new & upcoming core extensions
+ ([17839](https://github.com/civicrm/civicrm-core/pull/17839))**
-- **RelationshipCache - Add a high-level index to facilitate relationship queries (more fields) ([17781](https://github.com/civicrm/civicrm-core/pull/17781))**
+- **APIv4 - Add activity contacts to APIv4 field spec
+ ([17766](https://github.com/civicrm/civicrm-core/pull/17766))**
-- **[REF] Fix a couple of jQuery errors that have cropped up ([17871](https://github.com/civicrm/civicrm-core/pull/17871))**
+- **Adjust mysql SET NAMES in remaining places as we agreed this was the go
+ ([17825](https://github.com/civicrm/civicrm-core/pull/17825))**
-- **Hooks/Dispatcher - Close loopholes that occur around "preboot" hooks ([17831](https://github.com/civicrm/civicrm-core/pull/17831))**
+- **CRM_Utils_SQL - Add "onDuplicate()" and "syncInto()" helpers
+ ([17780](https://github.com/civicrm/civicrm-core/pull/17780))**
-- **APIv4 - Add shorthand for setCheckPermissions() ([17834](https://github.com/civicrm/civicrm-core/pull/17834))**
+- **Improve efficiency of findFiles
+ ([17745](https://github.com/civicrm/civicrm-core/pull/17745))**
-- **Use PrematureExit exception instead of weird hack in tests ([17870](https://github.com/civicrm/civicrm-core/pull/17870))**
+- **APIv4 Explorer: Improve selection of fields for HAVING
+ ([17746](https://github.com/civicrm/civicrm-core/pull/17746))**
-- **dev/core#1113 - Decimal Separator - Invalid value "total_amount" (NaN,N) creating or editing a membership ([16429](https://github.com/civicrm/civicrm-core/pull/16429))**
+- **Convert CRM.utils.formatDate tests to karma
+ ([17757](https://github.com/civicrm/civicrm-core/pull/17757))**
-- **(REF) regen.sh - Remove unusual handling of `zipcodes.mysql` ([17869](https://github.com/civicrm/civicrm-core/pull/17869))**
+- **Teach CRM.utils.formatDate to also show time
+ ([17684](https://github.com/civicrm/civicrm-core/pull/17684))**
-- **dev/report#43 - Icon after saving a civireport instance is misleading ([17863](https://github.com/civicrm/civicrm-core/pull/17863))**
+- **CRM_Utils_Hook: deprecation warning and short array syntax
+ ([17995](https://github.com/civicrm/civicrm-core/pull/17995))**
-- **Remove unnecessary try/catch per #17729 ([17823](https://github.com/civicrm/civicrm-core/pull/17823))**
+- **Remove check for valid email in synchronizeUFMatch
+ ([17771](https://github.com/civicrm/civicrm-core/pull/17771))**
-- **dev/core#1725 Only export primary address fields ([17458](https://github.com/civicrm/civicrm-core/pull/17458))**
+- **Remove unused "ufUniqID" session variable
+ ([17904](https://github.com/civicrm/civicrm-core/pull/17904))**
-- **api_v3_TaxContributionPageTest fix - remove hard coded processor id ([17860](https://github.com/civicrm/civicrm-core/pull/17860))**
+- **Remove duplicate cache flush
+ ([17988](https://github.com/civicrm/civicrm-core/pull/17988))**
-- **Fixed DB Error: syntax error if line item refers to civicrm_case ([16626](https://github.com/civicrm/civicrm-core/pull/16626))**
+- **Remove extraneous opportunistic cache flush.
+ ([17936](https://github.com/civicrm/civicrm-core/pull/17936))**
-- **Fix potential js error on summary screen when reloading blocks ([17865](https://github.com/civicrm/civicrm-core/pull/17865))**
+- **Hooks/Dispatcher - Close loopholes that occur around "preboot" hooks
+ ([17831](https://github.com/civicrm/civicrm-core/pull/17831))**
-- **Search Ext: fix loading options and parsing custom field names ([17864](https://github.com/civicrm/civicrm-core/pull/17864))**
+- **Use PrematureExit exception instead of weird hack in tests
+ ([17870](https://github.com/civicrm/civicrm-core/pull/17870))**
-- **EventCart - Resolve BAO identity and uncommitted DAO changes ([17861](https://github.com/civicrm/civicrm-core/pull/17861))**
+- **Remove unnecessary try/catch per #17729
+ ([17823](https://github.com/civicrm/civicrm-core/pull/17823))**
-- **[REF] ScheduledJob cleanup, remove unused var ([17862](https://github.com/civicrm/civicrm-core/pull/17862))**
+- **handlePaymentNotification() should not be declared as a static method
+ ([17849](https://github.com/civicrm/civicrm-core/pull/17849))**
-- **dev/core#1090 Update extendedSerializeData to use the Backbone namesp… ([17855](https://github.com/civicrm/civicrm-core/pull/17855))**
+- **MembershipRenewalTest - Fix failure
+ ([17830](https://github.com/civicrm/civicrm-core/pull/17830))**
-- **dev/core#1874 - Failing test for new Individual form ([17835](https://github.com/civicrm/civicrm-core/pull/17835))**
+- **Remove hard coded charset.
+ ([17826](https://github.com/civicrm/civicrm-core/pull/17826))**
-- **Bump lodash from 4.17.15 to 4.17.19 ([17858](https://github.com/civicrm/civicrm-core/pull/17858))**
+- **getLoggedInContactID() is a static function
+ ([17783](https://github.com/civicrm/civicrm-core/pull/17783))**
-- **5.28 ([17859](https://github.com/civicrm/civicrm-core/pull/17859))**
+- **Remove PaymentExpress ipn class
+ ([17763](https://github.com/civicrm/civicrm-core/pull/17763))**
-- **[REF] Migrate Event Cart Setting into the Extension ([17841](https://github.com/civicrm/civicrm-core/pull/17841))**
+- **Remove unused, deprecated functions
+ ([17761](https://github.com/civicrm/civicrm-core/pull/17761))**
-- **5.28 ([17856](https://github.com/civicrm/civicrm-core/pull/17856))**
+- **CIVICRM_BAO_CACHE_ADAPTER - Remove obsolete option
+ ([17990](https://github.com/civicrm/civicrm-core/pull/17990))**
-- **handlePaymentNotification() should not be declared as a static method ([17849](https://github.com/civicrm/civicrm-core/pull/17849))**
+- **More unused functions in GenCode
+ ([17756](https://github.com/civicrm/civicrm-core/pull/17756))**
-- **[REF] Only printOnly once ([17850](https://github.com/civicrm/civicrm-core/pull/17850))**
+- **Temporary tables should follow consistent naming convention
+ ([dev/core#183](https://lab.civicrm.org/dev/core/-/issues/183):
+ [17827](https://github.com/civicrm/civicrm-core/pull/17827))**
-- **API tests - label versions in dataprovider versionThreeAndFour ([17847](https://github.com/civicrm/civicrm-core/pull/17847))**
+- **CRM_Core_BAO_Cache - Remove functions deprecated a year ago
+ ([17989](https://github.com/civicrm/civicrm-core/pull/17989))**
-- **dev/core#1880 add backticks to custom field insertions ([17848](https://github.com/civicrm/civicrm-core/pull/17848))**
+- **Fix all core processors to implement doPayment and not doTransferPayment or
+ doDirectPayment
+ ([https://lab.civicrm.org/dev/financial/-/issues/135](https://lab.civicrm.org/dev/financial/-/issues/135):
+ [18078](https://github.com/civicrm/civicrm-core/pull/18078) and
+ [18072](https://github.com/civicrm/civicrm-core/pull/18072))**
-- **(REF) APIv4 ConformanceTest - Split apart into per-entity sub-tests ([17845](https://github.com/civicrm/civicrm-core/pull/17845))**
+- **[REF] Extract setUserContext on contribution form & cleanup on backend add
+ membership form
+ ([17968](https://github.com/civicrm/civicrm-core/pull/17968))**
-- **dev/core#1872 - Packages and vendor path calculation used in system check is outdated ([17844](https://github.com/civicrm/civicrm-core/pull/17844))**
+- **[REF] remove unnecessary variable variables
+ ([17903](https://github.com/civicrm/civicrm-core/pull/17903))**
-- **[NFC] Re run regen after recent merges ([17842](https://github.com/civicrm/civicrm-core/pull/17842))**
+- **[REF] - Add helper function for the repetitive task of fetching multilingual
+ ([17650](https://github.com/civicrm/civicrm-core/pull/17650))**
-- **5.28 ([17843](https://github.com/civicrm/civicrm-core/pull/17843))**
+- **[REF] Unit test attempt to create reported bugs , minor cleanup
+ ([17560](https://github.com/civicrm/civicrm-core/pull/17560))**
-- **Move BAO and template files into event cart ([17743](https://github.com/civicrm/civicrm-core/pull/17743))**
+- **[REF] Extract addToRecentItems from membership create
+ ([17524](https://github.com/civicrm/civicrm-core/pull/17524))**
-- **Update regen.sh with new & upcoming core extensions ([17839](https://github.com/civicrm/civicrm-core/pull/17839))**
+- **[REF] Fix a couple of jQuery errors that have cropped up
+ ([17871](https://github.com/civicrm/civicrm-core/pull/17871))**
-- **MembershipRenewalTest - Fix failure ([17830](https://github.com/civicrm/civicrm-core/pull/17830))**
+- **[REF] regen.sh - Remove unusual handling of `zipcodes.mysql`
+ ([17869](https://github.com/civicrm/civicrm-core/pull/17869))**
-- **Remove hard coded charset. ([17826](https://github.com/civicrm/civicrm-core/pull/17826))**
+- **[REF] ScheduledJob cleanup, remove unused var
+ ([17862](https://github.com/civicrm/civicrm-core/pull/17862))**
-- **(REF) WebsiteTest - Mitigate flaky failures ([17833](https://github.com/civicrm/civicrm-core/pull/17833))**
+- **[REF] Migrate Event Cart Setting into the Extension
+ ([17841](https://github.com/civicrm/civicrm-core/pull/17841))**
-- **dev/core#1812 Missing view when logging set in a non-US English instance ([17815](https://github.com/civicrm/civicrm-core/pull/17815))**
+- **[REF] Only printOnly once
+ ([17850](https://github.com/civicrm/civicrm-core/pull/17850))**
-- **dev/core#785 Differentiate smart group from regular group using icon in select2 field ([13958](https://github.com/civicrm/civicrm-core/pull/13958))**
+- **[REF] APIv4 ConformanceTest - Split apart into per-entity sub-tests
+ ([17845](https://github.com/civicrm/civicrm-core/pull/17845))**
-- **APIv4 - Add activity contacts to APIv4 field spec ([17766](https://github.com/civicrm/civicrm-core/pull/17766))**
+- **[REF] WebsiteTest - Mitigate flaky failures
+ ([17833](https://github.com/civicrm/civicrm-core/pull/17833))**
-- **Adjust mysql SET NAMES in remaining places as we agreed this was the go ([17825](https://github.com/civicrm/civicrm-core/pull/17825))**
+- **[REF] Follow up cleanup
+ ([17788](https://github.com/civicrm/civicrm-core/pull/17788))**
-- **core#1805: Autocomplete-select custom field is not searchable ([17569](https://github.com/civicrm/civicrm-core/pull/17569))**
+- **[REF] Remove ACL join on temp table creation in Member ContributionDetail
+ report ([17723](https://github.com/civicrm/civicrm-core/pull/17723))**
-- **event#38 fix wording on event reg page ([17695](https://github.com/civicrm/civicrm-core/pull/17695))**
+- **[REF] Do or do not - there is no try
+ ([17795](https://github.com/civicrm/civicrm-core/pull/17795))**
-- **core#1795: Searchable Parent tags ([17513](https://github.com/civicrm/civicrm-core/pull/17513))**
+- **[REF] Unused interface CRM_Report_Interface
+ ([17767](https://github.com/civicrm/civicrm-core/pull/17767))**
-- **dev/core#1768 - Add CiviMail synchronisation frequency setting. ([17709](https://github.com/civicrm/civicrm-core/pull/17709))**
+- **[REF] - Cleanup StatusPreference BAO to be more standard
+ ([17801](https://github.com/civicrm/civicrm-core/pull/17801))**
-- **Make new email open and url routes 'public' ([17813](https://github.com/civicrm/civicrm-core/pull/17813))**
+- **[REF] Reduce interaction between dedupe code and createProfileContact
+ ([17920](https://github.com/civicrm/civicrm-core/pull/17920))**
-- **dev/core#1871 - require_once's that include "packages/" in the path don't work on drupal 8 ([17822](https://github.com/civicrm/civicrm-core/pull/17822))**
+- **[REF] Simplify field reference
+ ([17941](https://github.com/civicrm/civicrm-core/pull/17941))**
-- **Make api get upgrade-safe ([17729](https://github.com/civicrm/civicrm-core/pull/17729))**
+- **[REF] [Test] Minor simplification on test
+ ([18019](https://github.com/civicrm/civicrm-core/pull/18019))**
-- **5.28 ([17799](https://github.com/civicrm/civicrm-core/pull/17799))**
+- **[REF] Simplify is_email_receipt in sendMail
+ ([18029](https://github.com/civicrm/civicrm-core/pull/18029))**
-- **CRM_Utils_SQL - Add "onDuplicate()" and "syncInto()" helpers ([17780](https://github.com/civicrm/civicrm-core/pull/17780))**
+- **[REF] Remove transaction from BaseIPN completeTransaction call
+ ([18042](https://github.com/civicrm/civicrm-core/pull/18042))**
-- **CheckEnv - Give new installs a grace period before 'Cron Not Running' msg ([17800](https://github.com/civicrm/civicrm-core/pull/17800))**
+- **[REF] Simplify membership status date handling
+ ([18030](https://github.com/civicrm/civicrm-core/pull/18030))**
-- **Fix 'Undefined variable: jsSet in CRM_Core_BAO_Mapping::loadSavedMapping()' ([17816](https://github.com/civicrm/civicrm-core/pull/17816))**
+- **[REF] Clean up handling of financial_type_id override
+ ([18032](https://github.com/civicrm/civicrm-core/pull/18032))**
-- **dev/core#1861 fix failure to unset location_type_id when saving uffield ([17812](https://github.com/civicrm/civicrm-core/pull/17812))**
+- **[REF] Remove transaction from completeOrder signature
+ ([18046](https://github.com/civicrm/civicrm-core/pull/18046))**
-- **dev/core#1863 Downgrade checkEnvironment level and skip non-prod checks ([17807](https://github.com/civicrm/civicrm-core/pull/17807))**
+- **[REF] Remove transaction instantiation in PaypalPro
+ ([18026](https://github.com/civicrm/civicrm-core/pull/18026))**
-- **reporting#21 - don't multiple contribution details when a 1-to-many r… ([15435](https://github.com/civicrm/civicrm-core/pull/15435))**
+- **[REF] Stop instantiating transaction in PaypalIPN
+ ([18020](https://github.com/civicrm/civicrm-core/pull/18020))**
-- **Add hidden tag to search extension ([17789](https://github.com/civicrm/civicrm-core/pull/17789))**
+- **[REF] Remove pass-by-reference & always empty param
+ ([17984](https://github.com/civicrm/civicrm-core/pull/17984))**
-- **[REF] Follow up cleanup ([17788](https://github.com/civicrm/civicrm-core/pull/17788))**
+- **[REF] Tighten up function signature for dedupePair
+ ([17923](https://github.com/civicrm/civicrm-core/pull/17923))**
-- **[REF] Remove ACL join on temp table creation in Member ContributionDe… ([17723](https://github.com/civicrm/civicrm-core/pull/17723))**
+- **[REF] Move noisily deprecate BaseIPN->sendMail, call api from it rather
+ than BAO function
+ ([17982](https://github.com/civicrm/civicrm-core/pull/17982))**
-- **dev/core#1858 Prevent Duplicate contact records being created and har… ([17769](https://github.com/civicrm/civicrm-core/pull/17769))**
+- **[REF] Use CRM_Utils_Mail::send for sending emails for confirming unsubscribe
+ resubscribe auto replies and subscribing
+ ([17396](https://github.com/civicrm/civicrm-core/pull/17396))**
-- **REF - Cleanup StatusPreference BAO to be more standard ([17801](https://github.com/civicrm/civicrm-core/pull/17801))**
+- **[REF] Reduce calls to CRM_Member_PseudoConstant::membershipType
+ ([17987](https://github.com/civicrm/civicrm-core/pull/17987))**
-- **Sort permittedActivityTypes ([17794](https://github.com/civicrm/civicrm-core/pull/17794))**
+- **[REF] Use Standard function cacheClause to re-use contact acl cache table
+ ([17707](https://github.com/civicrm/civicrm-core/pull/17707))**
-- **[REF] Do or do not - there is no try ([17795](https://github.com/civicrm/civicrm-core/pull/17795))**
+- **[REF] Make explicit what we are doing with 'values' in this code
+ ([17979](https://github.com/civicrm/civicrm-core/pull/17979))**
-- **Add auto-renew status to membership detail report ([17683](https://github.com/civicrm/civicrm-core/pull/17683))**
+- **[REF] Minor code clean up
+ ([17974](https://github.com/civicrm/civicrm-core/pull/17974))**
-- **APIv4 - Fix saving custom fields with same name ([17791](https://github.com/civicrm/civicrm-core/pull/17791))**
+- **[REF] Grant cleanup
+ ([17967](https://github.com/civicrm/civicrm-core/pull/17967))**
-- **Add system check to ensure WP base page exists ([17698](https://github.com/civicrm/civicrm-core/pull/17698))**
+- **[REF] Refactor to use the standard CRM_Core_Form::addRadio function for a
+ number of radio elements
+ ([17932](https://github.com/civicrm/civicrm-core/pull/17932))**
-- **dev/core#1868 - Regression - Description field is always blank on profiles admin page and slew of E_NOTICES ([17786](https://github.com/civicrm/civicrm-core/pull/17786))**
+- **[REF] Fix the default to_financial_account_id for generated transactions
+ ([17938](https://github.com/civicrm/civicrm-core/pull/17938))**
-- **Fixed notice error on Relationships report ([17787](https://github.com/civicrm/civicrm-core/pull/17787))**
+- **[REF] Upgrade dompdf version to be more compatible with PHP7.4
+ ([17946](https://github.com/civicrm/civicrm-core/pull/17946))**
-- **getLoggedInContactID() is a static function ([17783](https://github.com/civicrm/civicrm-core/pull/17783))**
+- **[REF] [Tests] Cleanup test declaration to take advantage of mapping
+ improvements ([17939](https://github.com/civicrm/civicrm-core/pull/17939))**
-- **5.28 ([17782](https://github.com/civicrm/civicrm-core/pull/17782))**
+- **[REF] Remove unnecessary complexity on im export
+ ([17949](https://github.com/civicrm/civicrm-core/pull/17949))**
-- **dev/core#1679: Ensure Paypal IPN always updates the next scheduled payment date ([17744](https://github.com/civicrm/civicrm-core/pull/17744))**
+- **[REF] GroupContact BAO - Minor code cleanup
+ ([17928](https://github.com/civicrm/civicrm-core/pull/17928))**
-- **5.28 ([17774](https://github.com/civicrm/civicrm-core/pull/17774))**
+- **[REF] Minor function signuture cleanup
+ ([17922](https://github.com/civicrm/civicrm-core/pull/17922))**
-- **dev/core#1853 - Fix validation errors when removing contact subtype ([17765](https://github.com/civicrm/civicrm-core/pull/17765))**
+- **[REF] Do not pass variable by reference
+ ([17921](https://github.com/civicrm/civicrm-core/pull/17921))**
-- **Add search extension ([17775](https://github.com/civicrm/civicrm-core/pull/17775))**
+- **[REF] remove first attempt to set currency in repeattransaction flow
+ ([18055](https://github.com/civicrm/civicrm-core/pull/18055))**
-- **[dev/core#750] Don't check server variables if we're running in CLI ([17636](https://github.com/civicrm/civicrm-core/pull/17636))**
+- **[REF] Even less variable variables
+ ([18058](https://github.com/civicrm/civicrm-core/pull/18058))**
-- **Remove PaymentExpress ipn class ([17763](https://github.com/civicrm/civicrm-core/pull/17763))**
+- **[REF] Move handling of form elements back to the Form
+ ([17981](https://github.com/civicrm/civicrm-core/pull/17981))**
-- **Status Checks - Use more specific label regarding "Domain"/"Organization" check ([17776](https://github.com/civicrm/civicrm-core/pull/17776))**
+- **[REF] Simplify location metadata handling in Export class
+ ([17951](https://github.com/civicrm/civicrm-core/pull/17951))**
-- **5.28 to master ([17770](https://github.com/civicrm/civicrm-core/pull/17770))**
+- **[REF] Do not pass by reference to the recur function
+ ([18057](https://github.com/civicrm/civicrm-core/pull/18057))**
-- **dev/drupal#114 and dev/core#1647 - Remove resource url status check ([17754](https://github.com/civicrm/civicrm-core/pull/17754))**
+- **[REF] Simplify getMembershipStatusByDate more
+ ([18051](https://github.com/civicrm/civicrm-core/pull/18051))**
-- **Bump minimum upgradable version to 4.4.7 ([17750](https://github.com/civicrm/civicrm-core/pull/17750))**
+- **[REF] Remove mail_mime package as now supplied by composer
+ ([300](https://github.com/civicrm/civicrm-packages/pull/300))**
-- **[REF] Unused interface CRM_Report_Interface ([17767](https://github.com/civicrm/civicrm-core/pull/17767))**
+- **[REF] Remove some deprecated size function calls replaced with length
+ ([299](https://github.com/civicrm/civicrm-packages/pull/299))**
-- **[TEST] Failing test for PR 16559 ([17256](https://github.com/civicrm/civicrm-core/pull/17256))**
+- **Refactor "applyLocale" and remove references to "language" column in UFMatch
+ table ([18049](https://github.com/civicrm/civicrm-core/pull/18049))**
-- **update to pr 16559 ([17764](https://github.com/civicrm/civicrm-core/pull/17764))**
+- **[NFC] Fix provider unit test on PHP7.4
+ ([18073](https://github.com/civicrm/civicrm-core/pull/18073))**
-- **Remove unused, deprecated functions ([17761](https://github.com/civicrm/civicrm-core/pull/17761))**
+- **[NFC] Docblock cleanup
+ ([610](https://github.com/civicrm/civicrm-drupal/pull/610))**
-- **Improve efficiency of findFiles ([17745](https://github.com/civicrm/civicrm-core/pull/17745))**
+- **[NFC] Update versions file to remove reference to Mail_mime and Mail
+ ([301](https://github.com/civicrm/civicrm-packages/pull/301))**
-- **APIv4 Explorer: Improve selection of fields for HAVING ([17746](https://github.com/civicrm/civicrm-core/pull/17746))**
+- **[NFC] Re run regen after recent merges
+ ([17842](https://github.com/civicrm/civicrm-core/pull/17842))**
-- **More unused functions in GenCode ([17756](https://github.com/civicrm/civicrm-core/pull/17756))**
+- **[NFC] Fix nonstandard header comments
+ ([17880](https://github.com/civicrm/civicrm-core/pull/17880))**
-- **Fix PHP notice on wordpress permissions form ([17758](https://github.com/civicrm/civicrm-core/pull/17758))**
+- **[NFC] Add in a unit test of calling the contribution page widget endpoint
+ and remove unneeded file
+ ([17965](https://github.com/civicrm/civicrm-core/pull/17965))**
-- **core#1826: Ignore location_type_id when deduping postal address ([17645](https://github.com/civicrm/civicrm-core/pull/17645))**
+- **[NFC] Improve docs for APIv4 Save action
+ ([18004](https://github.com/civicrm/civicrm-core/pull/18004))**
-- **[Unit Test] dev/core#1173 and dev/core#1827 - Test for activity tag search - PR 17655 ([17755](https://github.com/civicrm/civicrm-core/pull/17755))**
+- **[NFC] Docblock cleanup
+ ([17945](https://github.com/civicrm/civicrm-core/pull/17945))**
-- **Convert CRM.utils.formatDate tests to karma ([17757](https://github.com/civicrm/civicrm-core/pull/17757))**
+- **[NFC] Update a few doc/wiki links in code comments
+ ([17918](https://github.com/civicrm/civicrm-core/pull/17918))**
-- **dev/core#1827 activity search - fixing search by tags ([17655](https://github.com/civicrm/civicrm-core/pull/17655))**
+- **[NFC] Comment block cleanup
+ ([17872](https://github.com/civicrm/civicrm-core/pull/17872))**
-- **Unused functions in GenCode ([17753](https://github.com/civicrm/civicrm-core/pull/17753))**
+- **[Test] Update hook signature in test
+ ([609](https://github.com/civicrm/civicrm-drupal/pull/609))**
-- **5.28 ([17751](https://github.com/civicrm/civicrm-core/pull/17751))**
+- **[Test] Attempt to replicate #17852
+ ([18038](https://github.com/civicrm/civicrm-core/pull/18038))**
-- **Teach CRM.utils.formatDate to also show time ([17684](https://github.com/civicrm/civicrm-core/pull/17684))**
+- **[Test fix] We might need this to ensure really quick test runs don't fail
+ ([18045](https://github.com/civicrm/civicrm-core/pull/18045))**
-- **Fix typo in templates/CRM/Report/Form/Tabs/GroupBy.tpl ([17747](https://github.com/civicrm/civicrm-core/pull/17747))**
+- **Add testing to Authorize.net and remove the lines that are repeated
+ ([18028](https://github.com/civicrm/civicrm-core/pull/18028))**
-- **Add eventcart shell ([17741](https://github.com/civicrm/civicrm-core/pull/17741))**
+- **Add test on status calculation
+ ([18037](https://github.com/civicrm/civicrm-core/pull/18037))**
-- **Fixed for multi-select filter ([615](https://github.com/civicrm/civicrm-drupal/pull/615))**
+- **Fix for failing test
+ ([18036](https://github.com/civicrm/civicrm-core/pull/18036))**
-- **fix url for file field ([608](https://github.com/civicrm/civicrm-drupal/pull/608))**
+- **[Test framework] re-re-fix test and add test for test
+ ([18013](https://github.com/civicrm/civicrm-core/pull/18013))**
-- **[Test] Update hook signature in test ([609](https://github.com/civicrm/civicrm-drupal/pull/609))**
+- **Re-fix test ([18009](https://github.com/civicrm/civicrm-core/pull/18009))**
-- **NFC - Docblock cleanup ([610](https://github.com/civicrm/civicrm-drupal/pull/610))**
+- **[Test framework] - Update failing test
+ ([18003](https://github.com/civicrm/civicrm-core/pull/18003))**
-- **Installation - Support "activate first" w/setup UI ([606](https://github.com/civicrm/civicrm-drupal/pull/606))**
+- **[Test framework] - Combine triplicate createCase functions
+ ([17957](https://github.com/civicrm/civicrm-core/pull/17957))**
-- **Slow down the frequency of WordPress "heartbeat" calls in CiviCRM admin ([214](https://github.com/civicrm/civicrm-wordpress/pull/214))**
+- **Remove error checking by-pass in tests
+ ([17940](https://github.com/civicrm/civicrm-core/pull/17940))**
-- **Remove unused "ufUniqID" session variable ([213](https://github.com/civicrm/civicrm-wordpress/pull/213))**
+- **[Test Framework] - Tests for report downloads
+ ([17892](https://github.com/civicrm/civicrm-core/pull/17892))**
-- **5.28 to master ([212](https://github.com/civicrm/civicrm-wordpress/pull/212))**
+- **api_v3_TaxContributionPageTest - Remove hard coded processor id
+ ([17860](https://github.com/civicrm/civicrm-core/pull/17860))**
-- **Installation - Support "activate first" w/setup UI ([121](https://github.com/civicrm/civicrm-backdrop/pull/121))**
+- **API tests - label versions in dataprovider versionThreeAndFour
+ ([17847](https://github.com/civicrm/civicrm-core/pull/17847))**
-- **[NFC] Update versions file to remove reference to Mail_mime and Mail ([301](https://github.com/civicrm/civicrm-packages/pull/301))**
+- **Extract code to set isEmailReceipt in Contribution.completeOrder
+ ([18039](https://github.com/civicrm/civicrm-core/pull/18039))**
-- **[REF] Remove mail_mime package as now supplied by composer ([300](https://github.com/civicrm/civicrm-packages/pull/300))**
+- **Do not pass-by-reference to recur function
+ ([18071](https://github.com/civicrm/civicrm-core/pull/18071))**
-- **Remove Net packages Net_Curl Net_DIME as they do not appear to be used ([294](https://github.com/civicrm/civicrm-packages/pull/294))**
+- **Unused functions in GenCode
+ ([17753](https://github.com/civicrm/civicrm-core/pull/17753))**
-- **[REF] Remove some deprecated size function calls replaced with length ([299](https://github.com/civicrm/civicrm-packages/pull/299))**
+- **Fix typo in templates/CRM/Report/Form/Tabs/GroupBy.tpl
+ ([17747](https://github.com/civicrm/civicrm-core/pull/17747))**
-## <a name="misc"></a>Miscellany
+- **Remove unused "ufUniqID" session variable
+ ([213](https://github.com/civicrm/civicrm-wordpress/pull/213))**
+
+- **Remove Net packages Net_Curl Net_DIME as they do not appear to be used
+ ([294](https://github.com/civicrm/civicrm-packages/pull/294))**
+
+- **Update contributor key for Andrew
+ ([18230](https://github.com/civicrm/civicrm-core/pull/18230))**
+
+- **Fix qill typo
+ ([18041](https://github.com/civicrm/civicrm-core/pull/18041))**
+
+- **Update flexmailer release information
+ ([17912](https://github.com/civicrm/civicrm-core/pull/17912))**
+
+- **Remove invalid use of crmMoney formatter
+ ([18031](https://github.com/civicrm/civicrm-core/pull/18031))**
+
+- **Remove main PaymentExpress class
+ ([18010](https://github.com/civicrm/civicrm-core/pull/18010))**
+
+- **Remove unused parameter ids['billing']
+ ([18021](https://github.com/civicrm/civicrm-core/pull/18021))**
+
+- **Cache loader - remove legacy handling, handle null result from setting
+ ([17999](https://github.com/civicrm/civicrm-core/pull/17999))**
+
+- **Use case id to get relationship for activity creation
+ ([17256](https://github.com/civicrm/civicrm-core/pull/17256) and
+ [17764](https://github.com/civicrm/civicrm-core/pull/17764))**
## <a name="credits"></a>Credits
This release was developed by the following code authors:
-AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Justin Freeman; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma, Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; dependabot[bot]; Fuzion - Jitendra Purohit; iXiam - César Ramos; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Joinery - Allen Shaw; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MillerTech - Chamil Wijesooriya; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; muniodiego; Progressive Technology Project - Jamie McClelland; Squiffle Consulting - Aidan Saunders; Stephen Palmstrom; Tadpole Collective - Kevin Cristiano; Timbsoft Technologies - Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton
+AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman;
+Christian Wach; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma,
+Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku;
+Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Fuzion - Jitendra
+Purohit; iXiam - César Ramos, Diego Muñio; JMA Consulting - Monish Deb, Seamus
+Lee; John Kingsnorth; Joinery - Allen Shaw; Lighthouse Consulting and Design -
+Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MillerTech -
+Chamil Wijesooriya; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire;
+Progressive Technology Project - Jamie McClelland; Squiffle Consulting - Aidan
+Saunders; Stephen Palmstrom; Tadpole Collective - Kevin Cristiano; Timbsoft
+Technologies - Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
-AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Justin Freeman, Pengyi Zhang; Andrew Thompson; Artful Robot - Rich Lott; Australian Greens - Andrew Cormick-Dockery, John Twyman; Bastien Ho; Blackfly Solutions - Alan Dixon; Christian Wach; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma, Klaas Eikelboom; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Jamie Novick; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; DevApp - Adam Kwiatkowski; elcapo; Francesc Bassas i Bullich; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; irenemeisel; iXiam - César Ramos; JMA Consulting - Joe Murray, Monish Deb, Seamus Lee; Joinery - Allen Shaw; Korlon - Stuart Gaston; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MillerTech - Chamil Wijesooriya; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Nicol Wistreich; Progressive Technology Project - Jamie McClelland; Rar9; Ray Wright; Semper IT - Karin Gerritsen; Squiffle Consulting - Aidan Saunders; Stephen Palmstrom; Tadpole Collective - Kevin Cristiano; Third Sector Design - Michael McAndrew; Wikimedia Foundation - Eileen McNaughton
+Agileware - Pengyi Zhang; Andrew Thompson; Artful Robot - Rich Lott; Australian
+Greens - Andrew Cormick-Dockery, John Twyman; Bastien Ho; Blackfly Solutions -
+Alan Dixon; Carlos Capote; CompuCorp - Jamie Novick; DevApp - Adam Kwiatkowski;
+Francesc Bassas i Bullich; Freeform Solutions - Herb van den Dool; Greenpeace
+Central and Eastern Europe - Patrick Figel; Irene Meisel; JMA Consulting - Joe
+Murray; Korlon - Stuart Gaston; Nicol Wistreich; Rar9; Ray Wright; Semper IT -
+Karin Gerritsen; Third Sector Design - Michael McAndrew
## <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`.