X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=release-notes%2F5.25.0.md;h=878bbb89803ede9af678e21f84f1cbc669e7f21a;hb=69cd824e26fc6e90a88e6cf18d9d011c1c85b94e;hp=a340d21c683ed09459274e5295fdeced7e365559;hpb=e76ac9793705c58b5885f77b3046c749e57352b9;p=civicrm-core.git
diff --git a/release-notes/5.25.0.md b/release-notes/5.25.0.md
index a340d21c68..878bbb8980 100644
--- a/release-notes/5.25.0.md
+++ b/release-notes/5.25.0.md
@@ -13,467 +13,832 @@ Released May 6, 2020
| *Does this version...?* | |
|:--------------------------------------------------------------- |:-------:|
-| Fix security vulnerabilities? | |
-| Change the database schema? | |
-| Alter the API? | |
-| Require attention to configuration options? | |
-| Fix problems installing or upgrading to a previous version? | |
-| Introduce features? | |
-| Fix bugs? | |
+| Fix security vulnerabilities? | no |
+| Change the database schema? | **yes** |
+| Alter the API? | **yes** |
+| Require attention to configuration options? | no |
+| Fix problems installing or upgrading to a previous version? | **yes** |
+| Introduce features? | **yes** |
+| Fix bugs? | **yes** |
## Features
### Core CiviCRM
-- **crm- Missing Summary ([16886](https://github.com/civicrm/civicrm-core/pull/16886))**
+- **End of life plans for php 7.0 & deprecate php 7.1
+ ([dev/core#1528](https://lab.civicrm.org/dev/core/issues/1528):
+ [16753](https://github.com/civicrm/civicrm-core/pull/16753),
+ [599](https://github.com/civicrm/civicrm-drupal/pull/599),
+ [598](https://github.com/civicrm/civicrm-drupal/pull/598),
+ [111](https://github.com/civicrm/civicrm-backdrop/pull/111),
+ [16678](https://github.com/civicrm/civicrm-core/pull/16678),
+ [114](https://github.com/civicrm/civicrm-backdrop/pull/114),
+ [187](https://github.com/civicrm/civicrm-wordpress/pull/187) and
+ [184](https://github.com/civicrm/civicrm-wordpress/pull/184))**
-- **CRM-1367 Missing Summary ([16870](https://github.com/civicrm/civicrm-core/pull/16870))**
+ CiviCRM now requires PHP 7.1 at a minimum and recommends PHP 7.3.
-- **CRM-20553 Missing Summary ([14667](https://github.com/civicrm/civicrm-core/pull/14667))**
+ In the process of making this change, the minimum PHP version is now stored in
+ a single place within the core codebase. CMS-specific files have this value,
+ too, but tests enforce that it be the same as the single core value.
-## Bugs resolved
+- **Replace jcalendar instances with datepicker (Continued
+ Work [dev/core#561](https://lab.civicrm.org/dev/core/issues/561):
+ [15709](https://github.com/civicrm/civicrm-core/pull/15709) and
+ [16863](https://github.com/civicrm/civicrm-core/pull/16863))**
-### Core CiviCRM
+ These changes continue work to move to datepicker from jcalendar by converting
+ report instances from using the legacy jcalendar to using datepicker for date
+ fields and deprecating the `addDateRange` function used by jcalendar.
-- **Revert #16947 from 5.25RC ([17108](https://github.com/civicrm/civicrm-core/pull/17108))**
+- **APIv4 - Add Dashboard & DashboardContact entities
+ ([16867](https://github.com/civicrm/civicrm-core/pull/16867))**
-- **Add release-notes/5.24.4.md ([17097](https://github.com/civicrm/civicrm-core/pull/17097))**
+ Adds APIv4 support for Dashboard & DashboardContact and does some cleanup in
+ the BAO and API layers for improved consistency.
-- **Generalise typo3/phar-stream-wrapper so CiviCRM can be installed on d⦠([17085](https://github.com/civicrm/civicrm-core/pull/17085))**
+- **Add new language, `nl_BE`
+ ([17014](https://github.com/civicrm/civicrm-core/pull/17014))**
-- **Fix unsubscribe regression ([17081](https://github.com/civicrm/civicrm-core/pull/17081))**
+ Adds a new translation option for "Dutch (Belgium)".
-- **Add release-notes/5.24.2 ([17041](https://github.com/civicrm/civicrm-core/pull/17041))**
+- **Add hook to alter display value or Custom field value
+ ([16921](https://github.com/civicrm/civicrm-core/pull/16921))**
-- **Revert "temp workaround for dev/core#1675" ([17033](https://github.com/civicrm/civicrm-core/pull/17033))**
+ The new hook
+ [`hook_civicrm_alterCustomFieldDisplayValue()`](https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterCustomFieldDisplayValue/)
+ allows modification of the displayed value for a custom field value.
-- **CRM_Core_I18n - Provide a better label for new/unknown locales ([17021](https://github.com/civicrm/civicrm-core/pull/17021))**
+- **APIv4 query improvements (Work towards
+ [dev/report#31](https://lab.civicrm.org/dev/report/issues/31):
+ [16917](https://github.com/civicrm/civicrm-core/pull/16917) and
+ [16947](https://github.com/civicrm/civicrm-core/pull/16947))**
-- **Fixed fatal error for class not found when managed hook is invoked du⦠([17004](https://github.com/civicrm/civicrm-core/pull/17004))**
+ This change builds out the APIv4 framework to support `GROUP BY` and different
+ types of expressions in clauses that previously only accepted the names of
+ fields. These expressions can now include numbers, `NULL`, strings, and
+ whitelisted SQL functions. The framework can in theory handle most SQL
+ functions, but this first PR adds support for the aggregate functions `AVG`,
+ `COUNT`, `MAX`, `MIN`, and `SUM`.
-- **add nl_BE language ([17014](https://github.com/civicrm/civicrm-core/pull/17014))**
+- **install/index.php - Fix leak which breaks compatibility with current Backdrop
+ ([#17249](https://github.com/civicrm/civicrm-core/pull/17249))**
-- **Add release-notes/5.24.1 ([16978](https://github.com/civicrm/civicrm-core/pull/16978))**
+### CiviContribute
-- **dev/financial#84 - Fix upgrade failure. Thin-out activation logic for `sequentialcreditnotes`. ([16971](https://github.com/civicrm/civicrm-core/pull/16971))**
+- **Partial Refunds (Work towards
+ [dev/financial#87](https://lab.civicrm.org/dev/financial/issues/87):
+ [16480](https://github.com/civicrm/civicrm-core/pull/16480))**
-- **core#1688 - false positive on missing custom field check ([16961](https://github.com/civicrm/civicrm-core/pull/16961))**
+ The "Add Payment" form is altered to permit payments to be added even if a
+ contribution is fully paid.
-- **dev/core#1528 - Consolidate to single constant for minimum PHP version ([16753](https://github.com/civicrm/civicrm-core/pull/16753))**
+- **Add privacy fields to Contribution Detail report
+ ([16674](https://github.com/civicrm/civicrm-core/pull/16674))**
-- **[REF] move buildQuickForm function to the trait ([16948](https://github.com/civicrm/civicrm-core/pull/16948))**
+ Columns for the following fields are added to the contribution detail report:
+ "Do Not Phone", "Do Not Mail", "Do Not SMS", "Do Not Trade".
-- **Revert "APIv4 - Fix contribution create" ([16951](https://github.com/civicrm/civicrm-core/pull/16951))**
+ - **Add "pledge id" as column and filter in Contribution Detail report.
+ ([16868](https://github.com/civicrm/civicrm-core/pull/16868))**
-- **Remove deprecated cleaning of money in the BAO layer ([16950](https://github.com/civicrm/civicrm-core/pull/16950))**
+ This change improves the Contribution Detail Report by adding "pledge id" as
+ a filter and column.
-- **APIv4 - Support GROUP BY and aggregate functions ([16947](https://github.com/civicrm/civicrm-core/pull/16947))**
+### CiviEvent
-- **dev/core#1682 - Invalid currency on sending offline membership receipt. ([16943](https://github.com/civicrm/civicrm-core/pull/16943))**
+- **Remove additional display of buttons for events
+ ([16550](https://github.com/civicrm/civicrm-core/pull/16550))**
-- **dev/core#1674: fix rebuilding of container on every request ([16919](https://github.com/civicrm/civicrm-core/pull/16919))**
+ When viewing an event registration, this removes the Record Payment button
+ from the Fees section. Payments can still be recorded from the payments
+ section.
-- **[REF] Move properties to Trait ([16940](https://github.com/civicrm/civicrm-core/pull/16940))**
+### WordPress Integration
-- **Follow up PR for #16845 - Fix form error when variable is NULL ([16941](https://github.com/civicrm/civicrm-core/pull/16941))**
+- **Merge REST API wrapper code
+ ([160](https://github.com/civicrm/civicrm-wordpress/pull/160))**
-- **fixes dev/core#1683 set profile frontend title ([16945](https://github.com/civicrm/civicrm-core/pull/16945))**
+ This merges the CiviCRM WP REST API Wrapper plugin's code into the core
+ WordPress integration. The result is that there are now native WordPress REST
+ endpoints for the REST API, email tracking, and other endpoints that had been
+ direct links to PHP files in the `extern` folder of the CiviCRM plugin.
-- **5.24 ([16946](https://github.com/civicrm/civicrm-core/pull/16946))**
+- **Add shortcodes for Personal Campaign Pages
+ ([185](https://github.com/civicrm/civicrm-wordpress/pull/185) and
+ [16695](https://github.com/civicrm/civicrm-core/pull/16695))**
-- **[REF] Start transitioning EmailCommon class to a trait ([16935](https://github.com/civicrm/civicrm-core/pull/16935))**
+ Personal Campaign Pages are now available as a shortcode.
-- **[NFC/TEST] Resurrect unfinished test for getRelatedCases() ([16885](https://github.com/civicrm/civicrm-core/pull/16885))**
+## Bugs resolved
-- **Add hook to alter display value or Custom field value ([16921](https://github.com/civicrm/civicrm-core/pull/16921))**
+### Core CiviCRM
-- **5.24 ([16938](https://github.com/civicrm/civicrm-core/pull/16938))**
+- **Activity Detail report gives syntax error with force=1 if include case
+ activities is on
+ ([dev/core#1710](https://lab.civicrm.org/dev/core/issues/1710):
+ [17128](https://github.com/civicrm/civicrm-core/pull/17128))**
-- **[REF] Remove fatal, fix some code comments ([16928](https://github.com/civicrm/civicrm-core/pull/16928))**
+ The case activity table wasn't properly loaded when the Activity Detail report
+ including case activities would go straight to displaying results.
-- **[REF] extract code to getEmails ([16929](https://github.com/civicrm/civicrm-core/pull/16929))**
+- **Search Builder - Activity Type search not working.
+ ([dev/core#1714](https://lab.civicrm.org/dev/core/issues/1714):
+ [17215](https://github.com/civicrm/civicrm-core/pull/17215))**
-- **[REF] Minor simplification - do not use variable variables ([16927](https://github.com/civicrm/civicrm-core/pull/16927))**
+ In Search Builder, searching by activity type would return no results,
+ affecting not only direct searches but also smart groups that built with
+ Search Builder. This resolves the regression, which first appeared in 5.24.3.
-- **Add "pledge id" as column and filter in Contribution Detail report. ([16868](https://github.com/civicrm/civicrm-core/pull/16868))**
+- **Deleting entities leaves obsolete EntityTag records
+ ([dev/core#667](https://lab.civicrm.org/dev/core/issues/667):
+ [16832](https://github.com/civicrm/civicrm-core/pull/16832))**
-- **5.24 to master ([16931](https://github.com/civicrm/civicrm-core/pull/16931))**
+ Fixes a bug where deleting a contact does not delete tags associated with the
+ contact.
-- **[Test] Remove skip that seems no longer required ([16912](https://github.com/civicrm/civicrm-core/pull/16912))**
+- **Profile Public Title (frontend_title column) is not used in profile
+ create/edit mode
+ ([dev/core#1683](https://lab.civicrm.org/dev/core/issues/1683):
+ [16945](https://github.com/civicrm/civicrm-core/pull/16945))**
-- **Added pseudoconstant for acl_id ([16925](https://github.com/civicrm/civicrm-core/pull/16925))**
+ The Public Title setting that was recently added for profiles would only
+ replace the profile name on contribution and event forms. When the profile
+ was used in a standalone context, the name would always appear.
-- **dev/core#1676 - E_NOTICE because of missing brackets for order of operations ([16924](https://github.com/civicrm/civicrm-core/pull/16924))**
+- **Auto-complete search results not consistent with other searches
+ ([dev/core#787](https://lab.civicrm.org/dev/core/issues/787):
+ [13809](https://github.com/civicrm/civicrm-core/pull/13809))**
-- **Remove deprecated function ([16907](https://github.com/civicrm/civicrm-core/pull/16907))**
+- **Need to Increase Data Size for `form_values` column on
+ civicrm_report_instance table
+ ([dev/core#1569](https://lab.civicrm.org/dev/core/issues/1569):
+ [16836](https://github.com/civicrm/civicrm-core/pull/16836))**
-- **dev/core#1366 - case audit printReport parameter is no longer used ([16670](https://github.com/civicrm/civicrm-core/pull/16670))**
+ This hanges the data type for the `form_values` column on the
+ `civicrm_report_instance` from TEXT to LONGTEXT.
-- **Make api4 select query object more sane ([16889](https://github.com/civicrm/civicrm-core/pull/16889))**
+- **PHP warning on Add relationship form
+ ([dev/core#1663](https://lab.civicrm.org/dev/core/issues/1663):
+ [16845](https://github.com/civicrm/civicrm-core/pull/16845) and
+ [16941](https://github.com/civicrm/civicrm-core/pull/16941))**
-- **[NFC] APIv4 - Add test coverage for expected fields from join ([16920](https://github.com/civicrm/civicrm-core/pull/16920))**
+- **Removing all the dashlets from the dashboard leads to E_NOTICE
+ ([dev/core#1668](https://lab.civicrm.org/dev/core/issues/1668):
+ [16883](https://github.com/civicrm/civicrm-core/pull/16883))**
-- **[NFC] Add in unit test to ensure that APIv4 Doesn't accept an invalid⦠([16893](https://github.com/civicrm/civicrm-core/pull/16893))**
+- **Regression: Api4 causes container being rebuild on every request
+ ([dev/core#1674](https://lab.civicrm.org/dev/core/issues/1674):
+ [16919](https://github.com/civicrm/civicrm-core/pull/16919))**
-- **APIv4 - Only adjust domain_id if required ([16917](https://github.com/civicrm/civicrm-core/pull/16917))**
+- **E_NOTICE when using the New Individual popup/profile
+ ([dev/core#1676](https://lab.civicrm.org/dev/core/issues/1676):
+ [16924](https://github.com/civicrm/civicrm-core/pull/16924))**
-- **[REF] Extract code used to render a pseudoconstant when a table is defined. ([16902](https://github.com/civicrm/civicrm-core/pull/16902))**
+- **[regression] CiviCRM reports that smart groups won't work due to deleted
+ custom fields that aren't deleted
+ ([dev/core#1688](https://lab.civicrm.org/dev/core/issues/1688):
+ [16961](https://github.com/civicrm/civicrm-core/pull/16961))**
-- **Remove unused code ([16914](https://github.com/civicrm/civicrm-core/pull/16914))**
+ A system check would mistakenly report that a smart group was based upon a
+ deleted custom field if it was based upon a checkbox or multi-select custom
+ field.
-- **[REF] Move form specific handling back to the relevant form. ([16913](https://github.com/civicrm/civicrm-core/pull/16913))**
+- **Fix checking permissions in api3 profile get
+ ([16848](https://github.com/civicrm/civicrm-core/pull/16848))**
-- **Remove assigns for atypefile ([16895](https://github.com/civicrm/civicrm-core/pull/16895))**
+ This resolves a bug where the API would reverse the value of the option to use
+ a current user's permissions when retrieving the list of fields in a profile.
-- **Deprecate use of in OptionGroup::add() function ([16910](https://github.com/civicrm/civicrm-core/pull/16910))**
+- **APIv4 - convert Result object to array when running through json_encode
+ ([16828](https://github.com/civicrm/civicrm-core/pull/16828))**
-- **[REF] APIv4 - Preserve order when expanding select wildcards ([16909](https://github.com/civicrm/civicrm-core/pull/16909))**
+- **Api4 AJAX endpoint: change required permission to access AJAX API.
+ ([16705](https://github.com/civicrm/civicrm-core/pull/16705) and
+ [17241](https://github.com/civicrm/civicrm-core/pull/17241))**
-- **dev/core#561 Add in deprecation notice on addDateRange funtion ([16863](https://github.com/civicrm/civicrm-core/pull/16863))**
+ The APIv4 AJAX endpoint is now open to users with either the Access CiviCRM or
+ the Access AJAX API permissions, matching the APIv3 behavior.
-- **dev/core#1663 - Fix warning on relationship form ([16845](https://github.com/civicrm/civicrm-core/pull/16845))**
+- **Improvements to APIv4 select query
+ ([16889](https://github.com/civicrm/civicrm-core/pull/16889) and
+ [16900](https://github.com/civicrm/civicrm-core/pull/16900))**
-- **[NFC] Use strict comparison where possible ([16896](https://github.com/civicrm/civicrm-core/pull/16896))**
+- **APIv4 - Don't advertise implicit multi-joins in Explorer
+ ([17205](https://github.com/civicrm/civicrm-core/pull/17205))**
-- **Improve APIv4 selectUtils to handle join paths in fieldnames. ([16904](https://github.com/civicrm/civicrm-core/pull/16904))**
+ Implicit one-to-many joins in APIv4 have been problematic and may get removed.
+ As a soft deprecation, these are no longer displayed in the APIv4 explorer.
-- **[NFC] Code formatting ([16906](https://github.com/civicrm/civicrm-core/pull/16906))**
+- **CRM_Core_I18n - Provide a better label for new/unknown locales
+ ([17021](https://github.com/civicrm/civicrm-core/pull/17021))**
-- **[NFC] minor form cleanup. ([16905](https://github.com/civicrm/civicrm-core/pull/16905))**
+ If CiviCRM finds a locale in the localization files but doesn't know what it
+ is, it will now display the locale code instead of just a blank option.
-- **APIv4 - bugfix in select query ([16900](https://github.com/civicrm/civicrm-core/pull/16900))**
+- **Fixed fatal error for class not found when managed hook is invoked during
+ upgrade ([17004](https://github.com/civicrm/civicrm-core/pull/17004))**
-- **[REF] Remove & from before variable ([16897](https://github.com/civicrm/civicrm-core/pull/16897))**
+- **Log error message instead of throwing exception
+ ([16880](https://github.com/civicrm/civicrm-core/pull/16880))**
-- **log error message instead of throwing exception ([16880](https://github.com/civicrm/civicrm-core/pull/16880))**
+- **Remove instances of fatal
+ ([16759](https://github.com/civicrm/civicrm-core/pull/16759))**
-- **5.24 ([16898](https://github.com/civicrm/civicrm-core/pull/16898))**
+ This throws exceptions rather than dying when encountering problems creating
+ contacts.
-- **Add some deprecation notices, stop calling PrevNext::cleanupCache ([16697](https://github.com/civicrm/civicrm-core/pull/16697))**
+- **Fix bug where a % in a serialized array can lead to the data being broken
+ ([16694](https://github.com/civicrm/civicrm-core/pull/16694))**
-- **Fixed fatal error for Event Participants custom search if price set f⦠([16894](https://github.com/civicrm/civicrm-core/pull/16894))**
+- **Fix batch contact/activity update with radio options
+ ([16855](https://github.com/civicrm/civicrm-core/pull/16855))**
-- **APIv3 - Use new DAO::deleteRecord method ([16869](https://github.com/civicrm/civicrm-core/pull/16869))**
+ This fixes a failure to copy the value down a column if the field is radio
+ buttons and the value in the first row contains a space.
-- **APIv4 - Add Dashboard & DashboardContact entities ([16867](https://github.com/civicrm/civicrm-core/pull/16867))**
+- **Fix CustomDataView.tpl plain empty memo field.
+ ([16839](https://github.com/civicrm/civicrm-core/pull/16839))**
-- **5.24 ([16892](https://github.com/civicrm/civicrm-core/pull/16892))**
+ Ensure note custom fields display on their own lines
-- **[REF] Replace \CRM_Utils_Array::value with ?? ([16872](https://github.com/civicrm/civicrm-core/pull/16872))**
+- **Fix setting outBound_option readonly in UI
+ ([16774](https://github.com/civicrm/civicrm-core/pull/16774))**
-- **[REF] Civi/Api4 - Refactor out 'use CRM_Utils_Array' ([16873](https://github.com/civicrm/civicrm-core/pull/16873))**
+ If the outbound mailer option is set via the settings file, the settings form
+ will now disable the field.
-- **[REF] BAO_Contact - Remove CRM_Utils_Array::value and other unnecessary code ([16874](https://github.com/civicrm/civicrm-core/pull/16874))**
+- **Use dbAlias to generate where clause for date field in activity report
+ ([16689](https://github.com/civicrm/civicrm-core/pull/16689))**
-- **5.24 ([16884](https://github.com/civicrm/civicrm-core/pull/16884))**
+ This resolves potentially ambiguous queries in the Activity Summary and Detail
+ reports if the activity table is joined again in the report.
-- **[REF] APIv4 - Restructure the way get query objects are constucted ([16878](https://github.com/civicrm/civicrm-core/pull/16878))**
+- **[REF] Use composer patches to apply CiviCRM Customisations for CRM-1367 and
+ CRM-5946 ([16870](https://github.com/civicrm/civicrm-core/pull/16870))**
-- **dev/core#1668 - Avoid E_NOTICE when removing last dashlet ([16883](https://github.com/civicrm/civicrm-core/pull/16883))**
+ Migrates the patching of pear_mail from a script file to using composer
+ patches to ensure CiviCRM customisations for CRM-1367 and CRM-5946 are applied
+ consistently.
-- **Alternate to #16650 - On Case Audit/Print Report richtext details field is getting escaped when system is non-english ([16659](https://github.com/civicrm/civicrm-core/pull/16659))**
+### CiviCase
-- **Fix use col "Soft Credit Amount Stats" and any filter of contribution⦠([16591](https://github.com/civicrm/civicrm-core/pull/16591))**
+- **Various errors recorded in log message on Manage Case screen -> relationship
+ tab. ([dev/core#1664](https://lab.civicrm.org/dev/core/issues/1664):
+ [16846](https://github.com/civicrm/civicrm-core/pull/16846))**
-- **dev/core#1331 Add missing parameter to translation string ([16881](https://github.com/civicrm/civicrm-core/pull/16881))**
+ Fixes log messages generated when opening the relationship tab on the Manage
+ Case form.
-- **[REF] Cleanup is_array(CRM_Utils_Array::value()) pattern ([16875](https://github.com/civicrm/civicrm-core/pull/16875))**
+- **"Merge Case" modal not showing relevant cases
+ ([dev/core#1646](https://lab.civicrm.org/dev/core/issues/1646):
+ [16798](https://github.com/civicrm/civicrm-core/pull/16798))**
-- **dev/core#667 Fix bug where entity_tags are not deleted by 'soft FK' ([16832](https://github.com/civicrm/civicrm-core/pull/16832))**
+ The pop-up to merge cases would only show 25 other cases. It now shows all
+ cases for a client.
-- **dev/core#1652 - Check for change case type activity on case activity form doesn't work ([16785](https://github.com/civicrm/civicrm-core/pull/16785))**
+- **Adding a timeline to a case doesn't get the last activity in the timeline
+ right ([dev/core#1675](https://lab.civicrm.org/dev/core/issues/1675) and
+ [dev/core#1695](https://lab.civicrm.org/dev/core/issues/1695):
+ [289](https://github.com/civicrm/civicrm-packages/pull/289))**
-- **Add privacy fields to ContributionDetail report ([16674](https://github.com/civicrm/civicrm-core/pull/16674))**
+ Ensures case custom fields are saved when submitted via Drupal webform.
+ Additionally ensures that the last activity in the case timeline is set
+ correctly.
-- **Follow up on fix on updating memberships when a contact is deceased ([16787](https://github.com/civicrm/civicrm-core/pull/16787))**
+- **Check for "Change Case Type" in case activity form doesn't do anything
+ ([dev/core#1652](https://lab.civicrm.org/dev/core/issues/1652):
+ [16785](https://github.com/civicrm/civicrm-core/pull/16785))**
-- **5.24 ([16879](https://github.com/civicrm/civicrm-core/pull/16879))**
+- **When auditing cases on non-English deployments, richtext details
+ are incorrectly escaped
+ ([16659](https://github.com/civicrm/civicrm-core/pull/16659))**
-- **Fix display of payment processor title in cancelSubscription form ([16857](https://github.com/civicrm/civicrm-core/pull/16857))**
+- **Respect 'Do not notify activity type' setting
+ ([16800](https://github.com/civicrm/civicrm-core/pull/16800))**
-- **CRM/Contribute - Cleanup boolean expressions ([16853](https://github.com/civicrm/civicrm-core/pull/16853))**
+ The setting to not notify assignees for certain activity types was not
+ respected when submitting an activity from a case.
-- **dev/financial#87 make it possible to add a payment to a fully paid contribution ([16480](https://github.com/civicrm/civicrm-core/pull/16480))**
+### CiviContribute
-- **dev/1640 New feature - adds a checkbox to the update contribution status form to determine if a receipt is sent ([16742](https://github.com/civicrm/civicrm-core/pull/16742))**
+- **Changes to "CiviContribute Component Settings" not saved
+ ([dev/core#1724](https://lab.civicrm.org/dev/core/issues/1724):
+ [17188](https://github.com/civicrm/civicrm-core/pull/17188))**
-- **Civi/Test - Refactor out CRM_Utils_Array::value ([16871](https://github.com/civicrm/civicrm-core/pull/16871))**
+ The way that CiviContribute component settings were stored was updated for
+ 5.23, but the transition during the upgrade was problematic. This replaces
+ the transition code, resolving issues for sites upgrading directly from 5.22.x
+ or earlier. Sites on 5.23.x or 5.24.x should review their settings, however.
-- **dev/core#1331 Don't freeze fields for auto-renew memberships ([16609](https://github.com/civicrm/civicrm-core/pull/16609))**
+- **Invoice action not shown when invoicing enabled
+ ([17164](https://github.com/civicrm/civicrm-core/pull/17164))**
-- **[TEST] Add test for to time processing ([16861](https://github.com/civicrm/civicrm-core/pull/16861))**
+ The "Invoices - print or email" action was not available for contribution
+ search results even when invoicing was enabled.
-- **fix typo ([16865](https://github.com/civicrm/civicrm-core/pull/16865))**
+- **Cumulative contributions not being calculated with the correct criteria
+ ([dev/core#1740](https://lab.civicrm.org/dev/core/issues/1740):
+ [17237](https://github.com/civicrm/civicrm-core/pull/17237))**
+
+ The cumulative contributions display from a contribution page would needlessly
+ filter contributions by date, with the end date being midnight on the current
+ date. That would exclude contributions received on the current day.
+
+- **Updating misleading labels on buttons to confirmation pages
+ ([dev/core#1613](https://lab.civicrm.org/dev/core/issues/1613):
+ [16651](https://github.com/civicrm/civicrm-core/pull/16651))**
-- **API tests - remove unnecessary check for v4 ([16866](https://github.com/civicrm/civicrm-core/pull/16866))**
+ Some donors and event registrants interpreted the button text "Confirm
+ Contribution" (on contribution pages) and "Continue" (on event registration
+ pages) to mean that this would complete the contribution or registration. In
+ fact, these would only appear when a confirmation page is used.
-- **[REF] Remove redundant call to build permissions ([16862](https://github.com/civicrm/civicrm-core/pull/16862))**
+ The button text now appears as "Review your contribution" and "Review your
+ registration", respectively.
-- **dev/core#561 Convert Reports from jcalender to datepicker format ([15709](https://github.com/civicrm/civicrm-core/pull/15709))**
+- **Fix upgrade failure. Thin-out activation logic for `sequentialcreditnotes`.
+ ([16971](https://github.com/civicrm/civicrm-core/pull/16971) following
+ [dev/financial#84](https://lab.civicrm.org/dev/financial/issues/84))**
-- **dev/core#1664 - Fix errors recorded in log message on Manage Case scr⦠([16846](https://github.com/civicrm/civicrm-core/pull/16846))**
+ This change fixes an issue for some builds when upgrading caused by the
+ activation of the `sequentialcreditnotes` extension to replace core code that
+ generates sequential credit note identifiers.
-- **Cleanup reverse boolean expressions ([16850](https://github.com/civicrm/civicrm-core/pull/16850))**
+- **Fix Bug where Payment Balance is sometimes miscalculated
+ ([16546](https://github.com/civicrm/civicrm-core/pull/16546))**
-- **CRM/Core - Cleanup boolean expressions ([16852](https://github.com/civicrm/civicrm-core/pull/16852))**
+ Fixes a bug where Add Refund is displayed instead of Add Payment on partially
+ paid event contributions.
-- **5.24 to master ([16859](https://github.com/civicrm/civicrm-core/pull/16859))**
+- **Stop overwriting contact name with PayPal name
+ ([CRM-20553](https://issues.civicrm.org/jira/browse/CRM-20553): [14667](https://github.com/civicrm/civicrm-core/pull/14667))**
-- **CRM/Utils - Cleanup boolean expressions ([16851](https://github.com/civicrm/civicrm-core/pull/16851))**
+ When a user creates a donation via PayPal, their CiviCRM contact name should
+ not be overwritten to be their PayPal account name.
-- **CRM - Cleanup boolean expressions ([16854](https://github.com/civicrm/civicrm-core/pull/16854))**
+- **Fix use of "Soft Credit Amount Stats" and any filter of contributionâ¦
+ ([16591](https://github.com/civicrm/civicrm-core/pull/16591))**
-- **dev/core#1569: Increase Data Size for `form_values` column on civicrm_report_instance table ([16836](https://github.com/civicrm/civicrm-core/pull/16836))**
+ Ensures that one can use "Soft Credit Amount Stats" with all filters.
-- **Add DAO::writeRecord and DAO::deleteRecord methods ([16856](https://github.com/civicrm/civicrm-core/pull/16856))**
+- **CRM_Core_Payment_PayPalProIPN should not call getPayPalPaymentProcessorID()
+ if processor_id is clearly provided in URL
+ ([dev/core#1579](https://lab.civicrm.org/dev/core/issues/1579):
+ [16479](https://github.com/civicrm/civicrm-core/pull/16479))**
-- **Fix checking permissions in api3 profile get ([16848](https://github.com/civicrm/civicrm-core/pull/16848))**
+- **Update pending contribution status action also send email without warning
+ ([dev/core#1640](https://lab.civicrm.org/dev/core/issues/1640):
+ [16742](https://github.com/civicrm/civicrm-core/pull/16742))**]
-- **Generate text for cancelSubscription form in payment class ([16715](https://github.com/civicrm/civicrm-core/pull/16715))**
+ When bulk updating the status of contributions, there is now a checkbox to
+ choose whether the contacts should be emailed. Previously, emails would be
+ generated without warning.
-- **Fix batch contact/activity update with radio options ([16855](https://github.com/civicrm/civicrm-core/pull/16855))**
+- **Fix display of payment processor title in cancelSubscription form
+ ([16857](https://github.com/civicrm/civicrm-core/pull/16857))**
-- **dev/core#1630 Partial fix on renew membership missing ([16762](https://github.com/civicrm/civicrm-core/pull/16762))**
+- **Make the checkbox, "Billing address is the same", respond to the change event
+ ([16496](https://github.com/civicrm/civicrm-core/pull/16496))**
-- **UFMatch - deprecate unused functions ([16849](https://github.com/civicrm/civicrm-core/pull/16849))**
+ This makes the "billing address is the same" checkbox trigger its changes no
+ matter how the box is checked, not just by clicking it.
-- **Remove old stuff ([16835](https://github.com/civicrm/civicrm-core/pull/16835))**
+### CiviEvent
-- **Fix CustomDataView.tpl plain empty memo field. ([16839](https://github.com/civicrm/civicrm-core/pull/16839))**
+- **PayPal Express Checkout fails on events
+ ([dev/financial#119](https://lab.civicrm.org/dev/financial/issues/119):
+ [16692](https://github.com/civicrm/civicrm-core/pull/16692))**
-- **CRM/Contact - Cleanup boolean expressions ([16844](https://github.com/civicrm/civicrm-core/pull/16844))**
+- **Fixed fatal error for Event Participants custom search if price set field
+ option is disabled after a registrant has already selected it
+ ([16894](https://github.com/civicrm/civicrm-core/pull/16894))**
-- **5.24 ([16843](https://github.com/civicrm/civicrm-core/pull/16843))**
+### CiviMember
-- **Deprecate unused/unneeded pseudoconstant functions ([16771](https://github.com/civicrm/civicrm-core/pull/16771))**
+- **Don't freeze fields for auto-renew memberships
+ ([dev/core#1331](https://lab.civicrm.org/dev/core/issues/1331):
+ [16609](https://github.com/civicrm/civicrm-core/pull/16609) and
+ [16881](https://github.com/civicrm/civicrm-core/pull/16881))**
-- **dev/report#28 - Join date field has no label on constituent detail report ([16829](https://github.com/civicrm/civicrm-core/pull/16829))**
+ Previously, many membership fields were frozen for administrators when the
+ membership was set to auto-renew with a recurring contribution.
-- **5.24 ([16831](https://github.com/civicrm/civicrm-core/pull/16831))**
+- **Deceased Contact via Inline doesn't update the Membership's status to
+ Deceased ([dev/core#1599](https://lab.civicrm.org/dev/core/issues/1599):
+ [16724](https://github.com/civicrm/civicrm-core/pull/16724) and
+ [16787](https://github.com/civicrm/civicrm-core/pull/16787))**
-- **APIv4 - convert Result object to array when running through json_encode ([16828](https://github.com/civicrm/civicrm-core/pull/16828))**
+ When marking a contact as deceased, this simplifies the underlying process and
+ ensures that a message is displayed about memberships being updated to
+ Deceased status.
-- **Fix typos in xml/dao ([16827](https://github.com/civicrm/civicrm-core/pull/16827))**
+- **Invalid currency "$" on sending offline membership receipt.
+ ([dev/core#1682](https://lab.civicrm.org/dev/core/issues/1682):
+ [16943](https://github.com/civicrm/civicrm-core/pull/16943))**
-- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments ([16768](https://github.com/civicrm/civicrm-core/pull/16768))**
+ Fixes an error when sending a receipt for a membership created from an offline
+ membership form. The default currency symbol was being saved as the currency
+ itself.
-- **[REF] Replace coalesce pattern with coalesce operator ([16802](https://github.com/civicrm/civicrm-core/pull/16802))**
+- **Membership auto-renew is not optional if using price set
+ ([dev/core#1630](https://lab.civicrm.org/dev/core/issues/1630):
+ [16762](https://github.com/civicrm/civicrm-core/pull/16762))**
-- **[REF] Switch to using a non abandoned library for getting a mapping of mimetypes to extensions ([16436](https://github.com/civicrm/civicrm-core/pull/16436))**
+- **Membership join date checkbox on constituent detail report has lost its
+ label ([dev/report#28](https://lab.civicrm.org/dev/report/issues/28):
+ [16829](https://github.com/civicrm/civicrm-core/pull/16829))**
-- **Respect 'Donot notify activity type' setting ([16800](https://github.com/civicrm/civicrm-core/pull/16800))**
+### Drupal Integration
-- **[NFC] Use helper / api to delete contacts in tests ([16825](https://github.com/civicrm/civicrm-core/pull/16825))**
+- **Address no longer available as Relationship for Views in Drupal 7
+ ([dev/drupal#110](https://lab.civicrm.org/dev/drupal/issues/110):
+ [118](https://github.com/civicrm/civicrm-backdrop/pull/118) and
+ [600](https://github.com/civicrm/civicrm-drupal/pull/600))**
-- **Deprecate calling contactTrashRestore function ([16824](https://github.com/civicrm/civicrm-core/pull/16824))**
+- **Generalise typo3/phar-stream-wrapper so CiviCRM can be installed on D8.7
+ ([17085](https://github.com/civicrm/civicrm-core/pull/17085))**
-- **(NFC) Minor typo: receipients > recipients ([16810](https://github.com/civicrm/civicrm-core/pull/16810))**
+- **civicrm-setup and backward slashes in file paths on windows don't play nice
+ together ([dev/core#1643](https://lab.civicrm.org/dev/core/issues/1643):
+ [16886](https://github.com/civicrm/civicrm-core/pull/16886))**
-- **Remove deprecated parameter ([16813](https://github.com/civicrm/civicrm-core/pull/16813))**
+ Fixes installing CiviCRM on Drupal8 sites on windows using civicrm-setup / cv
+ core:install.
-- **[NFC] Minor code cleanup ([16823](https://github.com/civicrm/civicrm-core/pull/16823))**
+### WordPress Integration
-- **[REF] Simplify obtuse boolean expressions ([16822](https://github.com/civicrm/civicrm-core/pull/16822))**
+- **5.23 breaks WP admin menu links
+ ([dev/core#1637](https://lab.civicrm.org/dev/core/issues/1637):
+ [16713](https://github.com/civicrm/civicrm-core/pull/16713))**
-- **[NFC] Deprecate passing in silly data ([16818](https://github.com/civicrm/civicrm-core/pull/16818))**
+- **Set "cms.root" URL in addition to Path
+ ([188](https://github.com/civicrm/civicrm-wordpress/pull/188))**
-- **[NFC] Test cleanup ([16817](https://github.com/civicrm/civicrm-core/pull/16817))**
+ This resolves a "Cannot resolve path using 'cms.root.url'" exception thrown on
+ the "Settings - Resource URLs" screen incorrectly on a WordPress multisite
+ subsite.
-- **[REF] Fix PCP getPcpDashboardInfo to be tested & use sensible functions ([16790](https://github.com/civicrm/civicrm-core/pull/16790))**
+## Miscellany
+
+- **Add recurring contribution ID to doCancelRecurring
+ ([16741](https://github.com/civicrm/civicrm-core/pull/16741))**
-- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments ([16820](https://github.com/civicrm/civicrm-core/pull/16820))**
+- **Support PropertyBag in CRM_Utils_Array
+ ([16699](https://github.com/civicrm/civicrm-core/pull/16699) and
+ [16737](https://github.com/civicrm/civicrm-core/pull/16737))**
-- **[REF] cleanups on array operator ([16821](https://github.com/civicrm/civicrm-core/pull/16821))**
+- **Added pseudoconstant for acl_id
+ ([16925](https://github.com/civicrm/civicrm-core/pull/16925))**
-- **[REF] Simplify obtuse boolean expressions ([16819](https://github.com/civicrm/civicrm-core/pull/16819))**
+- **Added pseudoconstant for state province
+ ([16799](https://github.com/civicrm/civicrm-core/pull/16799))**
-- **[REF] Remove titleHeader var ([16816](https://github.com/civicrm/civicrm-core/pull/16816))**
+- **Added pseudoconstant for location type
+ ([16758](https://github.com/civicrm/civicrm-core/pull/16758))**
-- **Remove unused deprecated function ([16812](https://github.com/civicrm/civicrm-core/pull/16812))**
+- **Added pseudoconstant for priceset
+ ([16754](https://github.com/civicrm/civicrm-core/pull/16754))**
-- **Skip expensive smarty Processing when nothing to see here ([16731](https://github.com/civicrm/civicrm-core/pull/16731))**
+- **Added pseudoconstant for bounce type
+ ([16727](https://github.com/civicrm/civicrm-core/pull/16727))**
-- **Fix setting outBound_option readonly in UI ([16774](https://github.com/civicrm/civicrm-core/pull/16774))**
+- **Added pseudoconstant for civicrm_tag.parent_id
+ ([16703](https://github.com/civicrm/civicrm-core/pull/16703))**
-- **[REF] simplify references to civicrm_acl ([16671](https://github.com/civicrm/civicrm-core/pull/16671))**
+- **Event Cart cleanup
+ ([16691](https://github.com/civicrm/civicrm-core/pull/16691))**
-- **(NFC) Minor typo: contacts(s) -> contact(s) ([16804](https://github.com/civicrm/civicrm-core/pull/16804))**
+- **Update cancelSubscription form to use updated methodology
+ ([16501](https://github.com/civicrm/civicrm-core/pull/16501) and
+ [16715](https://github.com/civicrm/civicrm-core/pull/16715))**
-- **(NFC) Query.php / Minor typo: Genrated -> Generated ([16803](https://github.com/civicrm/civicrm-core/pull/16803))**
+- **Skip expensive smarty Processing when nothing to see here
+ ([16731](https://github.com/civicrm/civicrm-core/pull/16731))**
-- **Test for PR 13809 ([16474](https://github.com/civicrm/civicrm-core/pull/16474))**
+- **UFMatch - deprecate unused functions
+ ([16849](https://github.com/civicrm/civicrm-core/pull/16849))**
-- **(POC) Add `hook_civicrm_postCommit`, a less foot-gunny variant of `hook_civicrm_post` ([15338](https://github.com/civicrm/civicrm-core/pull/15338))**
+- **Shifted UpdateMemberhsip to BAO Layer
+ ([16690](https://github.com/civicrm/civicrm-core/pull/16690))**
-- **dev/core#1646 Merge Case Modal not showing relevant cases ([16798](https://github.com/civicrm/civicrm-core/pull/16798))**
+- **Add DAO::writeRecord and DAO::deleteRecord methods
+ ([16856](https://github.com/civicrm/civicrm-core/pull/16856))**
-- **Added pseudoconstant for state province ([16799](https://github.com/civicrm/civicrm-core/pull/16799))**
+- **Add some deprecation notices, stop calling PrevNext::cleanupCache
+ ([16697](https://github.com/civicrm/civicrm-core/pull/16697))**
-- **5.24 ([16801](https://github.com/civicrm/civicrm-core/pull/16801))**
+- **Remove assigns for atypefile
+ ([16895](https://github.com/civicrm/civicrm-core/pull/16895))**
-- **Make the 'billing address is the same' checkbox respond to the change event ([16496](https://github.com/civicrm/civicrm-core/pull/16496))**
+- **Deprecate use of in OptionGroup::add() function
+ ([16910](https://github.com/civicrm/civicrm-core/pull/16910))**
-- **(NFC) Minor string error : for for > for ([16773](https://github.com/civicrm/civicrm-core/pull/16773))**
+- **Improve APIv4 selectUtils to handle join paths in fieldnames.
+ ([16904](https://github.com/civicrm/civicrm-core/pull/16904))**
-- **dev/core#787 Auto-complete search results fixes ([13809](https://github.com/civicrm/civicrm-core/pull/13809))**
+- **Upgrade jQuery validation version to v1.19.1
+ ([16625](https://github.com/civicrm/civicrm-core/pull/16625))**
-- **dev/core#1579 CRM_Core_Payment_PayPalProIPN should not call getPayPalPaymentProcessorID() if processor_id is clearly provided in URL ([16479](https://github.com/civicrm/civicrm-core/pull/16479))**
+- **APIv3 - Use new DAO::deleteRecord method
+ ([16869](https://github.com/civicrm/civicrm-core/pull/16869))**
-- **[NFC] Test cleanup, remove duplicate test ([16755](https://github.com/civicrm/civicrm-core/pull/16755))**
+- **Improve conditional in api3 ChainSubscriber
+ ([16718](https://github.com/civicrm/civicrm-core/pull/16718))**
-- **Fix Bug where Payment Balance is sometimes miscalculated ([16546](https://github.com/civicrm/civicrm-core/pull/16546))**
+- **Mark unused function as deprecated
+ ([16688](https://github.com/civicrm/civicrm-core/pull/16688))**
-- **5.24 ([16797](https://github.com/civicrm/civicrm-core/pull/16797))**
+- **CRM/Contact - Cleanup boolean expressions
+ ([16844](https://github.com/civicrm/civicrm-core/pull/16844))**
-- **[REF] Cleanup api3 DashboardContact ([16792](https://github.com/civicrm/civicrm-core/pull/16792))**
+- **CRM/Contribute - Cleanup boolean expressions
+ ([16853](https://github.com/civicrm/civicrm-core/pull/16853))**
-- **[REF] Fixes a bug in Message Template create API where by user permissions checks were being done on system workflow messages ([16788](https://github.com/civicrm/civicrm-core/pull/16788))**
+- **Civi/Test - Refactor out CRM_Utils_Array::value
+ ([16871](https://github.com/civicrm/civicrm-core/pull/16871))**
-- **5.24 ([16794](https://github.com/civicrm/civicrm-core/pull/16794))**
+- **Cleanup reverse boolean expressions
+ ([16850](https://github.com/civicrm/civicrm-core/pull/16850))**
-- **[REF] Remove calls to fatal() ([16746](https://github.com/civicrm/civicrm-core/pull/16746))**
+- **CRM/Core - Cleanup boolean expressions
+ ([16852](https://github.com/civicrm/civicrm-core/pull/16852))**
-- **[REF] Cleanup uses of CRM_Utils_Array::value related to numbers ([16778](https://github.com/civicrm/civicrm-core/pull/16778))**
+- **CRM/Utils - Cleanup boolean expressions
+ ([16851](https://github.com/civicrm/civicrm-core/pull/16851))**
-- **5.24 ([16786](https://github.com/civicrm/civicrm-core/pull/16786))**
+- **CRM - Cleanup boolean expressions
+ ([16854](https://github.com/civicrm/civicrm-core/pull/16854))**
-- **dev/core#1599/Deceased Contact's Membership Marked to Deceased via Inline ([16724](https://github.com/civicrm/civicrm-core/pull/16724))**
+- **Fix another instance of silly use of CRM_Utils_Array::value
+ ([16712](https://github.com/civicrm/civicrm-core/pull/16712))**
-- **5.24 to master ([16783](https://github.com/civicrm/civicrm-core/pull/16783))**
+- **Fix passing a non-array to CRM_Utils_Array::value
+ ([16701](https://github.com/civicrm/civicrm-core/pull/16701))**
-- **5.24 ([16782](https://github.com/civicrm/civicrm-core/pull/16782))**
+- **Fix another instance of NULL being passed to CRM_Utils_Array::value
+ ([16711](https://github.com/civicrm/civicrm-core/pull/16711))**
-- **[REF] cleanup financial type form - remove complex inheritence ([16777](https://github.com/civicrm/civicrm-core/pull/16777))**
+- **Remove an instance of passing non-arraay to CRM_Utils_Array::value(
+ ([16706](https://github.com/civicrm/civicrm-core/pull/16706))**
-- **Add shortcodes for Personal Campaign Pages ([16695](https://github.com/civicrm/civicrm-core/pull/16695))**
+- **Remove calls & deprecate CRM_Core_BAO_PrevNextCache::setItem
+ ([16696](https://github.com/civicrm/civicrm-core/pull/16696))**
-- **5.24 ([16767](https://github.com/civicrm/civicrm-core/pull/16767))**
+- **(POC) Add `hook_civicrm_postCommit`, a less foot-gunny variant of
+ `hook_civicrm_post`
+ ([15338](https://github.com/civicrm/civicrm-core/pull/15338))**
-- **Remove instances of fatal ([16759](https://github.com/civicrm/civicrm-core/pull/16759))**
+- **Fix typos in xml/dao
+ ([16827](https://github.com/civicrm/civicrm-core/pull/16827))**
-- **[NFC] cleanup in test class ([16764](https://github.com/civicrm/civicrm-core/pull/16764))**
+- **Deprecate unused/unneeded pseudoconstant functions
+ ([16771](https://github.com/civicrm/civicrm-core/pull/16771))**
-- **[REF] Use ?? operator instead of CRM_Utils_Array::value() ([16710](https://github.com/civicrm/civicrm-core/pull/16710))**
+- **Deprecate calling contactTrashRestore function
+ ([16824](https://github.com/civicrm/civicrm-core/pull/16824))**
-- **add pseudoconstant for location type ([16758](https://github.com/civicrm/civicrm-core/pull/16758))**
+- **Remove old stuff
+ ([16835](https://github.com/civicrm/civicrm-core/pull/16835))**
-- **[REF] dev/core#1116 - Remove unused misnamed activityTypeName variable ([16730](https://github.com/civicrm/civicrm-core/pull/16730))**
+- **Remove deprecated cleaning of money in the BAO layer
+ ([16950](https://github.com/civicrm/civicrm-core/pull/16950))**
-- **Added pseudoconstant for priceset ([16754](https://github.com/civicrm/civicrm-core/pull/16754))**
+- **Remove unused deprecated function
+ ([16812](https://github.com/civicrm/civicrm-core/pull/16812))**
-- **Fix bug where a % in a serialized array can lead to the data being broken ([16694](https://github.com/civicrm/civicrm-core/pull/16694))**
+- **Remove deprecated function
+ ([16907](https://github.com/civicrm/civicrm-core/pull/16907))**
-- **Event Cart cleanup ([16691](https://github.com/civicrm/civicrm-core/pull/16691))**
+- **Remove unused code
+ ([16914](https://github.com/civicrm/civicrm-core/pull/16914))**
-- **5.24 ([16749](https://github.com/civicrm/civicrm-core/pull/16749))**
+- **Remove deprecated parameter
+ ([16813](https://github.com/civicrm/civicrm-core/pull/16813))**
-- **Add recurring contribution ID to doCancelRecurring ([16741](https://github.com/civicrm/civicrm-core/pull/16741))**
+- **fix typo ([16865](https://github.com/civicrm/civicrm-core/pull/16865))**
-- **Bump Minimum Install version to be 7.1 (Do not merge until 5.24 RC is cut) ([16678](https://github.com/civicrm/civicrm-core/pull/16678))**
+- **API tests - remove unnecessary check for v4
+ ([16866](https://github.com/civicrm/civicrm-core/pull/16866))**
-- **dev/core#1613/Updated Misleading labels ([16651](https://github.com/civicrm/civicrm-core/pull/16651))**
+- **[NFC] APIv4 - Add test coverage for expected fields from join
+ ([16920](https://github.com/civicrm/civicrm-core/pull/16920))**
-- **5.24 ([16744](https://github.com/civicrm/civicrm-core/pull/16744))**
+- **[NFC] Add in unit test to ensure that APIv4 Doesn't accept an invalidâ¦
+ ([16893](https://github.com/civicrm/civicrm-core/pull/16893))**
-- **REF Switch to getter on cancelSubscription form ([16740](https://github.com/civicrm/civicrm-core/pull/16740))**
+- **[NFC] Use strict comparison where possible
+ ([16896](https://github.com/civicrm/civicrm-core/pull/16896))**
-- **[REF] Minor code simplification ([16734](https://github.com/civicrm/civicrm-core/pull/16734))**
+- **[NFC] Code formatting
+ ([16906](https://github.com/civicrm/civicrm-core/pull/16906))**
-- **Update cancelSubscription form to use updated methodology ([16501](https://github.com/civicrm/civicrm-core/pull/16501))**
+- **[NFC] minor form cleanup.
+ ([16905](https://github.com/civicrm/civicrm-core/pull/16905))**
-- **[REF] Hopefully fix regularly failing conformance test ([16732](https://github.com/civicrm/civicrm-core/pull/16732))**
+- **(NFC) Minor typo: receipients > recipients
+ ([16810](https://github.com/civicrm/civicrm-core/pull/16810))**
-- **Improve conditional in api3 ChainSubscriber ([16718](https://github.com/civicrm/civicrm-core/pull/16718))**
+- **[NFC] Minor code cleanup
+ ([16823](https://github.com/civicrm/civicrm-core/pull/16823))**
-- **CRM_Utils_Array::values follow up from #16699 ([16737](https://github.com/civicrm/civicrm-core/pull/16737))**
+- **[NFC] Deprecate passing in silly data
+ ([16818](https://github.com/civicrm/civicrm-core/pull/16818))**
-- **Support PropertyBag in CRM_Utils_Array ([16699](https://github.com/civicrm/civicrm-core/pull/16699))**
+- **[NFC] Test cleanup
+ ([16817](https://github.com/civicrm/civicrm-core/pull/16817))**
-- **[REF] Use empty() instead of CRM_Utils_Array::value() in inline conditionals ([16729](https://github.com/civicrm/civicrm-core/pull/16729))**
+- **[NFC] Test cleanup, remove duplicate test
+ ([16755](https://github.com/civicrm/civicrm-core/pull/16755))**
-- **5.24 ([16728](https://github.com/civicrm/civicrm-core/pull/16728))**
+- **(NFC) Minor string error : for for > for
+ ([16773](https://github.com/civicrm/civicrm-core/pull/16773))**
-- **pseudoconstant for bounce type ([16727](https://github.com/civicrm/civicrm-core/pull/16727))**
+- **(NFC) Minor typo: contacts(s) -> contact(s)
+ ([16804](https://github.com/civicrm/civicrm-core/pull/16804))**
-- **[REF] Use ?? operator instead of CRM_Utils_Array::value() in return statements ([16719](https://github.com/civicrm/civicrm-core/pull/16719))**
+- **(NFC) Query.php / Minor typo: Genrated -> Generated
+ ([16803](https://github.com/civicrm/civicrm-core/pull/16803))**
-- **Fix another instance of NULL being passed to CRM_Utils_Array::value ([16711](https://github.com/civicrm/civicrm-core/pull/16711))**
+- **[NFC] Fix comments, use single quotes
+ ([16693](https://github.com/civicrm/civicrm-core/pull/16693))**
-- **5.24 ([16725](https://github.com/civicrm/civicrm-core/pull/16725))**
+- **[NFC] Mark unused function deprecated, fix some comments & formatting
+ ([16698](https://github.com/civicrm/civicrm-core/pull/16698))**
-- **Fix PayPal Express on events ([16692](https://github.com/civicrm/civicrm-core/pull/16692))**
+- **[NFC] cleanup in test class
+ ([16764](https://github.com/civicrm/civicrm-core/pull/16764))**
-- **dev/core#1637 regression fix on WP urls ([16713](https://github.com/civicrm/civicrm-core/pull/16713))**
+- **[NFC] Use helper / api to delete contacts in tests
+ ([16825](https://github.com/civicrm/civicrm-core/pull/16825))**
-- **Fix another instance of silly use of CRM_Utils_Array::value ([16712](https://github.com/civicrm/civicrm-core/pull/16712))**
+- **[NFC/TEST] Resurrect unfinished test for getRelatedCases()
+ ([16885](https://github.com/civicrm/civicrm-core/pull/16885))**
-- **[NFC] Fix comments, use single quotes ([16693](https://github.com/civicrm/civicrm-core/pull/16693))**
+- **[Test] Remove skip that seems no longer required
+ ([16912](https://github.com/civicrm/civicrm-core/pull/16912))**
-- **Added pseudoconstant for civicrm_tag.parent_id ([16703](https://github.com/civicrm/civicrm-core/pull/16703))**
+- **Test for PR 13809
+ ([16474](https://github.com/civicrm/civicrm-core/pull/16474))**
-- **5.24 ([16709](https://github.com/civicrm/civicrm-core/pull/16709))**
+- **[TEST] Add test for to time processing
+ ([16861](https://github.com/civicrm/civicrm-core/pull/16861))**
-- **Remove an instance of passing non-arraay to CRM_Utils_Array::value( ([16706](https://github.com/civicrm/civicrm-core/pull/16706))**
+- **[REF] Case Activities Report includes core activities *always*
+ ([dev/core#1366](https://lab.civicrm.org/dev/core/issues/1366):
+ [16670](https://github.com/civicrm/civicrm-core/pull/16670))**
-- **[REF] CRM_Utils_Array::value() -> empty() ([16704](https://github.com/civicrm/civicrm-core/pull/16704))**
+- **[REF] Cleanup api3 DashboardContact
+ ([16792](https://github.com/civicrm/civicrm-core/pull/16792))**
-- **Remove calls & deprecate CRM_Core_BAO_PrevNextCache::setItem ([16696](https://github.com/civicrm/civicrm-core/pull/16696))**
+- **[REF] Fixes a bug in Message Template create API where by user permissions
+ checks were being done on system workflow messages
+ ([16788](https://github.com/civicrm/civicrm-core/pull/16788))**
-- **Api4 AJAX endpoint: change required permission to access AJAX API. ([16705](https://github.com/civicrm/civicrm-core/pull/16705))**
+- **[REF] Remove calls to fatal()
+ ([16746](https://github.com/civicrm/civicrm-core/pull/16746))**
-- **Fix passing a non-array to CRM_Utils_Array::value ([16701](https://github.com/civicrm/civicrm-core/pull/16701))**
+- **[REF] Cleanup uses of CRM_Utils_Array::value related to numbers
+ ([16778](https://github.com/civicrm/civicrm-core/pull/16778))**
-- **Shifted UpdateMemberhsip to BAO Layer ([16690](https://github.com/civicrm/civicrm-core/pull/16690))**
+- **[REF] cleanup financial type form - remove complex inheritence
+ ([16777](https://github.com/civicrm/civicrm-core/pull/16777))**
-- **Use dbAlias to generate where clause for date field in activity report ([16689](https://github.com/civicrm/civicrm-core/pull/16689))**
+- **[REF] Use ?? operator instead of CRM_Utils_Array::value()
+ ([16710](https://github.com/civicrm/civicrm-core/pull/16710))**
-- **[NFC] Mark unused function deprecated, fix some comments & formatting ([16698](https://github.com/civicrm/civicrm-core/pull/16698))**
+- **[REF] dev/core#1116 - Remove unused misnamed activityTypeName variable
+ ([16730](https://github.com/civicrm/civicrm-core/pull/16730))**
-- **Remove additional display of buttons for events ([16550](https://github.com/civicrm/civicrm-core/pull/16550))**
+- **REF Switch to getter on cancelSubscription form
+ ([16740](https://github.com/civicrm/civicrm-core/pull/16740))**
-- **Upgrade jQuery validation version to v1.19.1 ([16625](https://github.com/civicrm/civicrm-core/pull/16625))**
+- **[REF] Minor code simplification
+ ([16734](https://github.com/civicrm/civicrm-core/pull/16734))**
-- **Mark unused function as deprecated ([16688](https://github.com/civicrm/civicrm-core/pull/16688))**
+- **[REF] Hopefully fix regularly failing conformance test
+ ([16732](https://github.com/civicrm/civicrm-core/pull/16732))**
-- **Fix Views relationship to addresses ([600](https://github.com/civicrm/civicrm-drupal/pull/600))**
+- **[REF] Use empty() instead of CRM_Utils_Array::value() in inline conditionals
+ ([16729](https://github.com/civicrm/civicrm-core/pull/16729))**
-- **Use new consolidated constant for minimum PHP version ([599](https://github.com/civicrm/civicrm-drupal/pull/599))**
+- **[REF] Use ?? operator instead of CRM_Utils_Array::value() in return
+ statements ([16719](https://github.com/civicrm/civicrm-core/pull/16719))**
-- **Bump minimum PHP version to be 7.1 (Do not merge until 5.24 RC is cut) ([598](https://github.com/civicrm/civicrm-drupal/pull/598))**
+- **[REF] CRM_Utils_Array::value() -> empty()
+ ([16704](https://github.com/civicrm/civicrm-core/pull/16704))**
-- **Set "cms.root" URL in addition to Path ([188](https://github.com/civicrm/civicrm-wordpress/pull/188))**
+- **[REF] Cleanup is_array(CRM_Utils_Array::value()) pattern
+ ([16875](https://github.com/civicrm/civicrm-core/pull/16875))**
-- **Merge REST API wrapper code ([160](https://github.com/civicrm/civicrm-wordpress/pull/160))**
+- **[REF] Remove redundant call to build permissions
+ ([16862](https://github.com/civicrm/civicrm-core/pull/16862))**
-- **Consolidate to single constant for minimum PHP version ([187](https://github.com/civicrm/civicrm-wordpress/pull/187))**
+- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments
+ ([16768](https://github.com/civicrm/civicrm-core/pull/16768))**
-- **Add shortcodes for Personal Campaign Pages ([185](https://github.com/civicrm/civicrm-wordpress/pull/185))**
+- **[REF] Replace coalesce pattern with coalesce operator
+ ([16802](https://github.com/civicrm/civicrm-core/pull/16802))**
-- **Bump minimum install version to be 7.1 (Do not merge until 5.24 RC is cut) ([184](https://github.com/civicrm/civicrm-wordpress/pull/184))**
+- **[REF] Switch to using a non abandoned library for getting a mapping of
+ mimetypes to extensions
+ ([16436](https://github.com/civicrm/civicrm-core/pull/16436))**
-- **Issue #117 fix address relationship for Views ([118](https://github.com/civicrm/civicrm-backdrop/pull/118))**
+- **[REF] move buildQuickForm function to the trait
+ ([16948](https://github.com/civicrm/civicrm-core/pull/16948))**
-- **Consolidate to single constant for minimum PHP version ([114](https://github.com/civicrm/civicrm-backdrop/pull/114))**
+- **[REF] Move properties to Trait
+ ([16940](https://github.com/civicrm/civicrm-core/pull/16940))**
-- **Bump Minimum PHP Version to be 7.1 (Do not merge until 5.24 RC is cut) ([111](https://github.com/civicrm/civicrm-backdrop/pull/111))**
+- **[REF] Start transitioning EmailCommon class to a trait
+ ([16935](https://github.com/civicrm/civicrm-core/pull/16935))**
-- **dev/core#1675 and dev/core#1695 - Revert part of DB package upgrade that is causing transaction issues ([289](https://github.com/civicrm/civicrm-packages/pull/289))**
+- **[REF] Remove fatal, fix some code comments
+ ([16928](https://github.com/civicrm/civicrm-core/pull/16928))**
-## Miscellany
+- **[REF] extract code to getEmails
+ ([16929](https://github.com/civicrm/civicrm-core/pull/16929))**
+
+- **[REF] Minor simplification - do not use variable variables
+ ([16927](https://github.com/civicrm/civicrm-core/pull/16927))**
+
+- **[REF] Extract code used to render a pseudoconstant when a table is defined.
+ ([16902](https://github.com/civicrm/civicrm-core/pull/16902))**
+
+- **[REF] Move form specific handling back to the relevant form.
+ ([16913](https://github.com/civicrm/civicrm-core/pull/16913))**
+
+- **[REF] APIv4 - Preserve order when expanding select wildcards
+ ([16909](https://github.com/civicrm/civicrm-core/pull/16909))**
+
+- **[REF] Remove & from before variable
+ ([16897](https://github.com/civicrm/civicrm-core/pull/16897))**
+
+- **[REF] Replace \CRM_Utils_Array::value with ??
+ ([16872](https://github.com/civicrm/civicrm-core/pull/16872))**
+
+- **[REF] Civi/Api4 - Refactor out 'use CRM_Utils_Array'
+ ([16873](https://github.com/civicrm/civicrm-core/pull/16873))**
+
+- **[REF] BAO_Contact - Remove CRM_Utils_Array::value and other unnecessary code
+ ([16874](https://github.com/civicrm/civicrm-core/pull/16874))**
+
+- **[REF] APIv4 - Restructure the way get query objects are constucted
+ ([16878](https://github.com/civicrm/civicrm-core/pull/16878))**
+
+- **[REF] Fix PCP getPcpDashboardInfo to be tested & use sensible functions
+ ([16790](https://github.com/civicrm/civicrm-core/pull/16790))**
+
+- **[REF] Simplify obtuse boolean expressions
+ ([16822](https://github.com/civicrm/civicrm-core/pull/16822))**
+
+- **[REF] Replace CRM_Utils_Array::value with ?? in variable assignments
+ ([16820](https://github.com/civicrm/civicrm-core/pull/16820))**
+
+- **[REF] cleanups on array operator
+ ([16821](https://github.com/civicrm/civicrm-core/pull/16821))**
+
+- **[REF] Simplify obtuse boolean expressions
+ ([16819](https://github.com/civicrm/civicrm-core/pull/16819))**
+
+- **[REF] Remove titleHeader var
+ ([16816](https://github.com/civicrm/civicrm-core/pull/16816))**
+
+- **[REF] simplify references to civicrm_acl
+ ([16671](https://github.com/civicrm/civicrm-core/pull/16671))**
+
+- **[REF] Fix retrieving invoice related settings when doing complete
+ transaction ([17218](https://github.com/civicrm/civicrm-core/pull/17218))**
## Credits
This release was developed by the following code authors:
-a-n The Artists Information Company - William Mortada; AGH Strategies - Alice Frumin, Andrew Hunt; Alexy Mikhailichenko; Andrei Mondoc; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; iXiam - César Ramos; JMA Consulting - Seamus Lee; Joinery - Allen Shaw; Kartik Kathuria; Lighthouse Design and Consulting - Brian Shaughnessy; Makoa - Usha F. Matisson; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Naomi Rosenberg; Ray Wright; sushantpaste; SYSTOPIA Organisationsberatung - Björn Endres; Timbsoft Technologies - Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton
+a-n The Artists Information Company - William Mortada; AGH Strategies - Alice
+Frumin, Andie Hunt; Alexy Mikhailichenko; Andrei Mondoc; Christian Wach; Circle
+Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts,
+Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D;
+Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; iXiam - César
+Ramos; JMA Consulting - Seamus Lee; Joinery - Allen Shaw; Kartik Kathuria;
+Lighthouse Design and Consulting - Brian Shaughnessy; Makoa - Usha F. Matisson;
+Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire;
+Naomi Rosenberg; Ray Wright; OSSeed Technologies LLP - Sushant Paste; SYSTOPIA
+Organisationsberatung - Björn Endres; Timbsoft Technologies - Tunbola Ogunwande;
+Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
-a-n The Artists Information Company - William Mortada; AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Justin Freeman; Andrei Mondoc; Artful Robot - Rich Lott; British Humanist Association - Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Nicolas Ganivet, Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Digitalcourage - Detlev Sieber; freeform-sg; Fuzion - Jitendra Purohit, Luke Stewart; Greenpeace Central and Eastern Europe - Patrick Figel; Jamie Tillman; JMA Consulting - Monish Deb, Seamus Lee; Joinery - Allen Shaw; Kartik Kathuria; Korlon - Stuart Gaston; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Richard van Oosterhout; Skvare - Mark Hanna; Squiffle Consulting - Aidan Saunders; sushantpaste; SYSTOPIA Organisationsberatung - Björn Endres; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton
+Agileware - Justin Freeman; Artful Robot - Rich Lott; British Humanist
+Association - Andrew West; CiviDesk - Nicolas Ganivet; Coop SymbioTIC - Mathieu
+Lutfy; Digitalcourage - Detlev Sieber; Freeform Solutions - S. Gray; Fuzion -
+Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; Jamie
+Tillman; JMA Consulting - Monish Deb; Korlon - Stuart Gaston; MJCO - Mikey
+O'Toole; Richard van Oosterhout; Skvare - Mark Hanna; Squiffle Consulting -
+Aidan Saunders; Tadpole Collective - Kevin Cristiano
## 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`.