From 8d4ae08df51ae7ea1ec56fbd86af661feb1d9970 Mon Sep 17 00:00:00 2001 From: Alice Frumin Date: Fri, 13 Jan 2023 22:45:39 -0500 Subject: [PATCH] [NFC] First Pass 5.58 Release Notes --- contributor-key.yml | 7 +- release-notes/5.58.0.md | 309 +++++++++++++++++++++++++++------------- 2 files changed, 211 insertions(+), 105 deletions(-) diff --git a/contributor-key.yml b/contributor-key.yml index 366e1e5425..5803c33797 100644 --- a/contributor-key.yml +++ b/contributor-key.yml @@ -488,9 +488,6 @@ - name : Fabian Schuttenberg organization: Systopia -- name : Fabian Schuttenberg - organization: Systopia - - name : Fatih Ateş - name : Fedor Khodkov @@ -744,6 +741,10 @@ name : John Twyman organization: Australian Greens +- github : jofranz + organization: Systopia + name : Johannes + - github : jorich-2000 name : Jonathan Richardson diff --git a/release-notes/5.58.0.md b/release-notes/5.58.0.md index 5e56d5889d..446e03e2ec 100644 --- a/release-notes/5.58.0.md +++ b/release-notes/5.58.0.md @@ -14,212 +14,317 @@ Released February 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 - ### Core CiviCRM -- **Fix `cv` failure on J3. ([25320](https://github.com/civicrm/civicrm-core/pull/25320))** +- **Support DedupeRules as Managed entities + ([25227](https://github.com/civicrm/civicrm-core/pull/25227))** -- **5.57.0 quotes typo: security 2x double quotes to 1x double quotes ([25316](https://github.com/civicrm/civicrm-core/pull/25316))** + Adds support for Dedupe Rules as managed entities. -- **AssetBuilder - Fix `testInvalid()` failure. Switch to JWT. ([25305](https://github.com/civicrm/civicrm-core/pull/25305))** +- **Add search/display details to searchKitTasks hook - allows for eg. + filtering actions by search display + ([25123](https://github.com/civicrm/civicrm-core/pull/25123))** -- **Status Check - Raise severity of the check for signing keys ([25285](https://github.com/civicrm/civicrm-core/pull/25285))** + Improves the searchKitTasks hook by making details regarding the search + display available. -- **Fix Contributions listing crash due to getLineItemTitle returning null ([25300](https://github.com/civicrm/civicrm-core/pull/25300))** +- **Add Option Group descriptions from templates/CRM/Admin/Page/Options.tpl + ([25143](https://github.com/civicrm/civicrm-core/pull/25143))** -- **searchkit - fix broken update task in dropdown ([25289](https://github.com/civicrm/civicrm-core/pull/25289))** + Makes the Option Group -> description field accessible to APIv4/SearchKit etc. -- **Move newly added Help Test to Inline folder to match Core Folder stru… ([25281](https://github.com/civicrm/civicrm-core/pull/25281))** +- **List of languages: Enable Croatian language by default + ([25192](https://github.com/civicrm/civicrm-core/pull/25192))** -- **5.57 ([25280](https://github.com/civicrm/civicrm-core/pull/25280))** + Improves the list of languages by enabling Croatian by default. -- **[REF] [merge custom fields] Only call function when applicable (well tested code) ([25222](https://github.com/civicrm/civicrm-core/pull/25222))** +- **Status Check - Raise severity of the check for signing keys + ([25285](https://github.com/civicrm/civicrm-core/pull/25285))** -- **[NFC] Restore locale properly after test ([25276](https://github.com/civicrm/civicrm-core/pull/25276))** + Changes the Status Check for missing CIVICRM_SIGN_KEYS to throw an error + instead of a notice. -- **[REF][PHP8.2] Avoid dynamic properties in CRM_Activity_BAO_ICalendar ([25245](https://github.com/civicrm/civicrm-core/pull/25245))** +- **Drop php 7.2 support from CiviCRM 5.58 (after 5.57 ESR) + ([dev/core#3991](https://lab.civicrm.org/dev/core/-/issues/3991): + [25147](https://github.com/civicrm/civicrm-core/pull/25147), + [662](https://github.com/civicrm/civicrm-drupal/pull/662), + [68](https://github.com/civicrm/civicrm-joomla/pull/68), + [166](https://github.com/civicrm/civicrm-backdrop/pull/166) and + [286](https://github.com/civicrm/civicrm-wordpress/pull/286))** -- **Remove Mar 2020 deprecated functions ([25260](https://github.com/civicrm/civicrm-core/pull/25260))** + Bumps the minimum PHP version to 7.3.0 (from 7.2). -- **Move legacy search selector file to legacy search extension ([25264](https://github.com/civicrm/civicrm-core/pull/25264))** +### CiviContribute -- **Petition ThankYou.tpl: fix strong typo ([25275](https://github.com/civicrm/civicrm-core/pull/25275))** +- **Add datasource selector to generic import (so it can be used eg. with + contribution import) + ([25161](https://github.com/civicrm/civicrm-core/pull/25161))** -- **5.57 to master ([25274](https://github.com/civicrm/civicrm-core/pull/25274))** + Makes CSV and SQL available as datasources for Contribution Imports. -- **Remove unreachable code (since 2020) ([25268](https://github.com/civicrm/civicrm-core/pull/25268))** +### CiviMember -- **NFC cleanup in test class ([25258](https://github.com/civicrm/civicrm-core/pull/25258))** +- **Add Membership entity to formbuilder + ([25144](https://github.com/civicrm/civicrm-core/pull/25144))** -- **Better fix for is_deleted notice in 25261 ([25269](https://github.com/civicrm/civicrm-core/pull/25269))** + Adds the Membership entity to Form Builder. -- **Move part of deprecated function `loadRelatedObjects` to calling functions ([25267](https://github.com/civicrm/civicrm-core/pull/25267))** +## Bugs resolved -- **[REF][PHP8.2] Avoid dynamic properties in civicrm_api3 class ([25253](https://github.com/civicrm/civicrm-core/pull/25253))** +### Core CiviCRM -- **Remove empty param declarations in docblocks ([25252](https://github.com/civicrm/civicrm-core/pull/25252))** +- **htmlspecialchars() issue on PHP8 and CiviReport (Work Towards + [dev/core#4047](https://lab.civicrm.org/dev/core/-/issues/4047): + [356](https://github.com/civicrm/civicrm-packages/pull/356))** -- **PHPDoc corrections ([25266](https://github.com/civicrm/civicrm-core/pull/25266))** + Fixes fatal error when running a CiviReport on PHP8 when htmlspecialchars() + is called on an empty array. -- **(REF) Remove _tagElement dynamic property ([25265](https://github.com/civicrm/civicrm-core/pull/25265))** +- **Configure Event Fees tab + ([25120](https://github.com/civicrm/civicrm-core/pull/25120))** -- **Smarty notice fix on contact search results ([25261](https://github.com/civicrm/civicrm-core/pull/25261))** + Makes the Fees tab on the Configure Event page, as well as the link to the + Fees page from the Configure button on an event, conditionally dependent on + whether CiviContribute is enabled. -- **Extract `getMembershipBlock` ([25238](https://github.com/civicrm/civicrm-core/pull/25238))** +- **Search Kit: Mailing labels don't work + ([dev/core#3470](https://lab.civicrm.org/dev/core/-/issues/3470): + [25164](https://github.com/civicrm/civicrm-core/pull/25164))** -- **Remove unnecessary pass-by-ref ([25263](https://github.com/civicrm/civicrm-core/pull/25263))** + Fixes the Mailing Labels action for SearchKit displays. -- **Remove unused variable ([25257](https://github.com/civicrm/civicrm-core/pull/25257))** +- **correct logic for handling empty-array values for checkboxes; + ([23305](https://github.com/civicrm/civicrm-core/pull/23305))** -- **Simplify dataProvider in queryTest ([25255](https://github.com/civicrm/civicrm-core/pull/25255))** +- **Only allow valid image types to be uploaded to image_URL field on profiles + ([25217](https://github.com/civicrm/civicrm-core/pull/25217))** -- **(NFC) Fix documented return type on getByClass method ([25246](https://github.com/civicrm/civicrm-core/pull/25246))** +- **Remove conditionals that rely on NULL not being NULL + ([25183](https://github.com/civicrm/civicrm-core/pull/25183))** -- **[REF][PHP8.2] Avoid dynamic properties in mailstores ([25243](https://github.com/civicrm/civicrm-core/pull/25243))** +- **Remove incorrect usages of {localize} in civicrm_data.tpl + ([25172](https://github.com/civicrm/civicrm-core/pull/25172))** -- **[REF][PHP8.2] Avoid dynamic properties in CRM_Utils_Signer ([25244](https://github.com/civicrm/civicrm-core/pull/25244))** +- **SearchKit - Ensure id & name are defined when loading saved searches + ([25146](https://github.com/civicrm/civicrm-core/pull/25146))** -- **[REF] [merge custom fields function] Stop returning unaltered cFields parameter (good unit test cover) ([25221](https://github.com/civicrm/civicrm-core/pull/25221))** +- **searchkit - fix broken update task in dropdown + ([25289](https://github.com/civicrm/civicrm-core/pull/25289))** -- **(NFC) When using @var annotations, ensure type comes first ([25242](https://github.com/civicrm/civicrm-core/pull/25242))** +- **PHP8: callback function on GOTV must be static + ([25200](https://github.com/civicrm/civicrm-core/pull/25200))** -- **[NFC] Remove line that does nothing ([25234](https://github.com/civicrm/civicrm-core/pull/25234))** +- **Smarty notice fix on contact search results + ([25261](https://github.com/civicrm/civicrm-core/pull/25261) and + [25269](https://github.com/civicrm/civicrm-core/pull/25269))** -- **Remove legacy code payment processor handling ([25240](https://github.com/civicrm/civicrm-core/pull/25240))** +- **E_NOTICES on activity view + ([25169](https://github.com/civicrm/civicrm-core/pull/25169))** -- **[NFC] Fix @method documentation for shouldExitAfterFatal ([25236](https://github.com/civicrm/civicrm-core/pull/25236))** +- **Enotice fixes, consolidation on Import datasource forms + ([25141](https://github.com/civicrm/civicrm-core/pull/25141))** -- **[REF] Fix strstr deprecation in CustomDataByType class ([25230](https://github.com/civicrm/civicrm-core/pull/25230))** +- **Fix broken call to registerElementType in advmultiselect.php + ([357](https://github.com/civicrm/civicrm-packages/pull/357))** -- **Remove broken method CRM_Utils_File::isHtml() ([25233](https://github.com/civicrm/civicrm-core/pull/25233))** +- **Fix `cv` failure on J3. + ([25320](https://github.com/civicrm/civicrm-core/pull/25320))** -- **Support DedupeRules as Managed entities ([25227](https://github.com/civicrm/civicrm-core/pull/25227))** +- **5.57.0 quotes typo: security 2x double quotes to 1x double quotes + ([25316](https://github.com/civicrm/civicrm-core/pull/25316))** -- **5.57 to master ([25228](https://github.com/civicrm/civicrm-core/pull/25228))** +- **Fix Civix not correctly loading Mixins + ([totten/civix#257](https://github.com/totten/civix/issues/257): + [25179](https://github.com/civicrm/civicrm-core/pull/25179))** -- **Remove deprecated ids from OptionValue::add ([25223](https://github.com/civicrm/civicrm-core/pull/25223))** +### CiviCase -- **Only allow valid image types to be uploaded to image_URL field on profiles ([25217](https://github.com/civicrm/civicrm-core/pull/25217))** +- **Fix smarty notices on Open Case + ([25165](https://github.com/civicrm/civicrm-core/pull/25165))** -- **5.57 ([25216](https://github.com/civicrm/civicrm-core/pull/25216))** +### CiviContribute -- **[REF][PHP8.2] Update Composer Patches to latest version to fix notice… ([25212](https://github.com/civicrm/civicrm-core/pull/25212))** +- **Fix Contributions listing crash due to getLineItemTitle returning null + ([25300](https://github.com/civicrm/civicrm-core/pull/25300))** -- **[NFC] php8 - Unit test for empty checkbox array #23305 ([25201](https://github.com/civicrm/civicrm-core/pull/25201))** +### CiviMail -- **5.57 ([25208](https://github.com/civicrm/civicrm-core/pull/25208))** +- **E_WARNING on bulk email activity view + ([25193](https://github.com/civicrm/civicrm-core/pull/25193))** -- **correct logic for handling empty-array values for checkboxes; ([23305](https://github.com/civicrm/civicrm-core/pull/23305))** +### CiviPetition -- **NFC: Fix variable name in activity import ([25205](https://github.com/civicrm/civicrm-core/pull/25205))** +- **Petition ThankYou.tpl: fix strong typo + ([25275](https://github.com/civicrm/civicrm-core/pull/25275))** -- **[REF][PHP8.2] Further resolve some deprecation issues around dynamic … ([25202](https://github.com/civicrm/civicrm-core/pull/25202))** +## Miscellany -- **[REF] Update Composer Compile Lib with latest version ([25203](https://github.com/civicrm/civicrm-core/pull/25203))** +- **Standardise method of getting entity in imports + ([25173](https://github.com/civicrm/civicrm-core/pull/25173))** -- **Remove reference to 'dataArray' from text version of contribution_online_receipt ([25186](https://github.com/civicrm/civicrm-core/pull/25186))** +- **Divide & conquer, `initSet` no longer shared as much code is not + ([25184](https://github.com/civicrm/civicrm-core/pull/25184))** -- **PHP8: callback function on GOTV must be static ([25200](https://github.com/civicrm/civicrm-core/pull/25200))** +- **Post code-divide tidy-up + ([25194](https://github.com/civicrm/civicrm-core/pull/25194))** -- **(REF) CiviUnitTestCase - Cleanup and simplify the DB-reset mechanism ([25178](https://github.com/civicrm/civicrm-core/pull/25178))** +- **Simplify params on now-private function + ([25182](https://github.com/civicrm/civicrm-core/pull/25182))** -- **[dev/core#3470] Search Kit: Mailing labels don't work ([25164](https://github.com/civicrm/civicrm-core/pull/25164))** +- **Remove legacy code payment processor handling + ([25240](https://github.com/civicrm/civicrm-core/pull/25240))** -- **E_WARNING on bulk email activity view ([25193](https://github.com/civicrm/civicrm-core/pull/25193))** +- **Remove broken method CRM_Utils_File::isHtml() + ([25233](https://github.com/civicrm/civicrm-core/pull/25233))** -- **Bump min PHP version to 7.3.0 ([25147](https://github.com/civicrm/civicrm-core/pull/25147))** +- **Remove deprecated ids from OptionValue::add + ([25223](https://github.com/civicrm/civicrm-core/pull/25223))** -- **Configure Event Fees tab ([25120](https://github.com/civicrm/civicrm-core/pull/25120))** +- **Remove unreachable code (since 2020) + ([25268](https://github.com/civicrm/civicrm-core/pull/25268))** -- **[REF] Fix a couple of errors in PHP8.2 ([25196](https://github.com/civicrm/civicrm-core/pull/25196))** +- **Move legacy search selector file to legacy search extension + ([25264](https://github.com/civicrm/civicrm-core/pull/25264))** -- **Standardise method of getting entity in imports ([25173](https://github.com/civicrm/civicrm-core/pull/25173))** +- **Remove Mar 2020 deprecated functions + ([25260](https://github.com/civicrm/civicrm-core/pull/25260))** -- **Post code-divide tidy-up ([25194](https://github.com/civicrm/civicrm-core/pull/25194))** +- **AssetBuilder - Fix `testInvalid()` failure. Switch to JWT. + ([25305](https://github.com/civicrm/civicrm-core/pull/25305))** -- **List of languages: Enable Croatian language by default ([25192](https://github.com/civicrm/civicrm-core/pull/25192))** +- **Move newly added Help Test to Inline folder to match Core Folder structure + ([25281](https://github.com/civicrm/civicrm-core/pull/25281))** -- **5.57 ([25190](https://github.com/civicrm/civicrm-core/pull/25190))** +- **Extract `getMembershipBlock` + ([25238](https://github.com/civicrm/civicrm-core/pull/25238))** -- **Divide & conquer, `initSet` no longer shared as much code is not ([25184](https://github.com/civicrm/civicrm-core/pull/25184))** +- **Remove unnecessary pass-by-ref + ([25263](https://github.com/civicrm/civicrm-core/pull/25263))** -- ** totten/civix#257 Fix Civix not correctly loading Mixinx ([25179](https://github.com/civicrm/civicrm-core/pull/25179))** +- **Remove unused variable + ([25257](https://github.com/civicrm/civicrm-core/pull/25257))** -- **5.57 ([25185](https://github.com/civicrm/civicrm-core/pull/25185))** +- **Simplify dataProvider in queryTest + ([25255](https://github.com/civicrm/civicrm-core/pull/25255))** -- **[REF] Create Alter Column function in upgrade base class ([25174](https://github.com/civicrm/civicrm-core/pull/25174))** +- **Php layer consolidation on Import DataSource form + ([25142](https://github.com/civicrm/civicrm-core/pull/25142))** -- **Remove conditionals that rely on NULL not being NULL ([25183](https://github.com/civicrm/civicrm-core/pull/25183))** +- **Remove reference to 'dataArray' from text version of + contribution_online_receipt + ([25186](https://github.com/civicrm/civicrm-core/pull/25186))** -- **Add datasource selector to generic import (so it can be used eg. with contribution import) ([25161](https://github.com/civicrm/civicrm-core/pull/25161))** +- **Remove no-longer-used noisily deprecated function + `CRM_Contact_Form_Task_PDFLetterCommon::createActivities` + ([25152](https://github.com/civicrm/civicrm-core/pull/25152))** -- **Simplify params on now-private function ([25182](https://github.com/civicrm/civicrm-core/pull/25182))** +- **Move part of deprecated function `loadRelatedObjects` to calling functions + ([25267](https://github.com/civicrm/civicrm-core/pull/25267))** -- **Add Membership entity to formbuilder ([25144](https://github.com/civicrm/civicrm-core/pull/25144))** +- **Remove empty param declarations in docblocks + ([25252](https://github.com/civicrm/civicrm-core/pull/25252))** -- **Remove incorrect usages of {localize} in civicrm_data.tpl ([25172](https://github.com/civicrm/civicrm-core/pull/25172))** +- **PHPDoc corrections + ([25266](https://github.com/civicrm/civicrm-core/pull/25266))** -- **Add search/display details to searchKitTasks hook - allows for eg. filtering actions by search display ([25123](https://github.com/civicrm/civicrm-core/pull/25123))** +- **[REF][PHP8.2] Avoid dynamic properties in civicrm_api3 class + ([25253](https://github.com/civicrm/civicrm-core/pull/25253))** -- **Add Option Group descriptions from templates/CRM/Admin/Page/Options.tpl ([25143](https://github.com/civicrm/civicrm-core/pull/25143))** +- **[REF][PHP8.2] Avoid dynamic properties in CRM_Activity_BAO_ICalendar + ([25245](https://github.com/civicrm/civicrm-core/pull/25245))** -- **SearchKit - Ensure id & name are defined when loading saved searches ([25146](https://github.com/civicrm/civicrm-core/pull/25146))** +- **[REF][PHP8.2] Avoid dynamic properties in mailstores + ([25243](https://github.com/civicrm/civicrm-core/pull/25243))** -- **E_NOTICES on activity view ([25169](https://github.com/civicrm/civicrm-core/pull/25169))** +- **[REF][PHP8.2] Update Composer Patches to latest version to fix notice issue + in php8.2 ([25212](https://github.com/civicrm/civicrm-core/pull/25212))** -- **(NFC) PrevNextTest - Fix warning about "@group" ([25168](https://github.com/civicrm/civicrm-core/pull/25168))** +- **[REF][PHP8.2] Avoid dynamic properties in CRM_Utils_Signer + ([25244](https://github.com/civicrm/civicrm-core/pull/25244))** -- **5.57 ([25167](https://github.com/civicrm/civicrm-core/pull/25167))** +- **[REF][PHP8.2] Further resolve some deprecation issues around dynamic class + properties ([25202](https://github.com/civicrm/civicrm-core/pull/25202))** -- **Fix smarty notices on Open Case ([25165](https://github.com/civicrm/civicrm-core/pull/25165))** +- **[REF] Fix a couple of errors in PHP8.2 + ([25196](https://github.com/civicrm/civicrm-core/pull/25196))** -- **5.57 ([25163](https://github.com/civicrm/civicrm-core/pull/25163))** +- **[REF] Update Composer Compile Lib with latest version + ([25203](https://github.com/civicrm/civicrm-core/pull/25203))** -- **5.57 ([25157](https://github.com/civicrm/civicrm-core/pull/25157))** +- **(REF) CiviUnitTestCase - Cleanup and simplify the DB-reset mechanism + ([25178](https://github.com/civicrm/civicrm-core/pull/25178))** -- **Remove no-longer-used noisily deprecated function `CRM_Contact_Form_Task_PDFLetterCommon::createActivities` ([25152](https://github.com/civicrm/civicrm-core/pull/25152))** +- **[REF] Create Alter Column function in upgrade base class + ([25174](https://github.com/civicrm/civicrm-core/pull/25174))** -- **5.57 ([25151](https://github.com/civicrm/civicrm-core/pull/25151))** +- **[REF] [merge custom fields function] Stop returning unaltered cFields + parameter (good unit test cover) + ([25221](https://github.com/civicrm/civicrm-core/pull/25221))** -- **Php layer consolidation on Import DataSource form ([25142](https://github.com/civicrm/civicrm-core/pull/25142))** +- **[REF] Fix strstr deprecation in CustomDataByType class + ([25230](https://github.com/civicrm/civicrm-core/pull/25230))** -- **Enotice fixes, consolidation on Import datasource forms ([25141](https://github.com/civicrm/civicrm-core/pull/25141))** +- **(REF) Remove _tagElement dynamic property + ([25265](https://github.com/civicrm/civicrm-core/pull/25265))** -- **dev/core#3991 Bump minimum PHP version to 7.3.0 ([662](https://github.com/civicrm/civicrm-drupal/pull/662))** +- **[REF] [merge custom fields] Only call function when applicable + (well tested code) + ([25222](https://github.com/civicrm/civicrm-core/pull/25222))** -- **dev/core#3991 Bump minimum PHP version to 7.3.0 ([286](https://github.com/civicrm/civicrm-wordpress/pull/286))** +- **[NFC] Restore locale properly after test + ([25276](https://github.com/civicrm/civicrm-core/pull/25276))** -- **dev/core#3991 Bump minimum PHP version to 7.3.0 ([68](https://github.com/civicrm/civicrm-joomla/pull/68))** +- **NFC cleanup in test class + ([25258](https://github.com/civicrm/civicrm-core/pull/25258))** -- **dev/core#3991 Bump minimum PHP version to 7.3.0 ([166](https://github.com/civicrm/civicrm-backdrop/pull/166))** +- **(NFC) Fix documented return type on getByClass method + ([25246](https://github.com/civicrm/civicrm-core/pull/25246))** -- **Fix broken call to registerElementType in advmultiselect.php ([357](https://github.com/civicrm/civicrm-packages/pull/357))** +- **(NFC) When using @var annotations, ensure type comes first + ([25242](https://github.com/civicrm/civicrm-core/pull/25242))** -- **fixes core#4047 - htmlspecialchars called on empty array ([356](https://github.com/civicrm/civicrm-packages/pull/356))** +- **[NFC] Remove line that does nothing + ([25234](https://github.com/civicrm/civicrm-core/pull/25234))** -## Miscellany +- **[NFC] Fix @method documentation for shouldExitAfterFatal + ([25236](https://github.com/civicrm/civicrm-core/pull/25236))** + +- **[NFC] php8 - Unit test for empty checkbox array #23305 + ([25201](https://github.com/civicrm/civicrm-core/pull/25201))** + +- **NFC: Fix variable name in activity import + ([25205](https://github.com/civicrm/civicrm-core/pull/25205))** + +- **(NFC) PrevNextTest - Fix warning about "@group" + ([25168](https://github.com/civicrm/civicrm-core/pull/25168))** ## Credits This release was developed by the following code authors: -AGH Strategies - Alice Frumin, Andie Hunt; BrightMinded Ltd - Bradley Taylor; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; craft-coders.de - Sebastian Gellweiler; Dave D; Ginkgo Street Labs - Michael Z Daryabeygi; JMA Consulting - Monish Deb, Seamus Lee; jofranz; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Squiffle Consulting - Aidan Saunders; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green +AGH Strategies - Alice Frumin, Andie Hunt; BrightMinded Ltd - Bradley Taylor; +CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha +Chaku; Coop SymbioTIC - Mathieu Lutfy; craft-coders.de - Sebastian Gellweiler; +Dave D; Ginkgo Street Labs - Michael Z Daryabeygi; JMA Consulting - Monish Deb, +Seamus Lee; Systopia - Johannes; Megaphone Technology Consulting - Jon Goldberg; +MJW Consulting - Matthew Wire; Squiffle Consulting - Aidan Saunders; Third +Sector Design - Kurund Jalmi; 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; BrightMinded Ltd - Bradley Taylor; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Ginkgo Street Labs - Michael Z Daryabeygi; JMA Consulting - Seamus Lee; jofranz; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton +Artful Robot - Rich Lott; Tadpole Collective - Kevin Cristiano; ## Feedback -- 2.25.1