| *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
+### CiviContribute
+
+- **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))**
+
+ 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.
+
+### CiviEvent
+
+- **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))**
+
+ The event cart features have been moved to a separate extension that is
+ shipped with core.
+
### CiviMember
- **Option to update expired memberships as part of the job.process_membership
Deceased will always be excluded
+- **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))**
+
+ The membership detail report can now display and filter on the auto-renew
+ status of each membership.
+
### Backdrop Integration
- **Support for installing CiviCRM-Backdrop via "setup" UI
the setup screen to complete installation as opposed to having to navigate to
a specific link.
+### Drupal Integration
+
+- **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))**
+
+ 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.
+
+ 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.
+
+- **Installation - Support "activate first" w/setup UI
+ ([606](https://github.com/civicrm/civicrm-drupal/pull/606))**
+
+ The new setup user interface for Backdrop and WordPress installations is now
+ available for Drupal 7.
+
+### WordPress Integration
+
+- **Add system check to ensure WP base page exists
+ ([17698](https://github.com/civicrm/civicrm-core/pull/17698))**
+
+ 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.
+
### Core CiviCRM
- **Contact export is very slow, creates huge temporary tables
Improves performance when exporting contacts by only exporting primary address
fields.
+- **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))**
+
+ 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.
+
- **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))**
Improves icons in Status Messages for reports.
+- **Show cron warning on Scheduled Jobs admin page
+ ([18065](https://github.com/civicrm/civicrm-core/pull/18065))**
+
+ A pop-up message will appear on the Scheduled Jobs page if cron has not been
+ running.
+
+- **Add APIv4 and pseudoconstants for RelationshipCache
+ ()**
+
+- **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))**
+
+ 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.
+
- **Remove ORDER BY and GROUP BY from alphabetQuery to improve performance
([16877](https://github.com/civicrm/civicrm-core/pull/16877))**
- **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) and
- [13958](https://github.com/civicrm/civicrm-core/pull/13958))**
+ [17927](https://github.com/civicrm/civicrm-core/pull/17927))**
Improves Group's select2 by adding icon next to smart groups.
Makes it so sites can use ssl to connect to mysql.
+- **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))**
+
+ Extensions that allow additional fields to be added to profiles can now add
+ schemas so that fields can be added from new entities.
+
+- **Why not make the buttons flat?
+ ([18054](https://github.com/civicrm/civicrm-core/pull/18054))**
+
+ Buttons no longer have a gradient background.
+
+- **SystemCheck: add ability to efficiently run only specified checks
+ ([17824](https://github.com/civicrm/civicrm-core/pull/17824))**
+
+ The APIv4 system check action can now filter on name, running just the
+ specified check(s).
+
+- **Change inform-icon to fa-info-circle
+ ([18001](https://github.com/civicrm/civicrm-core/pull/18001))**
+
+ The information icon is now produced with Font Awesome rather than a sprite.
+
+- **APIv4 - Add keyword to select all custom fields
+ ([17955](https://github.com/civicrm/civicrm-core/pull/17955))**
+
+ You can now use a wildcard to select all custom fields on an entity without
+ specifying each individually.
+
+- **Improve caching of current domain
+ ([17916](https://github.com/civicrm/civicrm-core/pull/17916))**
+
+ Domain information is now cached in one central place, making it more
+ straightforward to use and flush.
+
+- **APIv4 - Specify BridgeEntities to assist with joins
+ ([17808](https://github.com/civicrm/civicrm-core/pull/17808))**
+
+ 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.
+
+- **APIv4 - Add shorthand for setCheckPermissions()
+ ([17834](https://github.com/civicrm/civicrm-core/pull/17834) and
+ [17874](https://github.com/civicrm/civicrm-core/pull/17874))**
+
+ 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.
+
+- **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))**
+
+ 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.
+
## <a name="bugs"></a>Bugs resolved
### Wordpress Integration
- **Fix PHP notice on wordpress permissions form
([17758](https://github.com/civicrm/civicrm-core/pull/17758))**
+- **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))**
+
### Drupal Integration
- **Drupal 8 - Using Create User Record action on a contact with no email is too
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.
+- **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))**
+
+- **Fixed for multi-select filter
+ ([615](https://github.com/civicrm/civicrm-drupal/pull/615))**
+
+ This fixes filters for multi-select fields in Views.
+
+- **fix url for file field
+ ([608](https://github.com/civicrm/civicrm-drupal/pull/608))**
+
+ This fixes the generated URL for file fields in Views.
+
### CiviCase
- **Fix case activity field set to allow long details to be exported
([17970](https://github.com/civicrm/civicrm-core/pull/17970))**
+- **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))**
+
+- **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))**
+
+- **CRM_Utils_Check_Component_Case - Guard against post-upgrade crash
+ ([17944](https://github.com/civicrm/civicrm-core/pull/17944))**
+
### CiviContribute
+- **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))**
+
+ 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.
+
+ 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.
+
+- **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))**
+
+ The frequency and interval fields for recurring contributions now use jQuery
+ validation to disable or require them as appropriate.
+
- **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):
than the site's default currency, the "grand total" row shows the sign of the
default currency instead of the filtered currency.
-- **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))**
-
- Ensures that the contribution receive_date does not change when payments come
- in.
-
- **Fix PaypalIPN single function to not receive-by-reference
([18044](https://github.com/civicrm/civicrm-core/pull/18044))**
+- **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))**
+
+- **Fix currency symbol for Total Amount on contribution page
+ ([17703](https://github.com/civicrm/civicrm-core/pull/17703))**
+
+ This resolves a but where the total amount would show the default system
+ currency symbol regardless of the currency configured on the contribution
+ page.
+
- **On behalf label / Honoree Title / Honoree Description not translatable on
contribution page
([dev/core#1280](https://lab.civicrm.org/dev/core/-/issues/1280):
- **Do not overwrite values saved from the repeatContribution routine
([17972](https://github.com/civicrm/civicrm-core/pull/17972))**
+- **"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))**
+
+- **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))**
+
+- **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))**
+
+- **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))**
+
+ Downloading an invoice would ignore whether wkhtmltopdf was configured and
+ always use dompdf.
+
+- **Fix repeattransaction api to use custom data from the template contribution
+ ([17975](https://github.com/civicrm/civicrm-core/pull/17975))**
+
+ The Contribution.repeattransaction API will now copy custom data from the
+ template rather than the earliest related contribution.
+
### CiviEvent
- **Can't meaningfully disable self-service transfer/cancellation once enabled
### CiviMail
+- **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))**
+
+ Rewritten URLs were confusing and made SMS messages unnecessarily long. There
+ also have never been SMS tracking reports to use them anyway.
+
- **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))**
Ensures contacts are not created when a user without permissions to create
contacts sends a test email.
+- **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))**
+
+- **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))**
+
+- **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))**
+
+ 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.
+
+- **Make new email open and url routes 'public'
+ ([17813](https://github.com/civicrm/civicrm-core/pull/17813))**
+
+ 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.
+
### CiviMember
- **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))**
+- **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))**
+
### Core CiviCRM
+- **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))**
+
+ 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.
+
+- **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))**
+
+ Duplicate matching now ignores location type for postal address fields, now
+ consistent with how it has ignored phone and email location types.
+
- **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#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))**
-- **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))**
-
-- **dev/core#1755 Fix reCaptcha on Mailing Subscribe ([17305](https://github.com/civicrm/civicrm-core/pull/17305))**
-
-- **dev/core#1767 Fix phone key parsing in CRM_Dedupe_Finder ([17361](https://github.com/civicrm/civicrm-core/pull/17361) and [17882](https://github.com/civicrm/civicrm-core/pull/17882))**
-
-- **dev/core#1768 - Add CiviMail synchronisation frequency setting. ([17709](https://github.com/civicrm/civicrm-core/pull/17709))**
-
-- **core#1795: Searchable Parent tags ([17513](https://github.com/civicrm/civicrm-core/pull/17513))**
-
-- **core#1805: Autocomplete-select custom field is not searchable ([17569](https://github.com/civicrm/civicrm-core/pull/17569))**
-
-- **dev/core#1812 Missing view when logging set in a non-US English instance ([17815](https://github.com/civicrm/civicrm-core/pull/17815))**
-
-- **core#1826: Ignore location_type_id when deduping postal address ([17645](https://github.com/civicrm/civicrm-core/pull/17645))**
-
-- **dev/core#1827 activity search - fixing search by tags ([17655](https://github.com/civicrm/civicrm-core/pull/17655) and [17755](https://github.com/civicrm/civicrm-core/pull/17755))**
-
-- **dev/core#1843 Remove url-tracking in mass sms. ([17700](https://github.com/civicrm/civicrm-core/pull/17700))**
-
-- **dev/core#1853 - Fix validation errors when removing contact subtype ([17765](https://github.com/civicrm/civicrm-core/pull/17765))**
-
-- **dev/core#1855 - Allow different output formats for CiviReport results and untangle code ([17901](https://github.com/civicrm/civicrm-core/pull/17901))**
-
-- **dev/core#1858 Prevent Duplicate contact records being created and har… ([17769](https://github.com/civicrm/civicrm-core/pull/17769))**
-
-- **dev/core#1861 fix failure to unset location_type_id when saving uffield ([17812](https://github.com/civicrm/civicrm-core/pull/17812))**
-
-- **dev/core#1863 Downgrade checkEnvironment level and skip non-prod checks ([17807](https://github.com/civicrm/civicrm-core/pull/17807))**
-
-- **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))**
-
-- **dev/core#1869 - Include BOM in attachment when sending CSV CiviReport via mail_report job ([17806](https://github.com/civicrm/civicrm-core/pull/17806))**
-
-- **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))**
-
-- **dev/core#1872 - Packages and vendor path calculation used in system check is outdated ([17844](https://github.com/civicrm/civicrm-core/pull/17844))**
-
-- **dev/core#1874 - Failing test for new Individual form ([17835](https://github.com/civicrm/civicrm-core/pull/17835))**
-
-- **dev/core#1880 add backticks to custom field insertions ([17848](https://github.com/civicrm/civicrm-core/pull/17848))**
-
-- **dev/core#1888 - Fix one line in PR 17888 ([17898](https://github.com/civicrm/civicrm-core/pull/17898))**
-
-- **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))**
+- **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))**
-- **dev/core#1894 - Make CRM_Activity_Form_SearchTest::testQill less time-sensitive ([17902](https://github.com/civicrm/civicrm-core/pull/17902))**
+- **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))**
-- **dev/core#1895 fix first/last name adv search ([17950](https://github.com/civicrm/civicrm-core/pull/17950))**
+ This has never worked, with network errors as the result. This prevents it
+ from being set.
-- **dev/core#1902: "Contribution Source" profile field has no effect ([17930](https://github.com/civicrm/civicrm-core/pull/17930))**
+- **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#1905 force backend links for new "configure" buttons ([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))**
+- **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))**
-- **dev/core#1906 - Allow payment create api to record payment on Failed … ([17943](https://github.com/civicrm/civicrm-core/pull/17943))**
+ 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.
-- **dev/core#1909 Fix E-notice when adding a field on a profile ([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), [17985](https://github.com/civicrm/civicrm-core/pull/17985))**
+- **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))**
-- **dev/core#1913 Allow for schemas to be added by extensions if they are… ([17986](https://github.com/civicrm/civicrm-core/pull/17986))**
+ The location type would get reset to your default location type rather than
+ staying as "primary".
-- **dev/core#1915 - E_NOTICE when making pcp contribution ([18002](https://github.com/civicrm/civicrm-core/pull/18002))**
+- **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))**
-- **dev/core#1916 - Fix naming of case export fields / remove ones that aren't true ([18043](https://github.com/civicrm/civicrm-core/pull/18043))**
+ 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.
-- **dev/core#1918 - Remove dubious qfkey checking code that never runs ([18007](https://github.com/civicrm/civicrm-core/pull/18007))**
+- **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))**
-- **dev/core#1919 - Missing resubscribe url in text/plain version of unsubscribe confirmation email ([18015](https://github.com/civicrm/civicrm-core/pull/18015))**
+- **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))**
-- **dev/core#1921 [Ref] remove isoToMysql ([18025](https://github.com/civicrm/civicrm-core/pull/18025))**
+- **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))**
-- **dev/core#1928 Fix HTML5 error due to required attribute being set swi… ([18080](https://github.com/civicrm/civicrm-core/pull/18080))**
+ 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.
-- **dev/core#1932 - Make status-checks more polite during upgrade ([18085](https://github.com/civicrm/civicrm-core/pull/18085))**
+- **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))**
-- **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))**
+- **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))**
-- **dev/core#1983 Fix to tax calculation on multi-line-item ([18290](https://github.com/civicrm/civicrm-core/pull/18290))**
+ 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.
-- **dev/core#1972 Fix tax_amount calclation on renewal form ([18271](https://github.com/civicrm/civicrm-core/pull/18271))**
+- **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))**
+- **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))**
+ This removes legacy code that appeared to attempt to check for a valid
+ quickForm key but wasn't effectively doing so.
+- **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))**
-- **Installation doclinks not getting url-rewritten ([18175](https://github.com/civicrm/civicrm-core/pull/18175))**
+- **Installation doclinks not getting url-rewritten
+ ([18175](https://github.com/civicrm/civicrm-core/pull/18175))**
-- **Fix button name on updated form ([18000](https://github.com/civicrm/civicrm-core/pull/18000))**
+ Links to the new installation documentation are now handled in the same way as
+ other documentation sites.
-- **Show cron warning on Scheduled Jobs admin page ([18065](https://github.com/civicrm/civicrm-core/pull/18065))**
+- **Wrap multi record custom field inside a div
+ ([17966](https://github.com/civicrm/civicrm-core/pull/17966))**
-- **Use correct pdf package to generate pdf file on invoice download/email activity ([18056](https://github.com/civicrm/civicrm-core/pull/18056))**
+- **Fixed filling default values for tagssets in the advanced search form
+ ([17978](https://github.com/civicrm/civicrm-core/pull/17978))**
-- **Why not make the buttons flat? ([18054](https://github.com/civicrm/civicrm-core/pull/18054))**
+- **Simplify caching of status checks
+ ([17817](https://github.com/civicrm/civicrm-core/pull/17817))**
-- **Wrap multi record custom field inside a div ([17966](https://github.com/civicrm/civicrm-core/pull/17966))**
+- **ensure custom field checkboxes are populated in profiles
+ ([17977](https://github.com/civicrm/civicrm-core/pull/17977))**
-- **SystemCheck: add ability to efficiently run only specified checks ([17824](https://github.com/civicrm/civicrm-core/pull/17824))**
+- **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))**
-- **Change inform-icon to fa-info-circle ([18001](https://github.com/civicrm/civicrm-core/pull/18001))**
+- **Setup UI - Validate that at least one "Component" is enabled
+ ([17778](https://github.com/civicrm/civicrm-core/pull/17778))**
-- **Fix repeattransaction api to use custom data from the template contribution ([17975](https://github.com/civicrm/civicrm-core/pull/17975))**
+ This prevents you from proceeding with installation without enabling at least
+ one component. Not enabling any components causes a messy failed
+ installation.
-- **Fixed filling default values for tagssets in the advanced search form ([17978](https://github.com/civicrm/civicrm-core/pull/17978))**
-
-- **Simplify caching of status checks ([17817](https://github.com/civicrm/civicrm-core/pull/17817))**
-
-- **ensure custom field checkboxes are populated in profiles ([17977](https://github.com/civicrm/civicrm-core/pull/17977))**
-
-- **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))**
-
-- **APIv4 - Add keyword to select all custom fields ([17955](https://github.com/civicrm/civicrm-core/pull/17955))**
-
-- **CRM_Utils_Check_Component_Case - Guard against post-upgrade crash ([17944](https://github.com/civicrm/civicrm-core/pull/17944))**
-
-- **Improve caching of current domain ([17916](https://github.com/civicrm/civicrm-core/pull/17916))**
-
-- **Setup UI - Validate that at least one "Component" is enabled ([17778](https://github.com/civicrm/civicrm-core/pull/17778))**
-
-- **Member detail report: nest "in" options in parentheses ([17911](https://github.com/civicrm/civicrm-core/pull/17911))**
-
-- **Replace a load of references to the wiki with docs links ([17900](https://github.com/civicrm/civicrm-core/pull/17900))**
-
-- **Call apiv4 from Contribution create rather than fugly addActivity function ([17881](https://github.com/civicrm/civicrm-core/pull/17881))**
-
-- **APIv4 - Add BasicEntity helper class ([17899](https://github.com/civicrm/civicrm-core/pull/17899))**
-
-- **Add APIv4 and pseudoconstants for RelationshipCache ([17879](https://github.com/civicrm/civicrm-core/pull/17879))**
-
-- **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))**
-
-- **Be a little less supportive to cvs ([17896](https://github.com/civicrm/civicrm-core/pull/17896))**
-
-- **APIv4 - Specify BridgeEntities to assist with joins ([17808](https://github.com/civicrm/civicrm-core/pull/17808))**
-
-- **Event Cart ext: Move menu entries to extension ([17891](https://github.com/civicrm/civicrm-core/pull/17891))**
-
-- **EventCart ext: Cleanup and move form components to ext ([17885](https://github.com/civicrm/civicrm-core/pull/17885))**
-
-- **EventCart ext: Fix autogenerated code, remove unused hooks, update readme ([17884](https://github.com/civicrm/civicrm-core/pull/17884))**
-
-- **Add eventcart shell ([17741](https://github.com/civicrm/civicrm-core/pull/17741))**
-
-- **EventCart - Resolve BAO identity and uncommitted DAO changes ([17861](https://github.com/civicrm/civicrm-core/pull/17861))**
-
-- **Move BAO and template files into event cart ([17743](https://github.com/civicrm/civicrm-core/pull/17743))**
+- **Call apiv4 from Contribution create rather than fugly addActivity function
+ ([17881](https://github.com/civicrm/civicrm-core/pull/17881))**
- **Search debug ([17887](https://github.com/civicrm/civicrm-core/pull/17887))**
-- **Use new checkPermissions shorthand in api calls ([17874](https://github.com/civicrm/civicrm-core/pull/17874))**
-
-- **Simplify flushing group contact cache query to reduce table locking and improve performance ([17846](https://github.com/civicrm/civicrm-core/pull/17846))**
+- **Simplify flushing group contact cache query to reduce table locking and
+ improve performance
+ ([17846](https://github.com/civicrm/civicrm-core/pull/17846))**
-- **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))**
+- **Make api get upgrade-safe
+ ([17729](https://github.com/civicrm/civicrm-core/pull/17729))**
-- **Fix currency symbol for Total Amount on contribution page ([17703](https://github.com/civicrm/civicrm-core/pull/17703))**
+ 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.
-- **RelationshipCache - Add a high-level index to facilitate relationship queries (more fields) ([17781](https://github.com/civicrm/civicrm-core/pull/17781))**
+- **CheckEnv - Give new installs a grace period before 'Cron Not Running' msg
+ ([17800](https://github.com/civicrm/civicrm-core/pull/17800))**
-- **Search Ext: fix loading options and parsing custom field names ([17864](https://github.com/civicrm/civicrm-core/pull/17864))**
+ The system check will lower the severity of the "cron not running" check for
+ the first 24 hours after a site has been installed.
-- **Bump lodash from 4.17.15 to 4.17.19 ([17858](https://github.com/civicrm/civicrm-core/pull/17858))**
+- **Sort permittedActivityTypes
+ ([17794](https://github.com/civicrm/civicrm-core/pull/17794))**
+ 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.
-- **Update regen.sh with new & upcoming core extensions ([17839](https://github.com/civicrm/civicrm-core/pull/17839))**
-
-- **APIv4 - Add activity contacts to APIv4 field spec ([17766](https://github.com/civicrm/civicrm-core/pull/17766))**
-
-- **Adjust mysql SET NAMES in remaining places as we agreed this was the go ([17825](https://github.com/civicrm/civicrm-core/pull/17825))**
-
-- **Make new email open and url routes 'public' ([17813](https://github.com/civicrm/civicrm-core/pull/17813))**
-
-- **Make api get upgrade-safe ([17729](https://github.com/civicrm/civicrm-core/pull/17729))**
-
-- **CRM_Utils_SQL - Add "onDuplicate()" and "syncInto()" helpers ([17780](https://github.com/civicrm/civicrm-core/pull/17780))**
-
-- **CheckEnv - Give new installs a grace period before 'Cron Not Running' msg ([17800](https://github.com/civicrm/civicrm-core/pull/17800))**
-
-- **Add hidden tag to search extension ([17789](https://github.com/civicrm/civicrm-core/pull/17789))**
-
-- **Sort permittedActivityTypes ([17794](https://github.com/civicrm/civicrm-core/pull/17794))**
-
-- **Add auto-renew status to membership detail report ([17683](https://github.com/civicrm/civicrm-core/pull/17683))**
-
-- **APIv4 - Fix saving custom fields with same name ([17791](https://github.com/civicrm/civicrm-core/pull/17791))**
-
-- **Add system check to ensure WP base page exists ([17698](https://github.com/civicrm/civicrm-core/pull/17698))**
-
-- **Add search extension ([17775](https://github.com/civicrm/civicrm-core/pull/17775))**
-
-- **Status Checks - Use more specific label regarding "Domain"/"Organization" check ([17776](https://github.com/civicrm/civicrm-core/pull/17776))**
-
-- **Bump minimum upgradable version to 4.4.7 ([17750](https://github.com/civicrm/civicrm-core/pull/17750))**
-
-- **Improve efficiency of findFiles ([17745](https://github.com/civicrm/civicrm-core/pull/17745))**
-
-- **APIv4 Explorer: Improve selection of fields for HAVING ([17746](https://github.com/civicrm/civicrm-core/pull/17746))**
-
-- **Convert CRM.utils.formatDate tests to karma ([17757](https://github.com/civicrm/civicrm-core/pull/17757))**
-
-- **Teach CRM.utils.formatDate to also show time ([17684](https://github.com/civicrm/civicrm-core/pull/17684))**
-
-- **Fixed for multi-select filter ([615](https://github.com/civicrm/civicrm-drupal/pull/615))**
-
-- **fix url for file field ([608](https://github.com/civicrm/civicrm-drupal/pull/608))**
-
-- **Slow down the frequency of WordPress "heartbeat" calls in CiviCRM admin ([214](https://github.com/civicrm/civicrm-wordpress/pull/214))**
-
-- **Installation - Support "activate first" w/setup UI ([606](https://github.com/civicrm/civicrm-drupal/pull/606))**
-
+- **APIv4 - Fix saving custom fields with same name
+ ([17791](https://github.com/civicrm/civicrm-core/pull/17791))**
+- **Status Checks - Use more specific label regarding "Domain"/"Organization"
+ check ([17776](https://github.com/civicrm/civicrm-core/pull/17776))**
- **SQL temp table not using utf8mb4 if server default already set to utf8mb4
([18012](https://github.com/civicrm/civicrm-core/pull/18012))**
- **Fix JQuery Validation for radios
([17937](https://github.com/civicrm/civicrm-core/pull/17937))**
-- **Fix buggy placement of icons on buttons
- ([18005](https://github.com/civicrm/civicrm-core/pull/18005))**
-
## <a name="misc"></a>Miscellany
+- **APIv4 - Add BasicEntity helper class
+ ([17899](https://github.com/civicrm/civicrm-core/pull/17899))**
+
+- **Bump minimum upgradable version to 4.4.7
+ ([17750](https://github.com/civicrm/civicrm-core/pull/17750))**
+
+- **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))**
+
+- **Be a little less supportive to cvs
+ ([17896](https://github.com/civicrm/civicrm-core/pull/17896))**
+
+- **Replace a load of references to the wiki with docs links
+ ([17900](https://github.com/civicrm/civicrm-core/pull/17900))**
+
+- **Remove unneccessary isoToDate function
+ ([dev/core#1921](https://lab.civicrm.org/dev/core/-/issues/1921):
+ [18025](https://github.com/civicrm/civicrm-core/pull/18025))**
+
+- **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))**
+
+- **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))**
+
+- **Bump lodash from 4.17.15 to 4.17.19
+ ([17858](https://github.com/civicrm/civicrm-core/pull/17858))**
+
+- **Update regen.sh with new & upcoming core extensions
+ ([17839](https://github.com/civicrm/civicrm-core/pull/17839))**
+
+- **APIv4 - Add activity contacts to APIv4 field spec
+ ([17766](https://github.com/civicrm/civicrm-core/pull/17766))**
+
+- **Adjust mysql SET NAMES in remaining places as we agreed this was the go
+ ([17825](https://github.com/civicrm/civicrm-core/pull/17825))**
+
+- **CRM_Utils_SQL - Add "onDuplicate()" and "syncInto()" helpers
+ ([17780](https://github.com/civicrm/civicrm-core/pull/17780))**
+
+- **Improve efficiency of findFiles
+ ([17745](https://github.com/civicrm/civicrm-core/pull/17745))**
+
+- **APIv4 Explorer: Improve selection of fields for HAVING
+ ([17746](https://github.com/civicrm/civicrm-core/pull/17746))**
+
+- **Convert CRM.utils.formatDate tests to karma
+ ([17757](https://github.com/civicrm/civicrm-core/pull/17757))**
+
+- **Teach CRM.utils.formatDate to also show time
+ ([17684](https://github.com/civicrm/civicrm-core/pull/17684))**
+
- **CRM_Utils_Hook: deprecation warning and short array syntax
([17995](https://github.com/civicrm/civicrm-core/pull/17995))**
- **Hooks/Dispatcher - Close loopholes that occur around "preboot" hooks
([17831](https://github.com/civicrm/civicrm-core/pull/17831))**
-- **APIv4 - Add shorthand for setCheckPermissions()
- ([17834](https://github.com/civicrm/civicrm-core/pull/17834))**
-
- **Use PrematureExit exception instead of weird hack in tests
([17870](https://github.com/civicrm/civicrm-core/pull/17870))**
- **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))**
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
-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;
+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;
+Karin Gerritsen; Third Sector Design - Michael McAndrew
## <a name="feedback"></a>Feedback