From 7dfe078f35b8481d8c3e33cce9c0fa0653a0c746 Mon Sep 17 00:00:00 2001 From: Alice Frumin Date: Thu, 27 Apr 2023 23:21:40 -0400 Subject: [PATCH] [NFC] 5.61 release notes --- contributor-key.yml | 9 + release-notes/5.61.0.md | 891 ++++++++++++++++++++++++++++------------ 2 files changed, 635 insertions(+), 265 deletions(-) diff --git a/contributor-key.yml b/contributor-key.yml index 1b17d3dad3..2263170b9f 100644 --- a/contributor-key.yml +++ b/contributor-key.yml @@ -126,6 +126,9 @@ - name : Anne Smale +- github : anthonyblond + name : Anthony Blond + - github : anthonylindsay name : Anthony Lindsay organization: Annertech @@ -1457,6 +1460,10 @@ - github : tapashdatta +- github : tbember + name : Tiago Bember + organization: Giant Rabbit + - github : TBSliver name : Tom Bloor @@ -1593,6 +1600,8 @@ - name : William Gordon organization: British Humanist Association +- github : WebmasterBouclier + - github : webmaster-cses-org-uk name : Adam Wood organization: CSES (Chelmsford Science and Engineering Society) diff --git a/release-notes/5.61.0.md b/release-notes/5.61.0.md index cc4a0a9979..6ebfc7f4b2 100644 --- a/release-notes/5.61.0.md +++ b/release-notes/5.61.0.md @@ -13,540 +13,901 @@ Released May 3, 2023 | *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? | no | +| **Introduce features?** | **yes** | +| **Fix bugs?** | **yes** | ## Features ### Core CiviCRM -- **crm- Missing Summary ([25761](https://github.com/civicrm/civicrm-core/pull/25761))** +- **Add template support for Imports + ([dev/core#4130](https://lab.civicrm.org/dev/core/-/issues/4130): + [25808](https://github.com/civicrm/civicrm-core/pull/25808))** -## Bugs resolved + This provides a nice-to-have functionality for non-Civi-Import imports - ie + the import can store details from the initial DataSource screen - anyone who + always has to remember to save dates will appreciate that. In addition for + Civi-import imports it can store more nuanced defaults for Civi-Import (which + works on the Contribution Import). -### Core CiviCRM +- **Define interfaces for interacting with newly cleaned up import code + (Work Towards [dev/core#3514](https://lab.civicrm.org/dev/core/-/issues/3514): + [25879](https://github.com/civicrm/civicrm-core/pull/25879))** -- **dev/core#4249 Ensure that no deprecation logging occurs from groupPer… ([26099](https://github.com/civicrm/civicrm-core/pull/26099))** + Defines hook to alter data once it has been mapped but before work is done on + it. -- **dev/core#4247 Ensure that Membership values are populated to prevent … ([26085](https://github.com/civicrm/civicrm-core/pull/26085))** +- **Civi-Import - Add Template search + ([25939](https://github.com/civicrm/civicrm-core/pull/25939) and + [25957](https://github.com/civicrm/civicrm-core/pull/25957))** -- **Updates pear/pear-core-minimal and guzzlehttp/psr7 ([26082](https://github.com/civicrm/civicrm-core/pull/26082))** + Adds a Civi Import Template Search. -- **Fix dev/core#4240 - Saving entityReference field value via API ([26067](https://github.com/civicrm/civicrm-core/pull/26067))** +- **Add links to search kits to import preview screen, when Civi-Import is + enabled ([25816](https://github.com/civicrm/civicrm-core/pull/25816))** -- **Afform - Fix showing default values for EntityRef fields ([26008](https://github.com/civicrm/civicrm-core/pull/26008))** + Adds links to SearchKit user interface to the import screens when Civi-Import + is enabled. -- **Type hints & strictness fixes within tests ([26013](https://github.com/civicrm/civicrm-core/pull/26013))** +- **Civi-Import - improvements to the search display for imported rows + ([25977](https://github.com/civicrm/civicrm-core/pull/25977))** -- **Remove an attention-span's worth of cvs info ([26012](https://github.com/civicrm/civicrm-core/pull/26012))** + Improves the Civi-Import user experience by disabling edit in place for + imported rows and reordering the contribution id and status message columns. -- **[Test] Strictness fixes - `CiviUntTestBaseClass` ([26011](https://github.com/civicrm/civicrm-core/pull/26011))** +- **Import data source Re-use already uploaded data, optionally on use of 'back' + button ([25787](https://github.com/civicrm/civicrm-core/pull/25787))** -- **Strictness cleanups in test class ([26005](https://github.com/civicrm/civicrm-core/pull/26005))** + Improves user experience when importing data by storing the uploaded file so + you do not have to upload it again if you go back. -- **Send SMS: fix invalid htxt tag error ([26010](https://github.com/civicrm/civicrm-core/pull/26010))** +- **Add handling of `usage` to `DAO` generator + ([25874](https://github.com/civicrm/civicrm-core/pull/25874) and + [25934](https://github.com/civicrm/civicrm-core/pull/25934))** -- **Afform - Support repeatable relationships ([25175](https://github.com/civicrm/civicrm-core/pull/25175))** + Adds handling of usage to DAO generator. -- **Remove upgrade custom field handling from Dedupe code - previously shared function ([26004](https://github.com/civicrm/civicrm-core/pull/26004))** +- **Afform - Support repeatable relationships + ([25175](https://github.com/civicrm/civicrm-core/pull/25175))** -- **Clarify `entityID` types in Merger class ([26003](https://github.com/civicrm/civicrm-core/pull/26003))** + Supports creating multiple relationships at once using the "Repeatable" + feature in the relationship fields. -- **Avoid potentially undefined var ([26001](https://github.com/civicrm/civicrm-core/pull/26001))** +- **Afform - Allow contact created/modified date fields to be used as filters + ([25824](https://github.com/civicrm/civicrm-core/pull/25824))** -- **When importing invalid campaigns they pass validation (only to fail on import) ([25988](https://github.com/civicrm/civicrm-core/pull/25988))** + Makes the contact created/modified date fields available as filter options for + relevant Afforms. -- **Allow to disable an invalid relationship (eg. contact subtype was changed so no longer valid) ([25647](https://github.com/civicrm/civicrm-core/pull/25647))** +- **Afform - Show file field values for existing entities + ([25294](https://github.com/civicrm/civicrm-core/pull/25294))** -- **[Backport] Fix dedupe checking in afform for anonymous users ([25999](https://github.com/civicrm/civicrm-core/pull/25999))** + Improves the file-upload interface for existing entities. -- **🥚 Payment API creates Activity with subject: "$x Offline Payment for Contribution" even when a payment was captured online ([25997](https://github.com/civicrm/civicrm-core/pull/25997))** +- **Search kit - address issues + ([dev/core#4153](https://lab.civicrm.org/dev/core/-/issues/4153): + [25718](https://github.com/civicrm/civicrm-core/pull/25718))** -- **Use label, where present for import field labels ([25991](https://github.com/civicrm/civicrm-core/pull/25991))** + Extends the address fields available for the PrimaryContact on search. -- **Campaign - Make name index unique ([25995](https://github.com/civicrm/civicrm-core/pull/25995))** +- **SearchKit - POC help text + ([24819](https://github.com/civicrm/civicrm-core/pull/24819))** -- **[TESTS] Fix some campaign cleanup ([25996](https://github.com/civicrm/civicrm-core/pull/25996))** + Improves user experience by adding some Help tooltips to SearchKit (which also + serve as examples for developers). -- **Fix url from just-merged PR ([25990](https://github.com/civicrm/civicrm-core/pull/25990))** +- **SearchKit - Handle comma-separated values passed from Afform url + ([25827](https://github.com/civicrm/civicrm-core/pull/25827))** -- **Fix enotice when using Civi-import ([25979](https://github.com/civicrm/civicrm-core/pull/25979))** + Allows multiple filter values to be passed through the url to a SearchKit + display. -- **Civi-Import - Add Template search ([25939](https://github.com/civicrm/civicrm-core/pull/25939))** +- **SearchKit - Add select options for MONTH date filter + ([25739](https://github.com/civicrm/civicrm-core/pull/25739))** -- **Activity BAO - Remove unused classes/functions ([25971](https://github.com/civicrm/civicrm-core/pull/25971))** + Makes the "Month Only" field transformation in SearchKit into a dropdown + select. -- **BAO - deprecate create for writeRecord: SavedSearch ([25973](https://github.com/civicrm/civicrm-core/pull/25973))** +- **SearchKit - Add next_birthday calc field + ([25740](https://github.com/civicrm/civicrm-core/pull/25740))** -- **BAO - Deprecate `setIsActive` BAO functions ([25976](https://github.com/civicrm/civicrm-core/pull/25976))** + Adds a Next Birthday Calc field to Searchkit. -- **5.60 ([25986](https://github.com/civicrm/civicrm-core/pull/25986))** +- **Speed up SearchKit results loading by 800ms + ([25408](https://github.com/civicrm/civicrm-core/pull/25408))** -- **Civi-Import - improvements to the search display for imported rows ([25977](https://github.com/civicrm/civicrm-core/pull/25977))** + Improves loading times for SearchKit results. -- **Minor fixes to Civi-Import screen, populating defaults, missing `ts` ([25980](https://github.com/civicrm/civicrm-core/pull/25980))** +- **SearchKit - Pass entire record into `checkAccess` + ([25969](https://github.com/civicrm/civicrm-core/pull/25969))** -- **5.60 to master ([25985](https://github.com/civicrm/civicrm-core/pull/25985))** + Makes SearchKit more efficient. -- **[NFC] Don't have null values for required fields in Case test fixture ([25983](https://github.com/civicrm/civicrm-core/pull/25983))** +- **Add new `\Civi\Exception\DBQueryException` & throw that rather than a + `PEAR_Exception` + ([25634](https://github.com/civicrm/civicrm-core/pull/25634))** -- **BAO - deprecate create for writeRecord: SubscriptionHistory ([25974](https://github.com/civicrm/civicrm-core/pull/25974))** + Improves logging of database query issues. -- **5.60 to master ([25978](https://github.com/civicrm/civicrm-core/pull/25978))** +- **Log sending of Scheduled Reminders + ([25933](https://github.com/civicrm/civicrm-core/pull/25933))** -- **BAO - deprecate create for writeRecord: ACL ([25970](https://github.com/civicrm/civicrm-core/pull/25970))** + Adds a log line to know which was the last Scheduled Reminder that was being + processed. -- **Demolish the factory 🏭💥 ([25975](https://github.com/civicrm/civicrm-core/pull/25975))** +- **Manage groups - add dedicated url for edit/delete group + ([25955](https://github.com/civicrm/civicrm-core/pull/25955))** -- **SearchKit - Pass entire record into `checkAccess` ([25969](https://github.com/civicrm/civicrm-core/pull/25969))** + In preparation for a "manage groups" screen in the Admin UI (see #25899) this + updates the url for editing and deleting groups so it does not conflict with + the url for browsing groups. -- **BAO - deprecate create for writeRecord: Batch ([25972](https://github.com/civicrm/civicrm-core/pull/25972))** +- **Extend Authx functionality to support validation of externally generated + JWTs (Work Towards + [dev/core#3133](https://lab.civicrm.org/dev/core/-/issues/3133): + [25952](https://github.com/civicrm/civicrm-core/pull/25952))** -- **(dev/core#4188) PHPUnit - Port TAP printer to v9.x ([25956](https://github.com/civicrm/civicrm-core/pull/25956))** + Adds support for using externally generated JWTs e.g. by Auth0 to authenticate + users using Authx -- **Remove noisily deprecated code ([25965](https://github.com/civicrm/civicrm-core/pull/25965))** +- **add locale param to smarty crmMoney() + ([25726](https://github.com/civicrm/civicrm-core/pull/25726))** -- **5.60 to master ([25966](https://github.com/civicrm/civicrm-core/pull/25966))** + Adds new (optional) locale parameter to smarty function crmMoney(). -- **Fix master-only regression on loading membership changes ([25964](https://github.com/civicrm/civicrm-core/pull/25964))** +- **AutoClean - Optionally allow explicit cleanup + ([25858](https://github.com/civicrm/civicrm-core/pull/25858))** -- **Upgrade fix for url change ([25962](https://github.com/civicrm/civicrm-core/pull/25962))** + Allows some slightly different auto clean code-patterns that will give the + same functionality. -- **dev/core#3133 - Extend Authx functionality to support validation of e… ([25952](https://github.com/civicrm/civicrm-core/pull/25952))** +### CiviContribute -- **CustomFields - drop unused 'javascript' column ([25958](https://github.com/civicrm/civicrm-core/pull/25958))** +- **PaymentProcessor - Enter title instead of name on form, call hooks + ([25873](https://github.com/civicrm/civicrm-core/pull/25873))** -- **Duplicate logging not needed for PEAR_Errors anymore ([25953](https://github.com/civicrm/civicrm-core/pull/25953))** + Adds a new "Frontend title" to Payment Processors for end-users, and redefines + "Title" as a backend field for admins. -- **Manage groups - add dedicated url for edit/delete group ([25955](https://github.com/civicrm/civicrm-core/pull/25955))** +### CiviEvent -- **[REF] Refactor location-related BAOs to use `writeRecord` ([25944](https://github.com/civicrm/civicrm-core/pull/25944))** +- **FormBuilder: Can't set participant status type + ([dev/core#4163](https://lab.civicrm.org/dev/core/-/issues/4163): + [25750](https://github.com/civicrm/civicrm-core/pull/25750))** -- **Flush cache that holds schema links information when saving UserJob ([25959](https://github.com/civicrm/civicrm-core/pull/25959))** + Adds the `ParticipantStatusType` entity to APIv4. -- **Import templates Set created_id, expires_date appropriately ([25957](https://github.com/civicrm/civicrm-core/pull/25957))** +- ** Allow search on participant id + ([dev/core#4176](https://lab.civicrm.org/dev/core/-/issues/4176): + [25780](https://github.com/civicrm/civicrm-core/pull/25780))** -- **dev/core#3804 - Fix recently performed activities on case dashboard when no upcoming exist ([25954](https://github.com/civicrm/civicrm-core/pull/25954))** + Adds a Participant ID search field to the Participant Search. -- **Check presence of field, rather than extra smarty variable for whether to display the field ([25917](https://github.com/civicrm/civicrm-core/pull/25917))** +### CiviPledge -- **dev/core#4200 use org ID rather than assume it ([25906](https://github.com/civicrm/civicrm-core/pull/25906))** +- **Add support for pledge tokens + ([dev/core#4079](https://lab.civicrm.org/dev/core/-/issues/4079): + [25851](https://github.com/civicrm/civicrm-core/pull/25851))** -- **add locale param to smarty crmMoney() ([25726](https://github.com/civicrm/civicrm-core/pull/25726))** + Adds tokens for pledges. -- **5.60 to master ([25951](https://github.com/civicrm/civicrm-core/pull/25951))** +### Drupal Integration -- **(dev/core#4188) phpunit.xml.dist - Make file compatible with phpunit8 + phpunit9 ([25946](https://github.com/civicrm/civicrm-core/pull/25946))** +- **Expose "created date" to views + ([569](https://github.com/civicrm/civicrm-drupal/pull/569))** -- **(dev/core#4188) Update CRM tests for phpunit9 compatibility ([25949](https://github.com/civicrm/civicrm-core/pull/25949))** + Allows date formatting options on the `created date` in views. -- **(dev/core#4188) Update APIv3 tests for phpunit9 compatibility ([25948](https://github.com/civicrm/civicrm-core/pull/25948))** +## Bugs resolved -- **(dev/core#4188) Update APIv4 tests for phpunit9 compatibility ([25947](https://github.com/civicrm/civicrm-core/pull/25947))** +### Core CiviCRM -- **PaymentProcessor - Enter title instead of name on form, call hooks ([25873](https://github.com/civicrm/civicrm-core/pull/25873))** +- **Importing "No" values to Boolean field results in empty + ([dev/core#3937](https://lab.civicrm.org/dev/core/-/issues/3937): + [25900](https://github.com/civicrm/civicrm-core/pull/25900))** -- **Refactor CRM_Core_BAO_Email to use DAO::writeRecord ([25937](https://github.com/civicrm/civicrm-core/pull/25937))** +- **is_drupal: move functionality that calls this deprecated variable to System + classes ([dev/core#4127](https://lab.civicrm.org/dev/core/-/issues/4127): + [25574](https://github.com/civicrm/civicrm-core/pull/25574))** -- **Log sending of Scheduled Reminders ([25933](https://github.com/civicrm/civicrm-core/pull/25933))** + Move standalone profile modification to userSystem. -- **[NFC] Remove extraneous NULL ([25941](https://github.com/civicrm/civicrm-core/pull/25941))** +- **Possible issue with Token processor and Smarty + (Work Towards [dev/core#4137](https://lab.civicrm.org/dev/core/-/issues/4137): + [25727](https://github.com/civicrm/civicrm-core/pull/25727))** -- **Merge forward 5.60-rc=>master ([25943](https://github.com/civicrm/civicrm-core/pull/25943))** + Ensures tokens filters are HTML-sensitive. -- **Fix bug in just-merged upgrade code ([25940](https://github.com/civicrm/civicrm-core/pull/25940))** +- **Notice on `isDuplicate` on profile form + ([dev/core#4144](https://lab.civicrm.org/dev/core/-/issues/4144): + [25657](https://github.com/civicrm/civicrm-core/pull/25657))** -- **dev/core#4130 add template support for imports ([25808](https://github.com/civicrm/civicrm-core/pull/25808))** + Fixes a smarty notice on isDuplicate. -- **5.60 to master ([25936](https://github.com/civicrm/civicrm-core/pull/25936))** +- **User editable Message Templates, the Contact Action: Send an Email and the + Contact Action: Print Merge/Document cannot use any Smarty Tokens with the + crmDate function because CKEditor 4 unnecessarily HTML encodes single quotes + (') and double quotes (") + ([dev/core#4149](https://lab.civicrm.org/dev/core/-/issues/4149): + [25681](https://github.com/civicrm/civicrm-core/pull/25681))** -- **dev/core#3514 Define hook to alter data once it has been mapped but before work is done on it. ([25879](https://github.com/civicrm/civicrm-core/pull/25879))** + Changes CKEditor 4 default to not encode HTML entities by default which breaks + Smarty syntax and prevents use of crmDate function -- **Update Contribution Import to use apiv4 field names, prior to adding hooks ([25886](https://github.com/civicrm/civicrm-core/pull/25886))** +- **Data integrity issue: Some number fields change their values during data + entry ([dev/core#4152](https://lab.civicrm.org/dev/core/-/issues/4152): + [25876](https://github.com/civicrm/civicrm-core/pull/25876))** -- **Regenerate DAOs with usage from #25874 ([25934](https://github.com/civicrm/civicrm-core/pull/25934))** + Fixes custom data code to not cast to a float. -- **Speed up SearchKit results loading by 800ms ([25408](https://github.com/civicrm/civicrm-core/pull/25408))** +- **Import search authorization issues + ([dev/core#4184](https://lab.civicrm.org/dev/core/-/issues/4184): + [25811](https://github.com/civicrm/civicrm-core/pull/25811))** -- **Extract `isMembershipPriceSet` (`useForMember`) ([25754](https://github.com/civicrm/civicrm-core/pull/25754))** + Permits access to template user jobs (imports). -- **Add unit test cover for test offline mail receipt ([25929](https://github.com/civicrm/civicrm-core/pull/25929))** +- **phpunit 9 compatibility + (Work Towards [dev/core#4188](https://lab.civicrm.org/dev/core/-/issues/4188): + [25947](https://github.com/civicrm/civicrm-core/pull/25947), + [25946](https://github.com/civicrm/civicrm-core/pull/25946), + [25949](https://github.com/civicrm/civicrm-core/pull/25949) and + [25956](https://github.com/civicrm/civicrm-core/pull/25956))** -- **Fix import contribution url ([25907](https://github.com/civicrm/civicrm-core/pull/25907))** + Works towards phpunit 9 compatiablity by: -- **[php8.2] Create getter for `renewalMembershipID`, remove if ([25833](https://github.com/civicrm/civicrm-core/pull/25833))** + - Updating CRM tests + - Updating APIv3 tests + - Updating APIv4 tests + - Porting TAP printer + - making the phpunit.xml.dist file compatible with phpunit8 + phpunit9 -- **CiviReport - Remove duplicate external identifier key in contact fields array, reduce notices ([25454](https://github.com/civicrm/civicrm-core/pull/25454))** +- **Cannot set Entityref fields via APIv4 Explorer - on multi-value data + ([dev/core#4240](https://lab.civicrm.org/dev/core/-/issues/4240): + [26067](https://github.com/civicrm/civicrm-core/pull/26067))** -- **[NFC] Test cleanup, prefer full form test flow ([25928](https://github.com/civicrm/civicrm-core/pull/25928))** +- **blog warning: pass an array for included groups Caller: + CRM_ACL_API::groupPermission Array ( [civi.tag] => deprecated ) + ([dev/core#4249](https://lab.civicrm.org/dev/core/-/issues/4249): + [26099](https://github.com/civicrm/civicrm-core/pull/26099))** -- **Fix intermittant test fail ([25924](https://github.com/civicrm/civicrm-core/pull/25924))** + Ensures that no deprecation logging occurs from groupPermission having + includeGroups as NULL rather than an empty array. -- **[REF][PHP8.2] Declare properties directly on CRM_Core_Form_EntityFormTrait ([25926](https://github.com/civicrm/civicrm-core/pull/25926))** +- **[Backport] Fix dedupe checking in afform for anonymous users + ([25999](https://github.com/civicrm/civicrm-core/pull/25999))** -- **[REF][PHP8.2] Convert dynamic property into a variable ([25925](https://github.com/civicrm/civicrm-core/pull/25925))** +- **Afform - Required files causes form to never validate + ([dev/core#4121](https://lab.civicrm.org/dev/core/-/issues/4121): + [25666](https://github.com/civicrm/civicrm-core/pull/25666))** -- **Stop passing `$this` as `$form` to previously shared, non-static, function ([25923](https://github.com/civicrm/civicrm-core/pull/25923))** +- **Afform - set multi-select values from url + ([25832](https://github.com/civicrm/civicrm-core/pull/25832))** -- **dev/core#4204 Show the Payment Agreement of the selected processor ([25918](https://github.com/civicrm/civicrm-core/pull/25918))** + Ensures that default values are set correctly for multi-valued fields -- **[REF][PHP8.2] Remove unused dyanamic property ([25921](https://github.com/civicrm/civicrm-core/pull/25921))** +- **Afform - Fix showing default values for EntityRef fields + ([26008](https://github.com/civicrm/civicrm-core/pull/26008))** -- **5.60 to master ([25916](https://github.com/civicrm/civicrm-core/pull/25916))** +- **Afform: Fix dedupe rules for anonymous users + ([25461](https://github.com/civicrm/civicrm-core/pull/25461))** -- **dev/core#3937 Remove legacy code causing custom boolean import bug ([25900](https://github.com/civicrm/civicrm-core/pull/25900))** +- **Api4 - Prevent developer error mixing up `addValue` with `addWhere` + ([25905](https://github.com/civicrm/civicrm-core/pull/25905))** -- **UpdateConfigBackend: use api4 to flush the cache ([25913](https://github.com/civicrm/civicrm-core/pull/25913))** + Adds a sanity check in the api to prevent the common mistake of + accidentally using addValue as if it takes 3 arguments like addWhere. -- **(dev/core#4176) Allow to search on participant id ([25780](https://github.com/civicrm/civicrm-core/pull/25780))** +- **APIv4 - Show actions as deprecated in the Explorer + ([25402](https://github.com/civicrm/civicrm-core/pull/25402))** -- **dev/core#4152 Fix custom data code to not cast to a float ([25876](https://github.com/civicrm/civicrm-core/pull/25876))** +- **APIv4 - Support `match` in replaceAction + ([25770](https://github.com/civicrm/civicrm-core/pull/25770))** -- **5.60 to master ([25911](https://github.com/civicrm/civicrm-core/pull/25911))** + Allows the `replaceAction` to support non-id matching, the same way as the + `saveAction` does. -- **Api4 - Prevent developer error mixing up `addValue` with `addWhere` ([25905](https://github.com/civicrm/civicrm-core/pull/25905))** +- **Remove an attention-span's worth of cvs info + ([26012](https://github.com/civicrm/civicrm-core/pull/26012))** -- **Note API - Fix viewing, joining to, and updating Notes ([25672](https://github.com/civicrm/civicrm-core/pull/25672))** +- **Send SMS: fix invalid htxt tag error + ([26010](https://github.com/civicrm/civicrm-core/pull/26010))** -- **Code cleanup on aisle Hook ([25903](https://github.com/civicrm/civicrm-core/pull/25903))** +- **Clarify `entityID` types in Merger class + ([26003](https://github.com/civicrm/civicrm-core/pull/26003))** + +- **When importing invalid campaigns they pass validation (only to fail on + import) ([25988](https://github.com/civicrm/civicrm-core/pull/25988))** + +- **Allow to disable an invalid relationship (eg. contact subtype was changed so + no longer valid) + ([25647](https://github.com/civicrm/civicrm-core/pull/25647))** -- **Fix recently added import url ([25895](https://github.com/civicrm/civicrm-core/pull/25895))** +- **Duplicate logging not needed for PEAR_Errors anymore + ([25953](https://github.com/civicrm/civicrm-core/pull/25953))** -- **Show friendlier labels when Civi-Import enabled ([25896](https://github.com/civicrm/civicrm-core/pull/25896))** +- **Flush cache that holds schema links information when saving UserJob + ([25959](https://github.com/civicrm/civicrm-core/pull/25959))** -- **Fix Contact Import tests custom date testing, remove duplicate handling ([25898](https://github.com/civicrm/civicrm-core/pull/25898))** +- **Check presence of field, rather than extra smarty variable for whether to + display the field + ([25917](https://github.com/civicrm/civicrm-core/pull/25917))** -- **[NFC] hulk smash ([25902](https://github.com/civicrm/civicrm-core/pull/25902))** +- **Note API - Fix viewing, joining to, and updating Notes + ([25672](https://github.com/civicrm/civicrm-core/pull/25672))** -- **Deprecate CRM_Utils_Hook::$nullObject ([25901](https://github.com/civicrm/civicrm-core/pull/25901))** +- **civicrm_cache - Replace wonky index + ([25885](https://github.com/civicrm/civicrm-core/pull/25885))** -- **Add getter for dedupeRuleGroupID ([25894](https://github.com/civicrm/civicrm-core/pull/25894))** +- **Remove preferred_mail_format from tokens + ([25883](https://github.com/civicrm/civicrm-core/pull/25883))** -- **Add handling of `usage` to `DAO` generator ([25874](https://github.com/civicrm/civicrm-core/pull/25874))** +- **SchemaHandler - Add IF EXISTS to dropTable function + ([25881](https://github.com/civicrm/civicrm-core/pull/25881))** -- **Remove 2021 noisily deprecated pdfCommon function ([25887](https://github.com/civicrm/civicrm-core/pull/25887))** + Prevents errors in the same way `dropColumn` does by checking that it exists + before dropping. -- **[NFC] Add metadata about import jobs to `MapField` form ([25891](https://github.com/civicrm/civicrm-core/pull/25891))** +- **Make `Finder::tableQuery` private, after universe search + ([25859](https://github.com/civicrm/civicrm-core/pull/25859))** -- **Remove references to deprecated `preferred_mail_format` in tests ([25890](https://github.com/civicrm/civicrm-core/pull/25890))** +- **WorkflowMessage - Enable strict parsing of annotations + ([25818](https://github.com/civicrm/civicrm-core/pull/25818))** -- **[REF][PHP8.2] Remove property which is no longer used ([25889](https://github.com/civicrm/civicrm-core/pull/25889))** +- **Skip adding script when it won't have anything to run on + ([25882](https://github.com/civicrm/civicrm-core/pull/25882))** -- **civicrm_cache - Replace wonky index ([25885](https://github.com/civicrm/civicrm-core/pull/25885))** +- **Logging ReportDetail: update breadcrumb to use CiviCRM Home for + disambiguation with the "Home" Location Type translation. + ([25805](https://github.com/civicrm/civicrm-core/pull/25805))** -- **CiviUnitTestCase (etal) - Resolve spooky interaction ([25855](https://github.com/civicrm/civicrm-core/pull/25855))** +- **Relationship Cache check + ([25751](https://github.com/civicrm/civicrm-core/pull/25751))** -- **Remove preferred_mail_format from tokens ([25883](https://github.com/civicrm/civicrm-core/pull/25883))** +- **Change title of is_primary fields consistent with Email + ([25700](https://github.com/civicrm/civicrm-core/pull/25700))** -- **don't create tagset markup if there's no tagset ([25884](https://github.com/civicrm/civicrm-core/pull/25884))** +- **Unconditionally assign `quickConfig`, add helper for `getPriceSetID` + ([25719](https://github.com/civicrm/civicrm-core/pull/25719))** -- **ensure delays from transactions don't cause cache race condition ([25673](https://github.com/civicrm/civicrm-core/pull/25673))** +- **Fix dedupe finder performance issue on looking up table size + ([25527](https://github.com/civicrm/civicrm-core/pull/25527))** -- **Move getSubmittedValues to `CRM_Core_Form` ([25877](https://github.com/civicrm/civicrm-core/pull/25877))** +- **don't show USPS warning when USPS lookup disabled + ([25736](https://github.com/civicrm/civicrm-core/pull/25736))** -- **Skip adding script when it won't have anything to run on ([25882](https://github.com/civicrm/civicrm-core/pull/25882))** +- **field separator is a required field + ([25738](https://github.com/civicrm/civicrm-core/pull/25738))** -- **SchemaHandler - Add IF EXISTS to dropTable function ([25881](https://github.com/civicrm/civicrm-core/pull/25881))** +- **Use label, where present for import field labels + ([25991](https://github.com/civicrm/civicrm-core/pull/25991))** -- **Use API4 to create 'Assign Case Role' activity ([25880](https://github.com/civicrm/civicrm-core/pull/25880))** +- **Show friendlier labels when Civi-Import enabled + ([25896](https://github.com/civicrm/civicrm-core/pull/25896))** -- **APIv4 - Show actions as deprecated in the Explorer ([25402](https://github.com/civicrm/civicrm-core/pull/25402))** +- **Import link - fix search Import SearchDisplays to link to the created contact + ([25712](https://github.com/civicrm/civicrm-core/pull/25712))** -- **Afform: Fix dedupe rules for anonymous users ([25461](https://github.com/civicrm/civicrm-core/pull/25461))** +- **Hyphenate Civi-Import in the title/label + ([25474](https://github.com/civicrm/civicrm-core/pull/25474))** -- **Add deprecations to unreachable code in previously shared function ([25779](https://github.com/civicrm/civicrm-core/pull/25779))** +- **Filter 'My imports' to only show non-expired + ([25711](https://github.com/civicrm/civicrm-core/pull/25711))** -- **Remove do-nothing noisily deprecated formatting code ([25878](https://github.com/civicrm/civicrm-core/pull/25878))** +- **Update Import fix to leverage the new exception + ([25725](https://github.com/civicrm/civicrm-core/pull/25725))** -- **[PHP8.2] Declare outputHandler property in reports ([25875](https://github.com/civicrm/civicrm-core/pull/25875))** +- **Fix typing, comments in new StandardFilters class + ([25730](https://github.com/civicrm/civicrm-core/pull/25730))** -- **CiviUnitTestCase - Degrade gracefully on older DBMS ([25872](https://github.com/civicrm/civicrm-core/pull/25872))** +- **Minor fixes to Civi-Import screen, populating defaults, missing `ts` + ([25980](https://github.com/civicrm/civicrm-core/pull/25980))** -- **Post split code cleanup ([25862](https://github.com/civicrm/civicrm-core/pull/25862))** +- **Fix enotice when using Civi-import + ([25979](https://github.com/civicrm/civicrm-core/pull/25979))** + +- **Fix cache clearing when import table is changed + ([25774](https://github.com/civicrm/civicrm-core/pull/25774))** -- **[REF] Simplify import preProcess ([25869](https://github.com/civicrm/civicrm-core/pull/25869))** +- **Worldregion - For API-entity-naming, prefer "WorldRegion" + ([25713](https://github.com/civicrm/civicrm-core/pull/25713))** -- **Switch out the switch ([25868](https://github.com/civicrm/civicrm-core/pull/25868))** +- **Pager missing on Aggregate By Relationship civireport + ([25721](https://github.com/civicrm/civicrm-core/pull/25721))** -- **[REF] Minor code simplification - extract `getHighlightedFields` in Contribution import `MapField` ([25866](https://github.com/civicrm/civicrm-core/pull/25866))** +- **Fix profile search listings columns are sometimes blank. + ([25782](https://github.com/civicrm/civicrm-core/pull/25782))** -- **[NFC] Remove some no-longer-used properties on Contribution import parser ([25867](https://github.com/civicrm/civicrm-core/pull/25867))** +- **Do not report missing triggers if the user cannot check them + ([25820](https://github.com/civicrm/civicrm-core/pull/25820))** -- **dev/core#4079 Add Pledge Tokens ([25851](https://github.com/civicrm/civicrm-core/pull/25851))** +- **don't create tagset markup if there's no tagset + ([25884](https://github.com/civicrm/civicrm-core/pull/25884))** -- **[NFC] Minor tidy up in `MappingTest` ([25854](https://github.com/civicrm/civicrm-core/pull/25854))** +- **ensure delays from transactions don't cause cache race condition + ([25673](https://github.com/civicrm/civicrm-core/pull/25673))** -- **[Test][Php8.2] Fix undeclared properties & other housekeeping ([25852](https://github.com/civicrm/civicrm-core/pull/25852))** +- **Fix bug in just-merged upgrade code + ([25940](https://github.com/civicrm/civicrm-core/pull/25940))** -- **Make `Finder::tableQuery private`, after universe search ([25859](https://github.com/civicrm/civicrm-core/pull/25859))** +- **Fix really annoying notice on mispelt variable name `$isCheked` + ([25759](https://github.com/civicrm/civicrm-core/pull/25759))** -- **[REF][PHP8.2] Refactor api_v3_ParticipantPaymentTest ([25864](https://github.com/civicrm/civicrm-core/pull/25864))** +- **Don't crash API4 if pseudoconstant lookups return nothing + ([25028](https://github.com/civicrm/civicrm-core/pull/25028))** -- **[REF][PHP8.2] Refactor getParticipantOrderParams to never write a dynamic property ([25865](https://github.com/civicrm/civicrm-core/pull/25865))** +- **Php8.2 stop accessing undefined form Property isQuickConfig in + `PriceField:addQuickFormElement` + ([25689](https://github.com/civicrm/civicrm-core/pull/25689))** -- **[REF] Replace use of legacy `$dao->query()` with `CRM_Core_DAO::executeQuery()` ([25860](https://github.com/civicrm/civicrm-core/pull/25860))** +- **Avoid type error in CRM_Core_Form on php 8 + ([25853](https://github.com/civicrm/civicrm-core/pull/25853))** -- **[REF][PHP8.2] Get rid of dynamic properties in CRM_Core_Payment_ProcessorFormTest ([25844](https://github.com/civicrm/civicrm-core/pull/25844))** +- **CiviReport - Remove duplicate external identifier key in contact fields + array, reduce notices + ([25454](https://github.com/civicrm/civicrm-core/pull/25454))** -- **AutoClean - Optionally allow explicit cleanup ([25858](https://github.com/civicrm/civicrm-core/pull/25858))** +- **Stop passing `$this` as `$form` to previously shared, non-static, function + ([25923](https://github.com/civicrm/civicrm-core/pull/25923))** -- **CiviUnitTestCase - During teardown, ensure that we cleanup locks ([25856](https://github.com/civicrm/civicrm-core/pull/25856))** +- **Remove un-used, un-displayed button + ([25841](https://github.com/civicrm/civicrm-core/pull/25841))** -- **[PHP8.2] Clean up in `apiv3_ParticipantTest` with view to 8.2 compatibility ([25801](https://github.com/civicrm/civicrm-core/pull/25801))** +- **Avoid potentially undefined var + ([26001](https://github.com/civicrm/civicrm-core/pull/26001))** -- **[PHP8.2] [Test] Remove use of (often undeclared) property `_invoiceID` in tests & one instance of `paymentProcessorID2` ([25799](https://github.com/civicrm/civicrm-core/pull/25799))** +- **Smarty notice fix on Merge + ([25772](https://github.com/civicrm/civicrm-core/pull/25772))** -- **Remove unused var ([25857](https://github.com/civicrm/civicrm-core/pull/25857))** +- **APIv4 - Don't link to non-existent API entities + ([25743](https://github.com/civicrm/civicrm-core/pull/25743))** -- **Avoid type error in CRM_Core_Form on php 8 ([25853](https://github.com/civicrm/civicrm-core/pull/25853))** +### CiviCampaign -- **dev/core#4184 Permit access to template user jobs (imports) ([25811](https://github.com/civicrm/civicrm-core/pull/25811))** +- **Campaign - Make name index unique + ([25995](https://github.com/civicrm/civicrm-core/pull/25995))** -- **5.60 ([25847](https://github.com/civicrm/civicrm-core/pull/25847))** +### CiviCase -- **PHP8 - Update symfony/var-dumper ([25850](https://github.com/civicrm/civicrm-core/pull/25850))** +- **Civicase dashboard not displaying recently performed activities + ([dev/core#3804](https://lab.civicrm.org/dev/core/-/issues/3804): + [25954](https://github.com/civicrm/civicrm-core/pull/25954))** -- **[PHP8.2] Remove unused setting on undeclared properties ([25831](https://github.com/civicrm/civicrm-core/pull/25831))** +- **Case start_date/end_date are not datetime + ([25803](https://github.com/civicrm/civicrm-core/pull/25803))** -- **[PHP8.2] Remove unused variabls from `Member_Form_Task_PDFLetter::postProcessMembers` ([25830](https://github.com/civicrm/civicrm-core/pull/25830))** +### CiviContribute -- **[REF] [php8.2] Remove unused parameters from `Contribute_PDFLetter::buildContributionArray` ([25829](https://github.com/civicrm/civicrm-core/pull/25829))** +- **Fix bug in tax calculation when recurring overrides with a different value + ([25707](https://github.com/civicrm/civicrm-core/pull/25707))** -- **dev/core#4000 Fix (old) regression - ensure only template contribution updates update recur ([25776](https://github.com/civicrm/civicrm-core/pull/25776))** +- **🥚 Payment API creates Activity with subject: "$x Offline Payment for + Contribution" even when a payment was captured online + ([25997](https://github.com/civicrm/civicrm-core/pull/25997))** -- **SearchKit - Handle comma-separated values passed from Afform url ([25827](https://github.com/civicrm/civicrm-core/pull/25827))** +- **Direct Debit agreement is always/never shown depending on which payment + processor is the default + ([dev/core#4204](https://lab.civicrm.org/dev/core/-/issues/4204): + ([25918](https://github.com/civicrm/civicrm-core/pull/25918))** -- **Deprecated `buildSavedMappingFields` noisily ([25842](https://github.com/civicrm/civicrm-core/pull/25842))** + Ensures the Payment Agreement of the selected processor is displayed (instead + of the payment agreement of the default payment processor). -- **Remove un-used, un-displayed button ([25841](https://github.com/civicrm/civicrm-core/pull/25841))** +- **only update `contributionRecur` when `templateContribution` is updated IF it + is actively marked as such + ([dev/core#4000](https://lab.civicrm.org/dev/core/-/issues/4000): + [25776](https://github.com/civicrm/civicrm-core/pull/25776))** -- **Afform - Allow contact created/modified date fields to be used as filters ([25824](https://github.com/civicrm/civicrm-core/pull/25824))** +- **Past campaigns are not to be assigned via batch update/update contributions + ([dev/core#4124](https://lab.civicrm.org/dev/core/-/issues/4124): + [25687](https://github.com/civicrm/civicrm-core/pull/25687))** -- **5.60 to master ([25843](https://github.com/civicrm/civicrm-core/pull/25843))** +- **Fix import contribution url + ([25895](https://github.com/civicrm/civicrm-core/pull/25895), + [25907](https://github.com/civicrm/civicrm-core/pull/25907) and + [25962](https://github.com/civicrm/civicrm-core/pull/25962))** -- **Merge 5.60 to master ([25839](https://github.com/civicrm/civicrm-core/pull/25839))** + Standardizes the contribution import url. -- **Afform - set multi-select values from url ([25832](https://github.com/civicrm/civicrm-core/pull/25832))** +- **Update Contribution Import to use apiv4 field names, prior to adding hooks + ([25886](https://github.com/civicrm/civicrm-core/pull/25886))** -- **(REF) PHPUnit - Allow env-var to specify version ([25836](https://github.com/civicrm/civicrm-core/pull/25836))** +- **APiv4 explorer - can't enter `contribution.contribution_recur_id` + ([dev/core#4175](https://lab.civicrm.org/dev/core/-/issues/4175): + [25804](https://github.com/civicrm/civicrm-core/pull/25804))** -- **[REF][PHP8.2] Declare property in CRM_Contact_Form_DedupeFind ([25834](https://github.com/civicrm/civicrm-core/pull/25834))** +### CiviMember -- **WorkflowMessage - Enable strict parsing of annotations ([25818](https://github.com/civicrm/civicrm-core/pull/25818))** +- **Fatal error on membership batch data entry with sending receipt + ([dev/core#4247](https://lab.civicrm.org/dev/core/-/issues/4247): + [26085](https://github.com/civicrm/civicrm-core/pull/26085))** -- **[REF][PHP8.2] Don't use a property where a variable will do (CRM_Contact_Page_View_Summary) ([25828](https://github.com/civicrm/civicrm-core/pull/25828))** +- **Countable error when creating a membership batch (if org ID is not 1) + ([dev/core#4200](https://lab.civicrm.org/dev/core/-/issues/4200): + [25906](https://github.com/civicrm/civicrm-core/pull/25906))** -- **Fix profile search listings columns are sometimes blank. ([25782](https://github.com/civicrm/civicrm-core/pull/25782))** +- **🪥 Fix inconsistent terminology used when referring to Member Since, + Membership Start Date and Membership Expiration Date + ([24735](https://github.com/civicrm/civicrm-core/pull/24735) and + [25761](https://github.com/civicrm/civicrm-core/pull/25761))** -- **5.60 to master ([25825](https://github.com/civicrm/civicrm-core/pull/25825))** +### Drupal Integration -- **[REF][PHP8.2] Only set properties which exist within ArrayFormatTrait->loadArray() ([25790](https://github.com/civicrm/civicrm-core/pull/25790))** +- **cv command fails on CiviCRM 5.48.2 on Drupal 9 + ([dev/core#3438](https://lab.civicrm.org/dev/core/-/issues/3438): + [25728](https://github.com/civicrm/civicrm-core/pull/25728))** -- **Do not report missing triggers if the user cannot check them ([25820](https://github.com/civicrm/civicrm-core/pull/25820))** + Prevents `cv` fatal error if logging before CMS bootstrap. -- **(dev/core#4124) Past campaigns are not to be assigned via batch updat… ([25687](https://github.com/civicrm/civicrm-core/pull/25687))** +- **Use the backend theme when upgrading + ([665](https://github.com/civicrm/civicrm-drupal/pull/665) and + [81](https://github.com/civicrm/civicrm-drupal-8/pull/81))** -- **Fix typo that causes e-notice in just-merged commit ([25817](https://github.com/civicrm/civicrm-core/pull/25817))** +## Miscellany + +- **Add getter for dedupeRuleGroupID + ([25894](https://github.com/civicrm/civicrm-core/pull/25894))** -- **[PHP8.2] declare deleteMessage on `entityFormTrait` ([25802](https://github.com/civicrm/civicrm-core/pull/25802))** +- **Move getSubmittedValues to `CRM_Core_Form` + ([25877](https://github.com/civicrm/civicrm-core/pull/25877))** -- **Add links to search kits to import preview screen, when Civ-Import is enabled ([25816](https://github.com/civicrm/civicrm-core/pull/25816))** +- **Extract `isMembershipPriceSet` (`useForMember`) + ([25754](https://github.com/civicrm/civicrm-core/pull/25754))** -- **Merge 5.60 to master ([25815](https://github.com/civicrm/civicrm-core/pull/25815))** +- **CustomFields - drop unused 'javascript' column + ([25958](https://github.com/civicrm/civicrm-core/pull/25958))** -- **Fix really annoying notice on mispelt variable name `$isCheked` ([25759](https://github.com/civicrm/civicrm-core/pull/25759))** +- **UpdateConfigBackend: use api4 to flush the cache + ([25913](https://github.com/civicrm/civicrm-core/pull/25913))** -- **[REF] Fix issue where the strict typing was causing false notices to … ([25814](https://github.com/civicrm/civicrm-core/pull/25814))** +- **Use API4 to create 'Assign Case Role' activity + ([25880](https://github.com/civicrm/civicrm-core/pull/25880))** -- **[PHP8.2] (Ref) Remove unused dynamic property in report form class ([25812](https://github.com/civicrm/civicrm-core/pull/25812))** +- **Demolish the factory 🏭💥 + ([25975](https://github.com/civicrm/civicrm-core/pull/25975))** -- **don't show USPS warning when USPS lookup disabled ([25736](https://github.com/civicrm/civicrm-core/pull/25736))** +- **BAO - deprecate create for writeRecord: SavedSearch + ([25973](https://github.com/civicrm/civicrm-core/pull/25973))** -- **[REF][PHP8.2] Tidy up properties in api_v3_CaseContactTest ([25809](https://github.com/civicrm/civicrm-core/pull/25809))** +- **BAO - Deprecate `setIsActive` BAO functions + ([25976](https://github.com/civicrm/civicrm-core/pull/25976))** -- **field separator is a required field ([25738](https://github.com/civicrm/civicrm-core/pull/25738))** +- **BAO - deprecate create for writeRecord: SubscriptionHistory + ([25974](https://github.com/civicrm/civicrm-core/pull/25974))** -- **Import data source Re-use already uploaded data, optionally on use of 'back' button ([25787](https://github.com/civicrm/civicrm-core/pull/25787))** +- **BAO - deprecate create for writeRecord: ACL + ([25970](https://github.com/civicrm/civicrm-core/pull/25970))** -- **Logging ReportDetail: update breadcrumb to use CiviCRM Home for disambiguation ([25805](https://github.com/civicrm/civicrm-core/pull/25805))** +- **BAO - deprecate create for writeRecord: Batch + ([25972](https://github.com/civicrm/civicrm-core/pull/25972))** -- **Case start_date/end_date are not datetime ([25803](https://github.com/civicrm/civicrm-core/pull/25803))** +- **Updates pear/pear-core-minimal and guzzlehttp/psr7 + ([26082](https://github.com/civicrm/civicrm-core/pull/26082))** -- **APIv4 - Autocomplete ContributionRecur entity ([25804](https://github.com/civicrm/civicrm-core/pull/25804))** +- **Deprecate CRM_Utils_Hook::$nullObject + ([25901](https://github.com/civicrm/civicrm-core/pull/25901))** -- **Remove dependence on cache/integration-tests ([25796](https://github.com/civicrm/civicrm-core/pull/25796))** +- **Remove 2021 noisily deprecated pdfCommon function + ([25887](https://github.com/civicrm/civicrm-core/pull/25887))** -- **SearchKit - POC help text ([24819](https://github.com/civicrm/civicrm-core/pull/24819))** +- **APIv4 - Deprecate unnecessary constants + ([25781](https://github.com/civicrm/civicrm-core/pull/25781))** -- **Php8.2 fixes in report `addToDeveloperTab` function ([25800](https://github.com/civicrm/civicrm-core/pull/25800))** +- **BAO - Noisily deprecate and stop using deprecated functions + ([25677](https://github.com/civicrm/civicrm-core/pull/25677))** -- **Php8.2 fixes in unit tests ([25797](https://github.com/civicrm/civicrm-core/pull/25797))** +- **Remove dependence on cache/integration-tests + ([25796](https://github.com/civicrm/civicrm-core/pull/25796))** -- **[NFC] cleanup in `ChangeFeeSelectionTest` ([25798](https://github.com/civicrm/civicrm-core/pull/25798))** +- **Remove function deprecated noisly in 2020 + ([25768](https://github.com/civicrm/civicrm-core/pull/25768))** -- **[REF][PHP8.2] Refactor use of pageParams properties ([25795](https://github.com/civicrm/civicrm-core/pull/25795))** +- **All your base are deleted + ([25773](https://github.com/civicrm/civicrm-core/pull/25773))** -- **[REF][PHP8.2] Refactor api_v3_ImTest with primary aim of improving PHP 8.2 compatiability ([25792](https://github.com/civicrm/civicrm-core/pull/25792))** +- **More deprecations of `del` + ([25767](https://github.com/civicrm/civicrm-core/pull/25767))** -- **[REF][PHP8.2] Refactor api_v3_PriceFieldValueTest with primary aim of improving PHP 8.2 compatiability ([25793](https://github.com/civicrm/civicrm-core/pull/25793))** +- **Consolidate `DataSource.tpl` + ([25771](https://github.com/civicrm/civicrm-core/pull/25771))** -- **(REF) Remove unused onPopupClose variables ([25794](https://github.com/civicrm/civicrm-core/pull/25794))** +- **Remove unused var + ([25857](https://github.com/civicrm/civicrm-core/pull/25857))** -- **[REF][PHP8.2] Fix use of self in callables deprecation ([25791](https://github.com/civicrm/civicrm-core/pull/25791))** +- **Remove remaining non-variable variables + ([25752](https://github.com/civicrm/civicrm-core/pull/25752))** -- **set-version.php - Fix warning on PHP 8.1 ([25786](https://github.com/civicrm/civicrm-core/pull/25786))** +- **Deprecate pledge_payment::del + ([25763](https://github.com/civicrm/civicrm-core/pull/25763))** -- **[REF][PHP8.2] Declare property on CRM_Core_ErrorTest ([25788](https://github.com/civicrm/civicrm-core/pull/25788))** +- **Remove deprecated calls from contribute, financial, remove ManagePremiums + deprecated BAO ([25766](https://github.com/civicrm/civicrm-core/pull/25766))** -- **[REF][PHP8.2] Declare property on CRM_Event_Import_Parser_ParticipantTest ([25789](https://github.com/civicrm/civicrm-core/pull/25789))** +- **Deprecations on del functions + ([25764](https://github.com/civicrm/civicrm-core/pull/25764))** -- **dev/core#4144 Fix smarty notice on isDuplicate ([25657](https://github.com/civicrm/civicrm-core/pull/25657))** +- **Deprecate relationship::del + ([25765](https://github.com/civicrm/civicrm-core/pull/25765))** -- **APIv4 - Deprecate unnecessary constants ([25781](https://github.com/civicrm/civicrm-core/pull/25781))** +- **Noisily deprecate unused function + ([25762](https://github.com/civicrm/civicrm-core/pull/25762))** -- **[NFC] Fix PHP8.2 issues in the Mailing Contact Test ([25783](https://github.com/civicrm/civicrm-core/pull/25783))** +- **Code cleanup: Use `parent::buildForm` in contact import dataSource screen + ([25757](https://github.com/civicrm/civicrm-core/pull/25757))** -- **Fix cache clearing when import table is changed ([25774](https://github.com/civicrm/civicrm-core/pull/25774))** +- **Stop passing invariable variables to private function + ([25676](https://github.com/civicrm/civicrm-core/pull/25676))** -- **Fix dedupe finder performance issue on looking up table size ([25527](https://github.com/civicrm/civicrm-core/pull/25527))** +- **Remove upgrade custom field handling from Dedupe code - previously shared + function ([26004](https://github.com/civicrm/civicrm-core/pull/26004))** -- **Import link - fix search Import SearchDisplays to link to the created contact ([25712](https://github.com/civicrm/civicrm-core/pull/25712))** +- **Activity BAO - Remove unused classes/functions + ([25971](https://github.com/civicrm/civicrm-core/pull/25971))** -- **Hyphenate Civi-Import in the title/label ([25474](https://github.com/civicrm/civicrm-core/pull/25474))** +- **Deprecated `buildSavedMappingFields` noisily + ([25842](https://github.com/civicrm/civicrm-core/pull/25842))** -- **CiviUnitTestCase - More aggressive simplifications ([25187](https://github.com/civicrm/civicrm-core/pull/25187))** +- **Code cleanup on aisle Hook ([25903](https://github.com/civicrm/civicrm-core/pull/25903))** -- **BAO - Noisily deprecate and stop using deprecated functions ([25677](https://github.com/civicrm/civicrm-core/pull/25677))** +- **Deprecated code removal + ([25710](https://github.com/civicrm/civicrm-core/pull/25710))** -- **[REF] Improve function signature for `retrieve()` in `PaypalProIPN` , add test for when trxn_id is present ([25749](https://github.com/civicrm/civicrm-core/pull/25749))** +- **Add deprecations to unreachable code in previously shared function + ([25779](https://github.com/civicrm/civicrm-core/pull/25779))** -- **APIv4 - Support `match` in replaceAction ([25770](https://github.com/civicrm/civicrm-core/pull/25770))** +- **Stop using deprecated methods, `ufField::del` + ([25747](https://github.com/civicrm/civicrm-core/pull/25747))** -- **Remove function deprecated noisly in 2020 ([25768](https://github.com/civicrm/civicrm-core/pull/25768))** +- **Remove some deprecated del calls + ([25746](https://github.com/civicrm/civicrm-core/pull/25746))** -- **Don't crash API4 if pseudoconstant lookups return nothing ([25028](https://github.com/civicrm/civicrm-core/pull/25028))** +- **Remove noisily deprecated code + ([25965](https://github.com/civicrm/civicrm-core/pull/25965))** -- **All your base are deleted ([25773](https://github.com/civicrm/civicrm-core/pull/25773))** +- **Remove unvariable variables `toReturn` & `subName` from `Merger` + ([25745](https://github.com/civicrm/civicrm-core/pull/25745))** -- **More deprecations of `del` ([25767](https://github.com/civicrm/civicrm-core/pull/25767))** +- **Remove do-nothing noisily deprecated formatting code + ([25878](https://github.com/civicrm/civicrm-core/pull/25878))** -- **Consolidate `DataSource.tpl` ([25771](https://github.com/civicrm/civicrm-core/pull/25771))** +- **Post split code cleanup + ([25862](https://github.com/civicrm/civicrm-core/pull/25862))** -- **Smarty notice fix on Merge ([25772](https://github.com/civicrm/civicrm-core/pull/25772))** +- **Switch out the switch + ([25868](https://github.com/civicrm/civicrm-core/pull/25868))** -- **Deprecate pledge_payment::del ([25763](https://github.com/civicrm/civicrm-core/pull/25763))** +- **set-version.php - Fix warning on PHP 8.1 + ([25786](https://github.com/civicrm/civicrm-core/pull/25786))** -- **Remove deprecated calls from contribute, financial, remove ManagePremiums deprecated BAO ([25766](https://github.com/civicrm/civicrm-core/pull/25766))** +- **[Test][Php8.2] Fix undeclared properties & other housekeeping + ([25852](https://github.com/civicrm/civicrm-core/pull/25852))** -- **Deprecations on del functions ([25764](https://github.com/civicrm/civicrm-core/pull/25764))** +- **[php8.2] Create getter for `renewalMembershipID`, remove if + ([25833](https://github.com/civicrm/civicrm-core/pull/25833))** -- **Deprecate relationship::del ([25765](https://github.com/civicrm/civicrm-core/pull/25765))** +- **[PHP8.2] Declare outputHandler property in reports + ([25875](https://github.com/civicrm/civicrm-core/pull/25875))** -- **Noisily deprecate unused function ([25762](https://github.com/civicrm/civicrm-core/pull/25762))** +- **PHP8 - Update symfony/var-dumper + ([25850](https://github.com/civicrm/civicrm-core/pull/25850))** -- **dev/core#4121 Afform: add validation for file fields in formbuilder ([25666](https://github.com/civicrm/civicrm-core/pull/25666))** +- **[PHP8.2] declare deleteMessage on `entityFormTrait` + ([25802](https://github.com/civicrm/civicrm-core/pull/25802))** -- **APIv4 - Add 'Update' to conformanceTest ([25674](https://github.com/civicrm/civicrm-core/pull/25674))** +- **[PHP8.2] Remove unused setting on undeclared properties + ([25831](https://github.com/civicrm/civicrm-core/pull/25831))** -- **Remove remaining non-variable variables ([25752](https://github.com/civicrm/civicrm-core/pull/25752))** +- **[PHP8.2] Remove unused variabls from + `Member_Form_Task_PDFLetter::postProcessMembers` + ([25830](https://github.com/civicrm/civicrm-core/pull/25830))** -- **🪥 Fix inconsistent terminology used when referring to Member Since, Membership Start Date and Membership Expiration Date ([24735](https://github.com/civicrm/civicrm-core/pull/24735))** +- **[REF][PHP8.2] Tidy up properties in api_v3_CaseContactTest + ([25809](https://github.com/civicrm/civicrm-core/pull/25809))** -- **5.60 to master ([25760](https://github.com/civicrm/civicrm-core/pull/25760))** +- **[PHP8.2] (Ref) Remove unused dynamic property in report form class + ([25812](https://github.com/civicrm/civicrm-core/pull/25812))** -- **dev/core/-/issues/4149 Change CKEditor 4 default to not encode HTML entities by default which breaks Smarty syntax and prevents use of crmDate function ([25681](https://github.com/civicrm/civicrm-core/pull/25681))** +- **Php8.2 fixes in report `addToDeveloperTab` function + ([25800](https://github.com/civicrm/civicrm-core/pull/25800))** -- **Code cleanup: Use `parent::buildForm` in contact import dataSource screen ([25757](https://github.com/civicrm/civicrm-core/pull/25757))** +- **Php8.2 fixes in unit tests + ([25797](https://github.com/civicrm/civicrm-core/pull/25797))** -- **Relationship Cache check ([25751](https://github.com/civicrm/civicrm-core/pull/25751))** +- **[REF][PHP8.2] Refactor use of pageParams properties + ([25795](https://github.com/civicrm/civicrm-core/pull/25795))** -- **Change title of is_primary fields consistent with Email ([25700](https://github.com/civicrm/civicrm-core/pull/25700))** +- **[REF][PHP8.2] Refactor api_v3_ImTest with primary aim of improving PHP 8.2 + compatiability ([25792](https://github.com/civicrm/civicrm-core/pull/25792))** -- **APIv4 - Add ParticipantStatusType entity ([25750](https://github.com/civicrm/civicrm-core/pull/25750))** +- **[REF][PHP8.2] Refactor api_v3_PriceFieldValueTest with primary aim of + improving PHP 8.2 compatiability + ([25793](https://github.com/civicrm/civicrm-core/pull/25793))** -- **Afform - Show file field values for existing entities ([25294](https://github.com/civicrm/civicrm-core/pull/25294))** +- **(REF) Remove unused onPopupClose variables + ([25794](https://github.com/civicrm/civicrm-core/pull/25794))** -- **revert 25735 ([25756](https://github.com/civicrm/civicrm-core/pull/25756))** +- **[REF][PHP8.2] Fix use of self in callables deprecation + ([25791](https://github.com/civicrm/civicrm-core/pull/25791))** -- **5.60 ([25755](https://github.com/civicrm/civicrm-core/pull/25755))** +- **[REF][PHP8.2] Declare property on CRM_Core_ErrorTest + ([25788](https://github.com/civicrm/civicrm-core/pull/25788))** -- **Unconditionally assign `quickConfig`, add helper for `getPriceSetID` ([25719](https://github.com/civicrm/civicrm-core/pull/25719))** +- **[REF][PHP8.2] Declare property on CRM_Event_Import_Parser_ParticipantTest + ([25789](https://github.com/civicrm/civicrm-core/pull/25789))** -- **Stop using deprecated methods, `ufField::del` ([25747](https://github.com/civicrm/civicrm-core/pull/25747))** +- **[REF][PHP8.2] Declare property in CRM_Contact_Form_DedupeFind + ([25834](https://github.com/civicrm/civicrm-core/pull/25834))** -- **Remove some deprecated del calls ([25746](https://github.com/civicrm/civicrm-core/pull/25746))** +- **[REF][PHP8.2] Don't use a property where a variable will do + (CRM_Contact_Page_View_Summary) + ([25828](https://github.com/civicrm/civicrm-core/pull/25828))** -- **Remove unvariable variables `toReturn` & `subName` from `Merger` ([25745](https://github.com/civicrm/civicrm-core/pull/25745))** +- **[REF][PHP8.2] Only set properties which exist within + ArrayFormatTrait->loadArray() + ([25790](https://github.com/civicrm/civicrm-core/pull/25790))** -- **5.60 to master ([25748](https://github.com/civicrm/civicrm-core/pull/25748))** +- **[REF] [php8.2] Remove unused parameters from + `Contribute_PDFLetter::buildContributionArray` + ([25829](https://github.com/civicrm/civicrm-core/pull/25829))** -- **SearchKit - Add select options for MONTH date filter ([25739](https://github.com/civicrm/civicrm-core/pull/25739))** +- **[REF][PHP8.2] Remove property which is no longer used + ([25889](https://github.com/civicrm/civicrm-core/pull/25889))** -- **APIv4 - Don't link to non-existent API entities ([25743](https://github.com/civicrm/civicrm-core/pull/25743))** +- **[REF][PHP8.2] Refactor api_v3_ParticipantPaymentTest + ([25864](https://github.com/civicrm/civicrm-core/pull/25864))** -- **Stop passing invariable variables to private function ([25676](https://github.com/civicrm/civicrm-core/pull/25676))** +- **[REF][PHP8.2] Refactor getParticipantOrderParams to never write a dynamic + property ([25865](https://github.com/civicrm/civicrm-core/pull/25865))** -- **SearchKit - Add next_birthday calc field ([25740](https://github.com/civicrm/civicrm-core/pull/25740))** +- **[REF][PHP8.2] Get rid of dynamic properties in + CRM_Core_Payment_ProcessorFormTest + ([25844](https://github.com/civicrm/civicrm-core/pull/25844))** -- **Filter 'My imports' to only show non-expired ([25711](https://github.com/civicrm/civicrm-core/pull/25711))** +- **[REF][PHP8.2] Declare properties directly on CRM_Core_Form_EntityFormTrait + ([25926](https://github.com/civicrm/civicrm-core/pull/25926))** -- **remove extra field separator field ([25735](https://github.com/civicrm/civicrm-core/pull/25735))** +- **[REF][PHP8.2] Convert dynamic property into a variable + ([25925](https://github.com/civicrm/civicrm-core/pull/25925))** -- **Update Import fix to leverage the new exception ([25725](https://github.com/civicrm/civicrm-core/pull/25725))** +- **[REF][PHP8.2] Remove unused dyanamic property + ([25921](https://github.com/civicrm/civicrm-core/pull/25921))** -- **Fix typing, comments in new StandardFilters class ([25730](https://github.com/civicrm/civicrm-core/pull/25730))** +- **[REF] Replace use of legacy `$dao->query()` with + `CRM_Core_DAO::executeQuery()` + ([25860](https://github.com/civicrm/civicrm-core/pull/25860))** -- **5.60 ([25732](https://github.com/civicrm/civicrm-core/pull/25732))** +- **[REF] Improve function signature for `retrieve()` in `PaypalProIPN` , add + test for when trxn_id is present + ([25749](https://github.com/civicrm/civicrm-core/pull/25749))** -- **dev/core#3438 Drupal: Prevent cv fatal if logging before CMS bootstrap ([25728](https://github.com/civicrm/civicrm-core/pull/25728))** +- **[REF] Fix issue where the strict typing was causing false notices to appear + in Config And Log + ([25814](https://github.com/civicrm/civicrm-core/pull/25814))** -- **(dev/core#4137) Tokens - Filters should be HTML-sensitive ([25727](https://github.com/civicrm/civicrm-core/pull/25727))** +- **(REF) PHPUnit - Allow env-var to specify version + ([25836](https://github.com/civicrm/civicrm-core/pull/25836))** -- **Fix in ContributionTest class ([25722](https://github.com/civicrm/civicrm-core/pull/25722))** +- **[REF] Simplify import preProcess + ([25869](https://github.com/civicrm/civicrm-core/pull/25869))** -- **dev/core#4153 Extend the fields available for PrimaryContact on search ([25718](https://github.com/civicrm/civicrm-core/pull/25718))** +- **[REF] Minor code simplification - extract `getHighlightedFields` in + Contribution import `MapField` + ([25866](https://github.com/civicrm/civicrm-core/pull/25866))** -- **Pager missing on Aggregate By Relationship civireport ([25721](https://github.com/civicrm/civicrm-core/pull/25721))** +- **[REF] Refactor location-related BAOs to use `writeRecord` + ([25944](https://github.com/civicrm/civicrm-core/pull/25944))** -- **dev/core#4127 move standalone profile modification to userSystem ([25574](https://github.com/civicrm/civicrm-core/pull/25574))** +- **Refactor CRM_Core_BAO_Email to use DAO::writeRecord + ([25937](https://github.com/civicrm/civicrm-core/pull/25937))** -- **Fix bug in tax calculation when recurring overrides with a different value ([25707](https://github.com/civicrm/civicrm-core/pull/25707))** +- **[NFC] Test cleanup, prefer full form test flow + ([25928](https://github.com/civicrm/civicrm-core/pull/25928))** -- **Add new `\Civi\Exception\DBQueryException` & throw that rather than a `PEAR_Exception` ([25634](https://github.com/civicrm/civicrm-core/pull/25634))** +- **[NFC] Add metadata about import jobs to `MapField` form + ([25891](https://github.com/civicrm/civicrm-core/pull/25891))** -- **Php8.2 stop accessing undefined form Property isQuickConfig in `PriceField:addQuickFormElement` ([25689](https://github.com/civicrm/civicrm-core/pull/25689))** +- **[NFC] Remove some no-longer-used properties on Contribution import parser + ([25867](https://github.com/civicrm/civicrm-core/pull/25867))** -- **Worldregion - For API-entity-naming, prefer "WorldRegion" ([25713](https://github.com/civicrm/civicrm-core/pull/25713))** +- **[NFC] Don't have null values for required fields in Case test fixture + ([25983](https://github.com/civicrm/civicrm-core/pull/25983))** -- **[NFC] Superficial cleanup in test class ([25708](https://github.com/civicrm/civicrm-core/pull/25708))** +- **[NFC] Remove extraneous NULL + ([25941](https://github.com/civicrm/civicrm-core/pull/25941))** -- **Deprecated code removal ([25710](https://github.com/civicrm/civicrm-core/pull/25710))** +- **[NFC] hulk smash + ([25902](https://github.com/civicrm/civicrm-core/pull/25902))** -- **Use the backend theme when upgrading ([665](https://github.com/civicrm/civicrm-drupal/pull/665))** +- **[NFC] Fix PHP8.2 issues in the Mailing Contact Test + ([25783](https://github.com/civicrm/civicrm-core/pull/25783))** -- **Expose "created date" to views ([569](https://github.com/civicrm/civicrm-drupal/pull/569))** +- **[NFC] Superficial cleanup in test class + ([25708](https://github.com/civicrm/civicrm-core/pull/25708))** -- **Use the backend theme when upgrading ([81](https://github.com/civicrm/civicrm-drupal-8/pull/81))** +- **[NFC] cleanup in `ChangeFeeSelectionTest` + ([25798](https://github.com/civicrm/civicrm-core/pull/25798))** -- **Code cleanup in HookTest ([293](https://github.com/civicrm/civicrm-wordpress/pull/293))** +- **[NFC] Minor tidy up in `MappingTest` + ([25854](https://github.com/civicrm/civicrm-core/pull/25854))** -## Miscellany +- **Remove references to deprecated `preferred_mail_format` in tests + ([25890](https://github.com/civicrm/civicrm-core/pull/25890))** + +- **[PHP8.2] Clean up in `apiv3_ParticipantTest` with view to 8.2 compatibility + ([25801](https://github.com/civicrm/civicrm-core/pull/25801))** + +- **[PHP8.2] [Test] Remove use of (often undeclared) property `_invoiceID` in + tests & one instance of `paymentProcessorID2` + ([25799](https://github.com/civicrm/civicrm-core/pull/25799))** + +- **[Test] Strictness fixes - `CiviUntTestBaseClass` + ([26011](https://github.com/civicrm/civicrm-core/pull/26011))** + +- **[TESTS] Fix some campaign cleanup + ([25996](https://github.com/civicrm/civicrm-core/pull/25996))** + +- **Strictness cleanups in test class + ([26005](https://github.com/civicrm/civicrm-core/pull/26005))** + +- **Code cleanup in HookTest + ([293](https://github.com/civicrm/civicrm-wordpress/pull/293))** + +- **Type hints & strictness fixes within tests + ([26013](https://github.com/civicrm/civicrm-core/pull/26013))** + +- **Add unit test cover for test offline mail receipt + ([25929](https://github.com/civicrm/civicrm-core/pull/25929))** + +- **Fix intermittant test fail + ([25924](https://github.com/civicrm/civicrm-core/pull/25924))** + +- **Fix Contact Import tests custom date testing, remove duplicate handling + ([25898](https://github.com/civicrm/civicrm-core/pull/25898))** + +- **APIv4 - Add 'Update' to conformanceTest + ([25674](https://github.com/civicrm/civicrm-core/pull/25674))** + +- **Fix in ContributionTest class + ([25722](https://github.com/civicrm/civicrm-core/pull/25722))** + +- **CiviUnitTestCase - More aggressive simplifications + ([25187](https://github.com/civicrm/civicrm-core/pull/25187))** + +- **CiviUnitTestCase - During teardown, ensure that we cleanup locks + ([25856](https://github.com/civicrm/civicrm-core/pull/25856))** + +- **CiviUnitTestCase (etal) - Resolve spooky interaction + ([25855](https://github.com/civicrm/civicrm-core/pull/25855))** + +- **CiviUnitTestCase - Degrade gracefully on older DBMS + ([25872](https://github.com/civicrm/civicrm-core/pull/25872))** ## Credits This release was developed by the following code authors: -AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; anthonyblond; Benjamin W; BrightMinded Ltd - Bradley Taylor; CEDC - Laryn Kragt Bakker; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove, Shane Bill; Dave D; Freeform Solutions - Herb van den Dool; Fuzion - Luke Stewart; Giant Rabbit - Anthony Nemirovsky; iXiam - Luciano Spiegel; JMA Consulting - Seamus Lee; Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie McClelland; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton +AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; +Anthony Blond; Benjamin W; BrightMinded Ltd - Bradley Taylor; CEDC - Laryn +Kragt Bakker; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; +Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove, Shane Bill; Dave D; Freeform +Solutions - Herb van den Dool; Fuzion - Luke Stewart; Giant Rabbit - Anthony +Nemirovsky; iXiam - Luciano Spiegel; JMA Consulting - Seamus Lee; Lemniscus - +Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - +Matthew Wire; Progressive Technology Project - Jamie McClelland; Third Sector +Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments: -AGH Strategies - Andie Hunt, Eli Lisseck; Agileware - Justin Freeman; Andreas Howiller; Artful Robot - Rich Lott; Blackfly Solutions - Alan Dixon; BrightMinded Ltd - Bradley Taylor; civibot[bot]; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Shane Bill; Dave D; Freeform Solutions - Herb van den Dool; Guydn; Humanists UK - Andrew West;; JMA Consulting - Joe Murray, Seamus Lee; Joinery - Allen Shaw; Korlon - Stuart Gaston; Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie McClelland; Richard Baugh; Squiffle Consulting - Aidan Saunders; SYSTOPIA - Johannes Franz; tbember; Third Sector Design - Kurund Jalmi, Michael McAndrew; WebmasterBouclier; Wikimedia Foundation - Eileen McNaughton +AGH Strategies - Eli Lisseck; Andreas Howiller; Artful Robot - Rich Lott; +Blackfly Solutions - Alan Dixon; Guydn; Humanists UK - Andrew West; JMA +Consulting - Joe Murray; Joinery - Allen Shaw; Korlon - Stuart Gaston; Richard +Baugh; Squiffle Consulting - Aidan Saunders; SYSTOPIA - Johannes Franz; Giant +Rabbit: Tiago Bember; Third Sector Design - Michael McAndrew; WebmasterBouclier ## Feedback -- 2.25.1