From 4d18a6d3882e62f4f5883ed2c57cfcfe2d646b02 Mon Sep 17 00:00:00 2001 From: Alice Frumin Date: Tue, 28 Feb 2023 22:56:11 -0500 Subject: [PATCH] [NFC] 5.59 release notes sorting and annotating --- contributor-key.yml | 2 + release-notes/5.59.0.md | 566 ++++++++++++++++++++++++++++------------ 2 files changed, 394 insertions(+), 174 deletions(-) diff --git a/contributor-key.yml b/contributor-key.yml index 951ae24dad..3e9d872252 100644 --- a/contributor-key.yml +++ b/contributor-key.yml @@ -726,6 +726,8 @@ name : Jitendra Purohit organization: Fuzion +- github : jmacarthur98 + - github : jmcclelland name : Jamie McClelland organization: Progressive Technology Project diff --git a/release-notes/5.59.0.md b/release-notes/5.59.0.md index 30cd9af25c..ffff4d031e 100644 --- a/release-notes/5.59.0.md +++ b/release-notes/5.59.0.md @@ -13,356 +13,574 @@ Released March 1, 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 -## Bugs resolved +- **Add Report Instance apiv4 + ([25226](https://github.com/civicrm/civicrm-core/pull/25226))** -### Core CiviCRM + Adds the Report Instance entity to APIv4. + +- **Add support for extension .mo in [civicrm.l10n] + ([dev/translation#76](https://lab.civicrm.org/dev/translation/-/issues/76): + [25419](https://github.com/civicrm/civicrm-core/pull/25419))** + + Allows extension "mo" files to live in the I18N resource dir. + +- **luxembourg-provices added missing provinces, updated outdated ISO code… + ([25211](https://github.com/civicrm/civicrm-core/pull/25211))** -- **Use correct var for joomla synchronizeUFMatch ([25658](https://github.com/civicrm/civicrm-core/pull/25658))** + Adds missing provinces for luxembourg, updates 3 outdated ISO codes for + Diekirch, Grevenmacher and Luxembourg provinces because after 2015 they were + changed and also changes GreveNmacher province name to Grevenmacher. -- **PEAR Exception handling - Mitigation of scenario where an import table has been deleted and the metadata is out of date ([25633](https://github.com/civicrm/civicrm-core/pull/25633))** +- **Proposal - change title for all `is_primary` fields to 'Is Primary' + ([dev/core#4096](https://lab.civicrm.org/dev/core/-/issues/4096): + [25473](https://github.com/civicrm/civicrm-core/pull/25473))** -- **Fix custom field bug on UFMatch sync ([25549](https://github.com/civicrm/civicrm-core/pull/25549))** + Renames the import field "Primary Email" to "Is Primary". -- **Add APIv4 Pledge Autocomplete ([25598](https://github.com/civicrm/civicrm-core/pull/25598))** +- **Scheduled jobs: Warning text if runInNonProductionEnvironment=TRUE + ([25307](https://github.com/civicrm/civicrm-core/pull/25307))** -- **Status Check - Tweak severity of timezone warning ([25583](https://github.com/civicrm/civicrm-core/pull/25583))** + Adds a description to inform admins about runInNonProductionEnvironment=TRUE + sending emails even if mail sending is suppressed in settings. -- **dev/core#4119 Only generate error on blank confirm_title if confirmat… ([25578](https://github.com/civicrm/civicrm-core/pull/25578))** +- **APIv4 - Support autocompletes of the Entity entity + ([25409](https://github.com/civicrm/civicrm-core/pull/25409))** -- **dev/core#4080 Fix wrong pdf format selection for invoice, when configured ([25547](https://github.com/civicrm/civicrm-core/pull/25547))** + Adds missing metadata to allow browsing API entities with the APIv4 + autocomplete select. -- **(dev/core#4109) Fix tokens like `{contact.email_primary.email}` ([25548](https://github.com/civicrm/civicrm-core/pull/25548))** +- **Enhance metadata for OptionGroups + ([25188](https://github.com/civicrm/civicrm-core/pull/25188))** -- **dev/core#4116 Add in rebuilding log table schema when modifying schema ([25555](https://github.com/civicrm/civicrm-core/pull/25555))** + Improves metadata for Option Groups. -- **CiviTestListener - Headless tests should initialize timezone ([25534](https://github.com/civicrm/civicrm-core/pull/25534))** +- **CRM_Core_BAO_CMSUser - use system specific method rather than checking + userFramework + ([dev/core#4074](https://lab.civicrm.org/dev/core/-/issues/4074): + [25323](https://github.com/civicrm/civicrm-core/pull/25323))** -- **dev/core#4068 Prevent adding in addSelectWhereClause for civicrm_group when filtering by a group as unneded for reports ([25525](https://github.com/civicrm/civicrm-core/pull/25525))** + Helps make CiviCRM more CMS agnostic. -- **Backport 25520 ([25523](https://github.com/civicrm/civicrm-core/pull/25523))** +- **Smarty Mixin - Allow extensions to enable Smarty via mixin + ([25369](https://github.com/civicrm/civicrm-core/pull/25369))** -- **[REF] Use Civi::statics in CRM_Utils_File instead of php static ([25498](https://github.com/civicrm/civicrm-core/pull/25498))** + Define a mixin, smarty-v2@1.0.0, which can be used by extensions to register + their templates/ folder. -- **[REF][PHP8.2] Remove dynamic property in CRM_Contribute_Form_ContributionPageTranslationTest ([25489](https://github.com/civicrm/civicrm-core/pull/25489))** +## Bugs resolved -- **[REF][PHP8.2] Declare properties on CRM_Member_Import_Parser_MembershipTest ([25491](https://github.com/civicrm/civicrm-core/pull/25491))** +### Core CiviCRM -- **[REF][PHP8.2] Refactor CRM_Contact_BAO_ContactType_ContactSearchTest to not use dynamic properties ([25406](https://github.com/civicrm/civicrm-core/pull/25406))** +- **Sometimes Custom fields missing on profile + ([dev/core#1984](https://lab.civicrm.org/dev/core/-/issues/1984): + [25321](https://github.com/civicrm/civicrm-core/pull/25321))** -- **(REF) CRM_Upgrade_Headless - The pre-up and post-up msgs should have same formatting ([25488](https://github.com/civicrm/civicrm-core/pull/25488))** +- **Warning: count(): Parameter must be an array or an object that implements + Countable when saving My Profile or Name and Address + ([dev/core#2301](https://lab.civicrm.org/dev/core/-/issues/2301): + [25315](https://github.com/civicrm/civicrm-core/pull/25315))** -- **[REF] Add in function to retrieve Pre Upgrade messages in headless ([25414](https://github.com/civicrm/civicrm-core/pull/25414))** +- **Cannot get Auth Code in Oauth2 from Microsoft Azure Application + ([dev/core#2559](https://lab.civicrm.org/dev/core/-/issues/2559): + [25214](https://github.com/civicrm/civicrm-core/pull/25214))** -- **5.58 ([25484](https://github.com/civicrm/civicrm-core/pull/25484))** +- **Extension cannot find its own classes during install when opcache is enabled + ([dev/core#4055](https://lab.civicrm.org/dev/core/-/issues/4055): + [25379](https://github.com/civicrm/civicrm-core/pull/25379))** -- **[REF][PHP8.2] Declare properties in CRM_Contact_BAO_ContactType_ContactTest ([25478](https://github.com/civicrm/civicrm-core/pull/25478))** +- **Running a Contact Summary report as a limited access user granted gives DB + Error: no such field + ([dev/core#4068](https://lab.civicrm.org/dev/core/-/issues/4068): + [25525](https://github.com/civicrm/civicrm-core/pull/25525))** -- **Fix typo in upgrade message ([25481](https://github.com/civicrm/civicrm-core/pull/25481))** +- **system workflow templates do not respect the selected pdf format anymore + ([dev/core#4080](https://lab.civicrm.org/dev/core/-/issues/4080): + [25547](https://github.com/civicrm/civicrm-core/pull/25547))** -- **5.58 ([25483](https://github.com/civicrm/civicrm-core/pull/25483))** +- **Regression - CiviCRM core unit tests interfere with running non-CiviCRM + tests ([dev/core#4088](https://lab.civicrm.org/dev/core/-/issues/4088): + [25415](https://github.com/civicrm/civicrm-core/pull/25415), + [25378](https://github.com/civicrm/civicrm-core/pull/25378) and + [25412](https://github.com/civicrm/civicrm-core/pull/25412))** -- **Prevent PHP warnings when no WordPress user is found ([25477](https://github.com/civicrm/civicrm-core/pull/25477))** +- **CRM_Utils_Number::formatLocaleNumeric() method throws fatal error with empty + string parameter. + ([dev/core#4097](https://lab.civicrm.org/dev/core/-/issues/4097): + [25448](https://github.com/civicrm/civicrm-core/pull/25448) and + [25462](https://github.com/civicrm/civicrm-core/pull/25462))** -- **[REF][PHP8.2] Tidy up CRM_Batch_Form_EntryTest ([25455](https://github.com/civicrm/civicrm-core/pull/25455))** +- **New `address_primary` tokens don't work + ([dev/core#4109](https://lab.civicrm.org/dev/core/-/issues/4109): + [25548](https://github.com/civicrm/civicrm-core/pull/25548))** -- **Fix exception type in upgrade snapshot ([25480](https://github.com/civicrm/civicrm-core/pull/25480))** +- **civiimport - PEAR Exception handling - Mitigation of scenario where an + import table has been deleted and the metadata is out of date + ([25633](https://github.com/civicrm/civicrm-core/pull/25633))** -- **[REF][PHP8.2] Tidy, and PHP8.2 compatiability for api_v3_CustomValueContactTypeTest ([25479](https://github.com/civicrm/civicrm-core/pull/25479))** +- **Status Check - Tweak severity of timezone warning + ([25583](https://github.com/civicrm/civicrm-core/pull/25583))** -- **simplify calculation of lifetime memberships in CRM_Price_BAO_PriceSet ([25456](https://github.com/civicrm/civicrm-core/pull/25456))** +- **Fix slow queries in snapshot process + ([25420](https://github.com/civicrm/civicrm-core/pull/25420))** -- **Fix slow queries in snapshot process ([25420](https://github.com/civicrm/civicrm-core/pull/25420))** +- **Increase timeout on imap + ([25418](https://github.com/civicrm/civicrm-core/pull/25418))** -- **dev/core#4096 Rename Primary Email to Is Primary ([25473](https://github.com/civicrm/civicrm-core/pull/25473))** +- **Ensure useful exception thrown for all Smarty errors from user strings + ([25334](https://github.com/civicrm/civicrm-core/pull/25334))** -- **Do not crash the whole SearchKit UI if one entity fails ([25433](https://github.com/civicrm/civicrm-core/pull/25433))** +- **Queues - Ensure that queue timings work, even with bad tzdata + ([25363](https://github.com/civicrm/civicrm-core/pull/25363))** -- **Add dontub to contributor-key.yml ([25475](https://github.com/civicrm/civicrm-core/pull/25475))** +- **CustomField - Fix smarty notices on field create/edit form + ([25397](https://github.com/civicrm/civicrm-core/pull/25397))** -- **Increase timeout on imap ([25418](https://github.com/civicrm/civicrm-core/pull/25418))** +- **Fix custom field bug on UFMatch sync + ([25549](https://github.com/civicrm/civicrm-core/pull/25549))** -- **5.58 to master ([25468](https://github.com/civicrm/civicrm-core/pull/25468))** +- **CustomFields - Drop unused column 'mask' + ([25396](https://github.com/civicrm/civicrm-core/pull/25396))** -- **Ensure useful exception thrown for all Smarty errors from user strings ([25334](https://github.com/civicrm/civicrm-core/pull/25334))** +- **Pass metadata values rather than convoluted array to `processCustomFields` + ([25318](https://github.com/civicrm/civicrm-core/pull/25318))** -- **php8 - don't pass null to htmlspecialchars on profile admin page ([25463](https://github.com/civicrm/civicrm-core/pull/25463))** +- **Disable extern/soap.php. Remove implementation and tests. + ([25317](https://github.com/civicrm/civicrm-core/pull/25317))** -- **dev/core#4097 - Add deprecation notice as per comments at #25448 ([25462](https://github.com/civicrm/civicrm-core/pull/25462))** + Deprecates soap integration which is no longer being used. -- **Smarty notice fix - check array key exists before querying ([25453](https://github.com/civicrm/civicrm-core/pull/25453))** +- **Fix Undefined index: name Notice in civicrm_api3_message_template_send + ([25288](https://github.com/civicrm/civicrm-core/pull/25288))** -- **(dev/core#4074) Make CRM_Core_BAO_CMSUser CMS agnostic ([25323](https://github.com/civicrm/civicrm-core/pull/25323))** +- **Standardise Type on `includedGroups` parameter + ([25330](https://github.com/civicrm/civicrm-core/pull/25330))** -- **dev/core#4097 Fix empty string $amount error ([25448](https://github.com/civicrm/civicrm-core/pull/25448))** +- **Smarty notice fix - check array key exists before querying + ([25453](https://github.com/civicrm/civicrm-core/pull/25453))** -- **Report tpl enotices fix ([25452](https://github.com/civicrm/civicrm-core/pull/25452))** +- **Do not crash the whole SearchKit UI if one entity fails + ([25433](https://github.com/civicrm/civicrm-core/pull/25433))** -- **Fix some more smarty assignments to assign even when FALSE ([25459](https://github.com/civicrm/civicrm-core/pull/25459))** +- **Fix typo in upgrade message + ([25481](https://github.com/civicrm/civicrm-core/pull/25481))** -- **Do not attempt to format custom value of empty string ([25451](https://github.com/civicrm/civicrm-core/pull/25451))** +- **Fix exception type in upgrade snapshot + ([25480](https://github.com/civicrm/civicrm-core/pull/25480))** -- **[REF][PHP8.2] Tidy up of CRM_Report_Form_Member_DetailTest ([25450](https://github.com/civicrm/civicrm-core/pull/25450))** +- **Report tpl enotices fix + ([25452](https://github.com/civicrm/civicrm-core/pull/25452))** -- **[REF][PHP8.2] Declare missing property on CRM_Utils_HookTest ([25447](https://github.com/civicrm/civicrm-core/pull/25447))** +- **Fix some more smarty assignments to assign even when FALSE + ([25459](https://github.com/civicrm/civicrm-core/pull/25459))** -- **[REF][PHP8.2] Avoid dynamic properties in CRM_Event_BAO_ParticipantTest ([25449](https://github.com/civicrm/civicrm-core/pull/25449))** +- **Do not attempt to format custom value of empty string + ([25451](https://github.com/civicrm/civicrm-core/pull/25451))** -- **[REF][PHP8.2] Fix Dynamic property payment instrument id on back offi… ([25426](https://github.com/civicrm/civicrm-core/pull/25426))** +### CiviCase -- **Fix display of custom data in cases ([25440](https://github.com/civicrm/civicrm-core/pull/25440))** +- **Undefined array keys on case activity view + ([25381](https://github.com/civicrm/civicrm-core/pull/25381))** -- **dev/translation#76 Allow extension gettext mo files to live in the I18N resource dir ([25419](https://github.com/civicrm/civicrm-core/pull/25419))** +- **Undefined `accessKey` on case activity view + ([25382](https://github.com/civicrm/civicrm-core/pull/25382))** -- **(dev/backdrop#77) Fix fatal error with password validation ([25371](https://github.com/civicrm/civicrm-core/pull/25371))** +- **Fix display of custom data in cases + ([25440](https://github.com/civicrm/civicrm-core/pull/25440))** -- **APIv4 - Support autocompletes of the Entity entity ([25409](https://github.com/civicrm/civicrm-core/pull/25409))** +### CiviContribute -- **[REF][PHP8.2] Declare system property in tests ([25401](https://github.com/civicrm/civicrm-core/pull/25401))** +- **Dummy payment processor should be flagged as such on LIVE page + ([dev/core#3844](https://lab.civicrm.org/dev/core/-/issues/3844): + [25282](https://github.com/civicrm/civicrm-core/pull/25282))** -- **(NFC) Speed up random tests by 55-60% ([25439](https://github.com/civicrm/civicrm-core/pull/25439))** +- **Fix failure when changing processor type on add Payment Processor screen + ([25340](https://github.com/civicrm/civicrm-core/pull/25340))** -- **[REF][PHP8.2] Declare file property in CRM_Extension_InfoTest ([25405](https://github.com/civicrm/civicrm-core/pull/25405))** +- **avoid empty error message when submitting PCP page. + ([25277](https://github.com/civicrm/civicrm-core/pull/25277))** -- **[REF][PHP8.2] Declare properties in CRM_Activity_Page_AJAXTest ([25443](https://github.com/civicrm/civicrm-core/pull/25443))** +- **Searchkit not loading pledge ID's + ([dev/core#4131](https://lab.civicrm.org/dev/core/-/issues/4131): + [25598](https://github.com/civicrm/civicrm-core/pull/25598))** -- **[REF][PHP8.2] Refactor CRM_Case_BAO_CaseTest to use const ([25442](https://github.com/civicrm/civicrm-core/pull/25442))** +- **Paypal cancel/notify/return URLs + ([25376](https://github.com/civicrm/civicrm-core/pull/25376))** -- **5.58 ([25425](https://github.com/civicrm/civicrm-core/pull/25425))** + Fixes Paypal standard on Drupal9 Webform and any other offsite payment + processor that uses the standard methods. -- **dev/core#4088 Convert api4 helper functionality to a trait & make available ([25412](https://github.com/civicrm/civicrm-core/pull/25412))** +### CiviEvent -- **Update polyfill packages ([25417](https://github.com/civicrm/civicrm-core/pull/25417))** +- **"Please enter a Title for the registration Confirmation Page" when saving + event with no confirmation page + ([dev/core#4119](https://lab.civicrm.org/dev/core/-/issues/4119): + [25578](https://github.com/civicrm/civicrm-core/pull/25578))** -- **CaseActivityTest - Fix quiet regressions ([25416](https://github.com/civicrm/civicrm-core/pull/25416))** +- **Assign participant_status_id in both edit/create modes + ([dev/core#4084](https://lab.civicrm.org/dev/core/-/issues/4084): + [25366](https://github.com/civicrm/civicrm-core/pull/25366))** -- **CustomFields - Drop unused column 'mask' ([25396](https://github.com/civicrm/civicrm-core/pull/25396))** + Previously only assigned in edit mode. -- **[NFC] Incorrect docblock in CRM_Contribute_PseudoConstant::contributionPage() ([25398](https://github.com/civicrm/civicrm-core/pull/25398))** +- **API v.3 Event.create used for update will change Event Template to ordinary + Event ([dev/core#4081](https://lab.civicrm.org/dev/core/-/issues/4081): + [25356](https://github.com/civicrm/civicrm-core/pull/25356))** -- **[REF][PHP8.2] Declare processor property in CRM_Case_XMLProcessorTest ([25407](https://github.com/civicrm/civicrm-core/pull/25407))** +- **Original value is displayed after setting custom event field blank + ([dev/core#2985](https://lab.civicrm.org/dev/core/-/issues/2985): + [25229](https://github.com/civicrm/civicrm-core/pull/25229))** -- **(dev/core#4088) ClassScanner - Move test registration ([25415](https://github.com/civicrm/civicrm-core/pull/25415))** +- **Manage Events - Configure options have class disabled if no settings + entered - causes Bootstrap issues + ([dev/core#2542](https://lab.civicrm.org/dev/core/-/issues/2542): + [24665](https://github.com/civicrm/civicrm-core/pull/24665))** -- **[REF] Use civi::statics to get activityinfos in case activity view ([25404](https://github.com/civicrm/civicrm-core/pull/25404))** +- **Unconditionally assign `registerClosed` on event info page + ([25251](https://github.com/civicrm/civicrm-core/pull/25251))** -- **[REF] Regen following #25211 ([25413](https://github.com/civicrm/civicrm-core/pull/25413))** +### Backdrop Integration -- **luxembourg-provices added missing provices, updated outdated ISO code… ([25211](https://github.com/civicrm/civicrm-core/pull/25211))** +- **Bug: when adding CMS user with a profile, get a fatal error when passwords + get verified for strength + ([dev/backdrop#77](https://lab.civicrm.org/dev/backdrop/-/issues/77): + [25371](https://github.com/civicrm/civicrm-core/pull/25371))** -- **Smarty Mixin - Allow extensions to enable Smarty via mixin ([25369](https://github.com/civicrm/civicrm-core/pull/25369))** +### Drupal Integration -- **CustomField - Fix smarty notices on field create/edit form ([25397](https://github.com/civicrm/civicrm-core/pull/25397))** +- **Drupal 8 profile validation not finding the right profile when validating + submission on CMS user tabs + ([dev/drupal#153](https://lab.civicrm.org/dev/drupal/-/issues/153): + [77](https://github.com/civicrm/civicrm-drupal-8/pull/77) and + [25336](https://github.com/civicrm/civicrm-core/pull/25336))** -- **[REF][PHP8.2] Avoid dynamic property in ReportTest ([25399](https://github.com/civicrm/civicrm-core/pull/25399))** +### Joomla Integration -- **dev/core#2985 Original value is displayed after setting custom event field blank ([25229](https://github.com/civicrm/civicrm-core/pull/25229))** +- **[Joomla 4.0] Cannot access/set user permissions + ([dev/joomla#35](https://lab.civicrm.org/dev/joomla/-/issues/35): + [67](https://github.com/civicrm/civicrm-joomla/pull/67))** -- **5.58 ([25394](https://github.com/civicrm/civicrm-core/pull/25394))** +- **Use correct var for joomla synchronizeUFMatch + ([25658](https://github.com/civicrm/civicrm-core/pull/25658))** -- **Undefined array keys on case activity view ([25381](https://github.com/civicrm/civicrm-core/pull/25381))** +### WordPress Integration -- **[REF][PHP8.2] Fix Deprecated Dynamic class properties in Legacy custo… ([25393](https://github.com/civicrm/civicrm-core/pull/25393))** +- **Prevent PHP warnings when no WordPress user is found + ([25477](https://github.com/civicrm/civicrm-core/pull/25477))** -- **Make otherwise unused form function private ([25389](https://github.com/civicrm/civicrm-core/pull/25389))** +## Miscellany -- **(dev/core#4055) ClassLoader - Use separate cache IDs for different configurations of modules ([25379](https://github.com/civicrm/civicrm-core/pull/25379))** +- **Update class_image.php for PHP8 + ([358](https://github.com/civicrm/civicrm-packages/pull/358))** -- **Undefined `accessKey` on case activity view ([25382](https://github.com/civicrm/civicrm-core/pull/25382))** +- **Update polyfill packages + ([25417](https://github.com/civicrm/civicrm-core/pull/25417))** -- **Paypal cancel/notify/return URLs ([25376](https://github.com/civicrm/civicrm-core/pull/25376))** +- **simplify calculation of lifetime memberships in CRM_Price_BAO_PriceSet + ([25456](https://github.com/civicrm/civicrm-core/pull/25456))** -- **[REF][PHP8.2] Avoid dynamic property in CRM_SMS_ProviderTest ([25388](https://github.com/civicrm/civicrm-core/pull/25388))** +- **Make otherwise unused form function private + ([25389](https://github.com/civicrm/civicrm-core/pull/25389))** -- **5.58 ([25386](https://github.com/civicrm/civicrm-core/pull/25386))** +- **Bump dompdf/dompdf from 2.0.2 to 2.0.3 + ([25523](https://github.com/civicrm/civicrm-core/pull/25523))** -- **Enhance metadata for OptionGroups ([25188](https://github.com/civicrm/civicrm-core/pull/25188))** +- **Deprecate meaningless parameter + ([25259](https://github.com/civicrm/civicrm-core/pull/25259))** -- **(NFC) Mixin Tests - Add more type-hints ([25384](https://github.com/civicrm/civicrm-core/pull/25384))** +- **Greenwich - Run `civix upgrade` + ([25249](https://github.com/civicrm/civicrm-core/pull/25249))** -- **dev/core#4088 Superficial cleanup on Api4testBase ([25378](https://github.com/civicrm/civicrm-core/pull/25378))** +- **Flexmailer - Re-run civix upgrade + ([25357](https://github.com/civicrm/civicrm-core/pull/25357))** -- **[REF][PHP8.2] Fix Eway Single Payment Processor extension for dynamic… ([25354](https://github.com/civicrm/civicrm-core/pull/25354))** +- **Run civix upgrade on oauth + ([25358](https://github.com/civicrm/civicrm-core/pull/25358))** -- **[REF][PHP8.2] Use const instead of dynamic property: CRM_Contribute_BAO_ContributionPageTest ([25372](https://github.com/civicrm/civicrm-core/pull/25372))** +- **Civix upgrade on event cart + ([25361](https://github.com/civicrm/civicrm-core/pull/25361))** -- **[REF][PHP8.2] Declare $file property in CRM_Utils_ZipTest ([25373](https://github.com/civicrm/civicrm-core/pull/25373))** +- **Civix upgrade message_admin + ([25359](https://github.com/civicrm/civicrm-core/pull/25359))** -- **[REF][PHP8.2] Avoid dynamic properties in api_v3_EventTest ([25375](https://github.com/civicrm/civicrm-core/pull/25375))** +- **Run Civix upgrade on afform/core with template patch applied + ([25250](https://github.com/civicrm/civicrm-core/pull/25250))** -- **Php8.2 Contact import Map Field screen - remove undefined property usage (mutliple) ([25298](https://github.com/civicrm/civicrm-core/pull/25298))** +- **Remove code for legacy php versions - `assign_by_ref` with an object + ([25247](https://github.com/civicrm/civicrm-core/pull/25247))** -- **Pass metadata values rather than convoluted array to `processCustomFields` ([25318](https://github.com/civicrm/civicrm-core/pull/25318))** +- **Remove a couple of legacy uses of `contributeMode` + ([25239](https://github.com/civicrm/civicrm-core/pull/25239))** -- **Remove a couple of legacy uses of `contributeMode` ([25239](https://github.com/civicrm/civicrm-core/pull/25239))** +- **Remove code deprecated in 2019 + ([25262](https://github.com/civicrm/civicrm-core/pull/25262))** -- **Deprecate meaningless parameter ([25259](https://github.com/civicrm/civicrm-core/pull/25259))** +- **Remove unused method in CRM_Contact_Form_Task_PDFLetterCommon + ([25326](https://github.com/civicrm/civicrm-core/pull/25326))** -- **Civix upgrade on event cart ([25361](https://github.com/civicrm/civicrm-core/pull/25361))** +- **added myself to contributor-key.yml + ([25314](https://github.com/civicrm/civicrm-core/pull/25314))** -- **(dev/core#4084) Assign participant_status_id in both edit/create modes ([25366](https://github.com/civicrm/civicrm-core/pull/25366))** +- **Add dontub to contributor-key.yml + ([25475](https://github.com/civicrm/civicrm-core/pull/25475))** -- **Greenwich - Run `civix upgrade` ([25249](https://github.com/civicrm/civicrm-core/pull/25249))** +- **Remove error suppression operator from test + ([25344](https://github.com/civicrm/civicrm-core/pull/25344))** -- **Flexmailer - Re-run civix upgrade ([25357](https://github.com/civicrm/civicrm-core/pull/25357))** +- **typo: dlass --> class + ([25308](https://github.com/civicrm/civicrm-core/pull/25308))** -- **dev/core#2542 Avoid collision with Bootstrap for .disabled links ([24665](https://github.com/civicrm/civicrm-core/pull/24665))** +- **PHP 8.1 compatibility when enabling logging + ([25339](https://github.com/civicrm/civicrm-core/pull/25339))** -- **Run civix upgrade on oauth ([25358](https://github.com/civicrm/civicrm-core/pull/25358))** +- **Php 8.2 fix undefined property, move test to appropriate extension + ([25313](https://github.com/civicrm/civicrm-core/pull/25313))** -- **[REF][PHP8.2] Fix creation of dynamic properties in Payflow Pro exten… ([25355](https://github.com/civicrm/civicrm-core/pull/25355))** +- **php8 - don't pass null to htmlspecialchars on profile admin page + ([25463](https://github.com/civicrm/civicrm-core/pull/25463))** -- **(NFC) Another batch of PHPDoc fixes ([25351](https://github.com/civicrm/civicrm-core/pull/25351))** +- **Php8.2 Contact import Map Field screen - remove undefined property usage + (mutliple) ([25298](https://github.com/civicrm/civicrm-core/pull/25298))** -- **Queues - Ensure that queue timings work, even with bad tzdata ([25363](https://github.com/civicrm/civicrm-core/pull/25363))** +- **Php 8.2 - undefined property fix in test class + ([25332](https://github.com/civicrm/civicrm-core/pull/25332))** -- **Remove code for legacy php versions - `assign_by_ref` with an object ([25247](https://github.com/civicrm/civicrm-core/pull/25247))** +- **php8.2 - Fix undefined property, general test cleanup + ([25312](https://github.com/civicrm/civicrm-core/pull/25312))** -- **(NFC) Cleanup Gitlab references ([25365](https://github.com/civicrm/civicrm-core/pull/25365))** +- **[REF][PHP8.2] Avoid dynamic property in ReportTest + ([25399](https://github.com/civicrm/civicrm-core/pull/25399))** -- **Civix upgrade message_admin ([25359](https://github.com/civicrm/civicrm-core/pull/25359))** +- **[REF][PHP8.2] Fix Eway Single Payment Processor extension for dynamic + properties ([25354](https://github.com/civicrm/civicrm-core/pull/25354))** -- **Remove code deprecated in 2019 ([25262](https://github.com/civicrm/civicrm-core/pull/25262))** +- **[REF][PHP8.2] Use const instead of dynamic property: + CRM_Contribute_BAO_ContributionPageTest + ([25372](https://github.com/civicrm/civicrm-core/pull/25372))** -- **(REF) Tidy up properties in CRM_Core_ResourcesTest ([25349](https://github.com/civicrm/civicrm-core/pull/25349))** +- **[REF][PHP8.2] Fix Deprecated Dynamic class properties in Legacy custom + searches extension + ([25393](https://github.com/civicrm/civicrm-core/pull/25393))** -- **dev/core#4081 Ensure that if using the API to update an event templat… ([25356](https://github.com/civicrm/civicrm-core/pull/25356))** +- **[REF][PHP8.2] Declare processor property in CRM_Case_XMLProcessorTest + ([25407](https://github.com/civicrm/civicrm-core/pull/25407))** -- **Disable extern/soap.php. Remove implementation and tests. ([25317](https://github.com/civicrm/civicrm-core/pull/25317))** +- **[REF][PHP8.2] Avoid dynamic property in CRM_SMS_ProviderTest + ([25388](https://github.com/civicrm/civicrm-core/pull/25388))** -- **[REF][PHP8.2] Avoid dynamic properties in module tests ([25348](https://github.com/civicrm/civicrm-core/pull/25348))** +- **[REF][PHP8.2] Declare $file property in CRM_Utils_ZipTest + ([25373](https://github.com/civicrm/civicrm-core/pull/25373))** -- **(REF) Tidy up of CRM_Extension_ManagerTest ([25350](https://github.com/civicrm/civicrm-core/pull/25350))** +- **[REF][PHP8.2] Avoid dynamic properties in api_v3_EventTest + ([25375](https://github.com/civicrm/civicrm-core/pull/25375))** -- **[REF][PHP8.2] Fix PHP8.2 creation of dynamic properties in the elavon… ([25353](https://github.com/civicrm/civicrm-core/pull/25353))** +- **[REF][PHP8.2] Avoid dynamic properties in module tests + ([25348](https://github.com/civicrm/civicrm-core/pull/25348))** -- **Scheduled jobs: Warnting text if runInNonProductionEnvironment=TRUE ([25307](https://github.com/civicrm/civicrm-core/pull/25307))** +- **[REF][PHP8.2] Fix PHP8.2 creation of dynamic properties in the elavon tests + and Payment Processor class + ([25353](https://github.com/civicrm/civicrm-core/pull/25353))** -- **[REF][PHP8.2] Avoid dynamic properties in api_v3_GroupOrganizationTest ([25352](https://github.com/civicrm/civicrm-core/pull/25352))** +- **[REF][PHP8.2] Avoid dynamic properties in api_v3_GroupOrganizationTest + ([25352](https://github.com/civicrm/civicrm-core/pull/25352))** -- **[REF][PHP8.2] Avoid dynamic properties in api_v3_ContactTypeTest ([25342](https://github.com/civicrm/civicrm-core/pull/25342))** +- **[REF][PHP8.2] Avoid dynamic properties in api_v3_ContactTypeTest + ([25342](https://github.com/civicrm/civicrm-core/pull/25342))** -- **[REF][PHP8.2] Avoid dynamic properties in CRM_Contact_BAO_ContactType_RelationshipTest ([25347](https://github.com/civicrm/civicrm-core/pull/25347))** +- **[REF][PHP8.2] Avoid dynamic properties in + CRM_Contact_BAO_ContactType_RelationshipTest + ([25347](https://github.com/civicrm/civicrm-core/pull/25347))** -- **[REF][PHP8.2] Move to standard varaibles in CRM_Price_BAO_PriceFieldValueTest to avoid dynamic properties ([25343](https://github.com/civicrm/civicrm-core/pull/25343))** +- **[REF][PHP8.2] Move to standard varaibles in + CRM_Price_BAO_PriceFieldValueTest to avoid dynamic properties + ([25343](https://github.com/civicrm/civicrm-core/pull/25343))** -- **5.58 ([25346](https://github.com/civicrm/civicrm-core/pull/25346))** +- **[REF][PHP8.2] Use const instead of dynamic property api_v3_CaseTypeTest + ([25345](https://github.com/civicrm/civicrm-core/pull/25345))** -- **[REF][PHP8.2] Use const instead of dynamic property api_v3_CaseTypeTest ([25345](https://github.com/civicrm/civicrm-core/pull/25345))** +- **[REF][PHP8.2] Avoid dynamic properties in CRM_Case_XMLProcessor_ProcessTest + ([25325](https://github.com/civicrm/civicrm-core/pull/25325))** -- **Remove error suppression operator from test ([25344](https://github.com/civicrm/civicrm-core/pull/25344))** +- **[REF][PHP8.2] Fix creation of dynamic properties in Payflow Pro extension + ([25355](https://github.com/civicrm/civicrm-core/pull/25355))** -- **Fix failure when changing processor type on add Payment Processor screen ([25340](https://github.com/civicrm/civicrm-core/pull/25340))** +- **[REF][PHP8.2] Tidy up of CRM_Report_Form_Member_DetailTest + ([25450](https://github.com/civicrm/civicrm-core/pull/25450))** -- **Standardise Type on `includedGroups` parameter ([25330](https://github.com/civicrm/civicrm-core/pull/25330))** +- **[REF][PHP8.2] Declare missing property on CRM_Utils_HookTest + ([25447](https://github.com/civicrm/civicrm-core/pull/25447))** -- **PHP 8.1 compatibility when enabling logging ([25339](https://github.com/civicrm/civicrm-core/pull/25339))** +- **[REF][PHP8.2] Avoid dynamic properties in CRM_Event_BAO_ParticipantTest + ([25449](https://github.com/civicrm/civicrm-core/pull/25449))** -- **Php 8.2 - undefined property fix in test class ([25332](https://github.com/civicrm/civicrm-core/pull/25332))** +- **[REF][PHP8.2] Fix Dynamic property payment instrument id on back office + contribution form + ([25426](https://github.com/civicrm/civicrm-core/pull/25426))** -- **dev/core#1984 fix custom fields sometimes missing from profiles ([25321](https://github.com/civicrm/civicrm-core/pull/25321))** +- **[REF][PHP8.2] Tidy up CRM_Batch_Form_EntryTest + ([25455](https://github.com/civicrm/civicrm-core/pull/25455))** -- **(REF) Fix field name when doing DAO find in MergerTest ([25337](https://github.com/civicrm/civicrm-core/pull/25337))** +- **[REF][PHP8.2] Tidy, and PHP8.2 compatibility for + api_v3_CustomValueContactTypeTest + ([25479](https://github.com/civicrm/civicrm-core/pull/25479))** -- **NFC superficial prelminary cleanup in test class ([25333](https://github.com/civicrm/civicrm-core/pull/25333))** +- **[REF][PHP8.2] Declare system property in tests + ([25401](https://github.com/civicrm/civicrm-core/pull/25401))** -- **dev/drupal#153 include name when fetching UFGroups so validation can use it ([25336](https://github.com/civicrm/civicrm-core/pull/25336))** +- **[REF][PHP8.2] Declare file property in CRM_Extension_InfoTest + ([25405](https://github.com/civicrm/civicrm-core/pull/25405))** -- **php8.2 - Fix undefined property, general test cleanup ([25312](https://github.com/civicrm/civicrm-core/pull/25312))** +- **[REF][PHP8.2] Declare properties in CRM_Activity_Page_AJAXTest + ([25443](https://github.com/civicrm/civicrm-core/pull/25443))** -- **[Ref] MembershipView page - Remove redundant financialacl check ([23230](https://github.com/civicrm/civicrm-core/pull/23230))** +- **[REF][PHP8.2] Refactor CRM_Case_BAO_CaseTest to use const + ([25442](https://github.com/civicrm/civicrm-core/pull/25442))** -- **Remove unused method in CRM_Contact_Form_Task_PDFLetterCommon ([25326](https://github.com/civicrm/civicrm-core/pull/25326))** +- **[REF][PHP8.2] Remove dynamic property in + CRM_Contribute_Form_ContributionPageTranslationTest + ([25489](https://github.com/civicrm/civicrm-core/pull/25489))** -- **[REF][PHP8.2] Avoid dynamic properties in CRM_Case_XMLProcessor_ProcessTest ([25325](https://github.com/civicrm/civicrm-core/pull/25325))** +- **[REF][PHP8.2] Declare properties on CRM_Member_Import_Parser_MembershipTest + ([25491](https://github.com/civicrm/civicrm-core/pull/25491))** -- **(REF) Tidy-up unreachable return ([25324](https://github.com/civicrm/civicrm-core/pull/25324))** +- **[REF][PHP8.2] Refactor CRM_Contact_BAO_ContactType_ContactSearchTest to not + use dynamic properties + ([25406](https://github.com/civicrm/civicrm-core/pull/25406))** -- **Add Report Instance apiv4 ([25226](https://github.com/civicrm/civicrm-core/pull/25226))** +- **[REF][PHP8.2] Declare properties in CRM_Contact_BAO_ContactType_ContactTest + ([25478](https://github.com/civicrm/civicrm-core/pull/25478))** -- **(dev/core#2301) Profiles - Add Drupal 8+ specific check and extract to CRM_Utils_System ([25315](https://github.com/civicrm/civicrm-core/pull/25315))** +- **[REF][PHP8.2] Avoid dynamic properties in queue tests + ([25299](https://github.com/civicrm/civicrm-core/pull/25299))** -- **5.58 ([25319](https://github.com/civicrm/civicrm-core/pull/25319))** +- **[REF][PHP8.2] Avoid dynamic properties in CRM_Core_I18n_Form + ([25297](https://github.com/civicrm/civicrm-core/pull/25297))** -- **Php 8.2 fix undefined property, move test to appropriate extension ([25313](https://github.com/civicrm/civicrm-core/pull/25313))** +- **[REF][PHP8.2] Avoid dynamic properties in api_v3_NoteTest + ([25310](https://github.com/civicrm/civicrm-core/pull/25310))** -- **added myself to contributor-key.yml ([25314](https://github.com/civicrm/civicrm-core/pull/25314))** +- **[REF][PHP8.2] Avoid dynamic properties in CRM_Contact_Page_DedupeException + ([25301](https://github.com/civicrm/civicrm-core/pull/25301))** -- **[NFC] Remove broken test ([25279](https://github.com/civicrm/civicrm-core/pull/25279))** +- **[REF][PHP8.2] Avoid dynamic properties in CRM_Case_Form_CaseView + ([25292](https://github.com/civicrm/civicrm-core/pull/25292))** -- **typo: dlass --> class ([25308](https://github.com/civicrm/civicrm-core/pull/25308))** +- **[REF][PHP8.2] Avoid dynamic properties in CRM_Extension_Container_Static + ([25311](https://github.com/civicrm/civicrm-core/pull/25311))** -- **[REF][PHP8.2] Avoid dynamic properties in api_v3_NoteTest ([25310](https://github.com/civicrm/civicrm-core/pull/25310))** +- **[REF] Use civi::statics to get activityinfos in case activity view + ([25404](https://github.com/civicrm/civicrm-core/pull/25404))** -- **[REF][PHP8.2] Avoid dynamic properties in CRM_Contact_Page_DedupeException ([25301](https://github.com/civicrm/civicrm-core/pull/25301))** +- **[REF] Regen following #25211 + ([25413](https://github.com/civicrm/civicrm-core/pull/25413))** -- **[REF][PHP8.2] Avoid dynamic properties in CRM_Extension_Container_Static ([25311](https://github.com/civicrm/civicrm-core/pull/25311))** +- **(REF) Tidy up properties in CRM_Core_ResourcesTest + ([25349](https://github.com/civicrm/civicrm-core/pull/25349))** -- **[REF] [Merge custom fields] Copy complex function into merger class, ready to disentangle as little shared code is really used ([25219](https://github.com/civicrm/civicrm-core/pull/25219))** +- **(REF) Tidy up of CRM_Extension_ManagerTest + ([25350](https://github.com/civicrm/civicrm-core/pull/25350))** -- **Run Civix upgrade on afform/core with template patch applied ([25250](https://github.com/civicrm/civicrm-core/pull/25250))** +- **(REF) Fix field name when doing DAO find in MergerTest + ([25337](https://github.com/civicrm/civicrm-core/pull/25337))** -- **5.58 to master ([25304](https://github.com/civicrm/civicrm-core/pull/25304))** +- **(REF) Tidy-up unreachable return + ([25324](https://github.com/civicrm/civicrm-core/pull/25324))** -- **[REF][PHP8.2] Avoid dynamic properties in queue tests ([25299](https://github.com/civicrm/civicrm-core/pull/25299))** +- **[Ref] MembershipView page - Remove redundant financialacl check + ([23230](https://github.com/civicrm/civicrm-core/pull/23230))** -- **[REF][PHP8.2] Avoid dynamic properties in CRM_Core_I18n_Form ([25297](https://github.com/civicrm/civicrm-core/pull/25297))** +- **[REF] Use Civi::statics in CRM_Utils_File instead of php static + ([25498](https://github.com/civicrm/civicrm-core/pull/25498))** -- **(dev/core#3844) Dummy payment processor should be flagged as such on … ([25282](https://github.com/civicrm/civicrm-core/pull/25282))** +- **(REF) CRM_Upgrade_Headless - The pre-up and post-up msgs should have same + formatting ([25488](https://github.com/civicrm/civicrm-core/pull/25488))** -- **(NFC) Reference classes with correct case ([25295](https://github.com/civicrm/civicrm-core/pull/25295))** +- **[REF] Add in function to retrieve Pre Upgrade messages in headless + ([25414](https://github.com/civicrm/civicrm-core/pull/25414))** -- **(REF) Remove _prefElement dynamic property ([25293](https://github.com/civicrm/civicrm-core/pull/25293))** +- **[REF] Disable Soap wp reset options + ([288](https://github.com/civicrm/civicrm-wordpress/pull/288))** -- **[REF][PHP8.2] Avoid dynamic properties in CRM_Case_Form_CaseView ([25292](https://github.com/civicrm/civicrm-core/pull/25292))** +- **(REF) Remove _prefElement dynamic property + ([25293](https://github.com/civicrm/civicrm-core/pull/25293))** -- **dev/core#2559 Support tenancy in OAuth providers ([25214](https://github.com/civicrm/civicrm-core/pull/25214))** +- **[REF] Upgrade Smarty to 2.6.32 + ([359](https://github.com/civicrm/civicrm-packages/pull/359))** -- **Fix Undefined index: name Notice in civicrm_api3_message_template_send ([25288](https://github.com/civicrm/civicrm-core/pull/25288))** +- **[REF] [Merge custom fields] Copy complex function into merger class, ready + to disentangle as little shared code is really used + ([25219](https://github.com/civicrm/civicrm-core/pull/25219))** -- **5.58 ([25290](https://github.com/civicrm/civicrm-core/pull/25290))** +- **CaseActivityTest - Fix quiet regressions + ([25416](https://github.com/civicrm/civicrm-core/pull/25416))** -- **avoid empty error message when submitting PCP page. ([25277](https://github.com/civicrm/civicrm-core/pull/25277))** +- **[NFC/Unit tests] Deprecated theme in unit test base class + ([76](https://github.com/civicrm/civicrm-drupal-8/pull/76))** -- **[NFC] Test classname should match filename ([25283](https://github.com/civicrm/civicrm-core/pull/25283))** +- **NFC - Update tested up to value for WP sites + ([287](https://github.com/civicrm/civicrm-wordpress/pull/287))** -- **Unconditionally assign `registerClosed` on event info page ([25251](https://github.com/civicrm/civicrm-core/pull/25251))** +- **(NFC) Another batch of PHPDoc fixes + ([25351](https://github.com/civicrm/civicrm-core/pull/25351))** -- **[NFC/Unit tests] Deprecated theme in unit test base class ([76](https://github.com/civicrm/civicrm-drupal-8/pull/76))** +- **(NFC) Cleanup Gitlab references + ([25365](https://github.com/civicrm/civicrm-core/pull/25365))** -- **dev/drupal#153 get UFGroup name for validate method ([77](https://github.com/civicrm/civicrm-drupal-8/pull/77))** +- **(NFC) Speed up random tests by 55-60% + ([25439](https://github.com/civicrm/civicrm-core/pull/25439))** -- **NFC - Update tested up to value for WP sites ([287](https://github.com/civicrm/civicrm-wordpress/pull/287))** +- **[NFC] Incorrect docblock in + CRM_Contribute_PseudoConstant::contributionPage() + ([25398](https://github.com/civicrm/civicrm-core/pull/25398))** -- **[REF] Disable Soap wp reset options ([288](https://github.com/civicrm/civicrm-wordpress/pull/288))** +- **CiviTestListener - Headless tests should initialize timezone + ([25534](https://github.com/civicrm/civicrm-core/pull/25534))** -- **dev/joomla#35: J4 permission fix ([67](https://github.com/civicrm/civicrm-joomla/pull/67))** +- **(NFC) Mixin Tests - Add more type-hints + ([25384](https://github.com/civicrm/civicrm-core/pull/25384))** -- **[REF] Upgrade Smarty to 2.6.32 ([359](https://github.com/civicrm/civicrm-packages/pull/359))** +- **NFC superficial prelminary cleanup in test class + ([25333](https://github.com/civicrm/civicrm-core/pull/25333))** -- **Update class_image.php for PHP8 ([358](https://github.com/civicrm/civicrm-packages/pull/358))** +- **[NFC] Test classname should match filename + ([25283](https://github.com/civicrm/civicrm-core/pull/25283))** -## Miscellany +- **[NFC] Remove broken test + ([25279](https://github.com/civicrm/civicrm-core/pull/25279))** + +- **(NFC) Reference classes with correct case + ([25295](https://github.com/civicrm/civicrm-core/pull/25295))** ## Credits This release was developed by the following code authors: -AGH Strategies - Alice Frumin, Andie Hunt; BrightMinded Ltd - Bradley Taylor; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; dependabot[bot]; Freeform Solutions - Herb van den Dool; jmacarthur98; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Megaphone Technology Consulting - Jon Goldberg; Michael-Labriola; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie McClelland; redcuillin; Squiffle Consulting - Aidan Saunders; Stephen Palmstrom; SYSTOPIA - Johannes Franz; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green +AGH Strategies - Alice Frumin, Andie Hunt; BrightMinded Ltd - Bradley Taylor; +Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, +Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; +Freeform Solutions - Herb van den Dool; jmacarthur98; JMA Consulting - Monish +Deb, Seamus Lee; John Kingsnorth; Megaphone Technology Consulting - Jon +Goldberg; Michael-Labriola; MJW Consulting - Matthew Wire; Progressive +Technology Project - Jamie McClelland; redcuillin; Squiffle Consulting - Aidan +Saunders; Stephen Palmstrom; SYSTOPIA - Johannes Franz; Tadpole Collective - +Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton; Wildsight - Lars +Sanders-Green Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments: -Artful Robot - Rich Lott; Australian Greens - Andrew Cormick-Dockery; Betty Dolfing; BrightMinded Ltd - Bradley Taylor; Christian Wach; civibot[bot]; CiviCoop - Klaas Eikelboom; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Freeform Solutions - Herb van den Dool; JMA Consulting - Joe Murray, Monish Deb, Seamus Lee; John Kingsnorth; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Nicol Wistreich; Squiffle Consulting - Aidan Saunders; Stephen Palmstrom; SYSTOPIA - Johannes Franz; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green +Artful Robot - Rich Lott; Australian Greens - Andrew Cormick-Dockery; Betty +Dolfing; CiviCoop - Klaas Eikelboom; JMA Consulting - Joe Murray; Nicol +Wistreich ## Feedback -- 2.25.1