5.51.0 release notes: added late changes
[civicrm-core.git] / release-notes / 5.49.0.md
index 29c8e42b3569574edbd9a10fbf3ce17466954212..9cde97d0e378b9a72ee5226aabe61e0b4ee7cacd 100644 (file)
@@ -13,402 +13,623 @@ Released May 4, 2022
 
 | *Does this version...?*                                         |         |
 |:--------------------------------------------------------------- |:-------:|
-| Fix security vulnerabilities?                                   |         |
-| Change the database schema?                                     |         |
-| Alter the API?                                                  |         |
-| Require attention to configuration options?                     |         |
-| Fix problems installing or upgrading to a previous version?     |         |
-| Introduce features?                                             |         |
-| Fix bugs?                                                       |         |
+| Fix security vulnerabilities?                                   |   no    |
+| **Change the database schema?**                                 | **yes** |
+| **Alter the API?**                                              | **yes** |
+| Require attention to configuration options?                     |   no    |
+| **Fix problems installing or upgrading to a previous version?** | **yes** |
+| **Introduce features?**                                         | **yes** |
+| **Fix bugs?**                                                   | **yes** |
 
 ## <a name="features"></a>Features
 
 ### Core CiviCRM
 
-- **crm- Missing Summary ([652](https://github.com/civicrm/civicrm-drupal/pull/652))**
+- **Add created & modified dates to "View Relationship" screen
+  ([22909](https://github.com/civicrm/civicrm-core/pull/22909))**
 
-## <a name="bugs"></a>Bugs resolved
+  Adds created and modified dates to the "View Relationship" screen.
 
-### Core CiviCRM
+- **Replace entity icons
+  ([dev/user-interface#26](https://lab.civicrm.org/dev/user-interface/-/issues/26):
+  [23094](https://github.com/civicrm/civicrm-core/pull/23094) and
+  [23073](https://github.com/civicrm/civicrm-core/pull/23073))**
 
-- **Set limit to 0 when processing send sms task ([23166](https://github.com/civicrm/civicrm-core/pull/23166))**
+  Displays font-awesome icons instead of the old image gifs in the user
+  interface for contact types and recent items.
 
-- **(dev/mail#107) CiviMail - Fix validation error (5.49) ([23141](https://github.com/civicrm/civicrm-core/pull/23141))**
+- **Raise number of websites available to inline edit
+  ([dev/core#3106](https://lab.civicrm.org/dev/core/-/issues/3106):
+  [22908](https://github.com/civicrm/civicrm-core/pull/22908))**
 
-- **(dev/core#3166) "Metadata" cache - Strictly separate by version ([23148](https://github.com/civicrm/civicrm-core/pull/23148))**
+  Raises the max number of inline editable websites from 5 to 25.
 
-- **APIv4 Explorer - Adjust 'Index' field to fit better on narrow screens ([23146](https://github.com/civicrm/civicrm-core/pull/23146))**
+- **Add in APIv4 Logging Entity
+  ([23129](https://github.com/civicrm/civicrm-core/pull/23129))**
 
-- **Fix incorrect use of icon argument for crmButton function ([23145](https://github.com/civicrm/civicrm-core/pull/23145))**
+  Exposes the civicrm_log table to APIv4.
 
-- **Remove unnecessary pass-by-ref ([23132](https://github.com/civicrm/civicrm-core/pull/23132))**
+- **Add APIv4 for RecentItems
+  ([23099](https://github.com/civicrm/civicrm-core/pull/23099))**
 
-- **Consolidate MapTable.tpl ([23138](https://github.com/civicrm/civicrm-core/pull/23138))**
+  Exposes the list of recently viewed items to APIv4.
 
-- **Enotice fix - membership search ([23136](https://github.com/civicrm/civicrm-core/pull/23136))**
+- **Enable APIv4 export action on UFGroup and UFField.
+  ([22832](https://github.com/civicrm/civicrm-core/pull/22832))**
 
-- **Remove unused property ([23137](https://github.com/civicrm/civicrm-core/pull/23137))**
+  Makes the export action available on the UFGroup and UFField Entities in
+  APIv4.
 
-- **(REF) Schema - Fix boolean fields in various tables - Split commits ([23134](https://github.com/civicrm/civicrm-core/pull/23134))**
+- **SearchKit - Allow creation of new records via in-place edit
+  ([22376](https://github.com/civicrm/civicrm-core/pull/22376))**
 
-- **Remove 'in-between' class ([23133](https://github.com/civicrm/civicrm-core/pull/23133))**
+  Allows e.g. an email record to be created if one does not already exist via
+  in-place edit.
 
-- **Add in APIv4 Logging Entity ([23129](https://github.com/civicrm/civicrm-core/pull/23129))**
+- **SearchKit - mark stable
+  ([23010](https://github.com/civicrm/civicrm-core/pull/23010))**
 
-- **Fix OptionValue BAO to call pre/post hooks to prevent force-reset of managed option values ([23130](https://github.com/civicrm/civicrm-core/pull/23130))**
+  Marks SearchKit as stable.
 
-- **Fixes issue with duplicate is_billing on inline address forms. ([22850](https://github.com/civicrm/civicrm-core/pull/22850))**
+- **Search Kit - Auto-enable during normal installation
+  ([22952](https://github.com/civicrm/civicrm-core/pull/22952))**
 
-- **Copy Clear value in batch update process for radio button field ([22941](https://github.com/civicrm/civicrm-core/pull/22941))**
+  Auto-enables SearchKit during installation.
 
-- **core#2633 : Cannot remove Group Organisation selection in multisite setup ([20437](https://github.com/civicrm/civicrm-core/pull/20437))**
+- **SearchKit - Add CiviMail integration
+  ([22808](https://github.com/civicrm/civicrm-core/pull/22808))**
 
-- **[WIP] Schema - Fix boolean fields in various tables ([22954](https://github.com/civicrm/civicrm-core/pull/22954))**
+  Makes it so SearchKit works with CiviMail.
 
-- **Remove good intentions ([23126](https://github.com/civicrm/civicrm-core/pull/23126))**
+- **SearchKit - Improve checkbox UX for bulk actions
+  ([22906](https://github.com/civicrm/civicrm-core/pull/22906))**
 
-- **5.48 ([23127](https://github.com/civicrm/civicrm-core/pull/23127))**
+  Improves user experience for SearchKit bulk actions.
 
-- **Tpl cleanup - whitespace, wrong closing tag ([23124](https://github.com/civicrm/civicrm-core/pull/23124))**
+- **SearchKit - Add icon support
+  ([23034](https://github.com/civicrm/civicrm-core/pull/23034))**
 
-- **Simplify class inheritance ([23121](https://github.com/civicrm/civicrm-core/pull/23121))**
+  Adds Icon support to SearchKit.
 
-- **Ensure pay_later_text is always assigned ([22977](https://github.com/civicrm/civicrm-core/pull/22977))**
+- **Afform - compose layouts with multiple SearchKit displays
+  ([22887](https://github.com/civicrm/civicrm-core/pull/22887))**
 
-- **Remove unused private variables ([23123](https://github.com/civicrm/civicrm-core/pull/23123))**
+  Allows multiple search displays on an afform, which permits composing a
+  dashboard-like layout.
 
-- **Fix function calls to be non-static ([23122](https://github.com/civicrm/civicrm-core/pull/23122))**
+- **Afform - Easier layout creation with predefined container styles and
+  built-in title ([22975](https://github.com/civicrm/civicrm-core/pull/22975))**
 
-- **Respect zero value ([23016](https://github.com/civicrm/civicrm-core/pull/23016))**
+  This makes layouts easier to make, by adding predefined "Panel Pane" and
+  "Collapsible" styles which can be applied to any container element. It also
+  makes container titles easier to work with, and fixes some issues with saving
+  blocks.
 
-- **Notices on import - consolidate mapping variables ([23119](https://github.com/civicrm/civicrm-core/pull/23119))**
+- **Add option_value_fields metadata
+  ([22996](https://github.com/civicrm/civicrm-core/pull/22996))**
 
-- **Emit deprecated warning for typo version of hook_civicrm_links ([23117](https://github.com/civicrm/civicrm-core/pull/23117))**
+  Adds metadata for OptionValues.
 
-- **Add APIv4 for RecentItems ([23099](https://github.com/civicrm/civicrm-core/pull/23099))**
+- **Add action links for group.
+  ([22912](https://github.com/civicrm/civicrm-core/pull/22912))**
 
-- **Fix enotice, simplify text on Saved field mapping ([23114](https://github.com/civicrm/civicrm-core/pull/23114))**
+  Add links for group.
 
-- **Cleanup unnecessary variables ([23111](https://github.com/civicrm/civicrm-core/pull/23111))**
+### CiviCase
 
-- **Remove unnecessary pass-by-ref ([23110](https://github.com/civicrm/civicrm-core/pull/23110))**
+- **Add case ID and make subject optional for case detail report
+  ([22973](https://github.com/civicrm/civicrm-core/pull/22973))**
 
-- **Remove unused variable ([23113](https://github.com/civicrm/civicrm-core/pull/23113))**
+  Improves case detail report by making the case ID available and making the
+  subject field optional.
 
-- **Test cleanup (minor) ([23112](https://github.com/civicrm/civicrm-core/pull/23112))**
+### CiviContribute
 
-- **Remove double return statement ([23108](https://github.com/civicrm/civicrm-core/pull/23108))**
+- **Add support for financial account custom fields
+  ([23067](https://github.com/civicrm/civicrm-core/pull/23067))**
 
-- **Test cleanup, deprecate ContributionSoft::retrieve ([23106](https://github.com/civicrm/civicrm-core/pull/23106))**
+  Enables support for custom fields on Financial Accounts.
 
-- **5.48 ([23109](https://github.com/civicrm/civicrm-core/pull/23109))**
+- **Add page id and template type as data attributes in contribution templates
+  ([21945](https://github.com/civicrm/civicrm-core/pull/21945))**
 
-- **dev/financial#186 Do not display partially paid & partially refunded for selection on edit ([23076](https://github.com/civicrm/civicrm-core/pull/23076))**
+  Adds more details about the page id and template type to the html of the
+  contribution templates.
 
-- **Stop passing settings into getTaxLabel ([23040](https://github.com/civicrm/civicrm-core/pull/23040))**
+- **Proposal - make future recurring contribution instances modifiable & not
+  fail if the only contribution is deleted. (Work towards
+  [dev/financial#6](https://lab.civicrm.org/dev/financial/-/issues/6):
+  [21473](https://github.com/civicrm/civicrm-core/pull/21473) and
+  [21470](https://github.com/civicrm/civicrm-core/pull/21470))**
 
-- **Re-fix enotice on templateSelected ([23008](https://github.com/civicrm/civicrm-core/pull/23008))**
+  Update the recurring contribution when the template contribution is edited.
+  Fixes the creation of the template contribution when it has custom data.
 
-- **Fix smarty notices in billing form ([22992](https://github.com/civicrm/civicrm-core/pull/22992))**
+### CiviMember
 
-- **Access invoice_prefix setting directly ([23039](https://github.com/civicrm/civicrm-core/pull/23039))**
+- **Add membership_id as a reference to the row
+  ([23049](https://github.com/civicrm/civicrm-core/pull/23049))**
 
-- **Assign totalTaxAmount more consistently ([23038](https://github.com/civicrm/civicrm-core/pull/23038))**
+  Add membership id as a reference to each row on contact dashboard.
 
-- **Prevent escaping on cancelInfo_show_ids ([23077](https://github.com/civicrm/civicrm-core/pull/23077))**
+### Drupal Integration
 
-- **Test usability fix ([23096](https://github.com/civicrm/civicrm-core/pull/23096))**
+- **What if we stopped publishing Drupal 6 releases in 2022?
+  ([22960](https://github.com/civicrm/civicrm-core/pull/22960))**
 
-- **SearchKit - Ensure filters work with multiple search displays on a form ([23018](https://github.com/civicrm/civicrm-core/pull/23018))**
+  Ends support for Drupal6 integration.
 
-- **5.48 ([23100](https://github.com/civicrm/civicrm-core/pull/23100))**
+- **civicrm.drush.inc - Add 'civicrm-pipe' subcommand
+  ([652](https://github.com/civicrm/civicrm-drupal/pull/652))**
 
-- **First recurring payment (paypal ipn) - remove redundant status set, start_date change ([23081](https://github.com/civicrm/civicrm-core/pull/23081))**
+  Adds support for subcommand `drush civicrm-pipe` (`drush cvpipe`).
 
-- **dev/user-interface#26 Use font-awesome icons for contact types and recent items ([23094](https://github.com/civicrm/civicrm-core/pull/23094))**
+## <a name="bugs"></a>Bugs resolved
 
-- **Event Location fixes ([23041](https://github.com/civicrm/civicrm-core/pull/23041))**
+### Core CiviCRM
 
-- **Don't lose search criteria for smart group built with search builder ([23052](https://github.com/civicrm/civicrm-core/pull/23052))**
 
-- **add image upload support for pcp account ([22223](https://github.com/civicrm/civicrm-core/pull/22223))**
+- **Preserve previous tab when navigating to and from contact page
+  ([dev/core#3003](https://lab.civicrm.org/dev/core/-/issues/3003):
+  [22316](https://github.com/civicrm/civicrm-core/pull/22316))**
 
-- **dev/core#3034 ([23083](https://github.com/civicrm/civicrm-core/pull/23083))**
+- **cannot set serialize=0 via api3 when creating custom fields
+  ([dev/core#2524](https://lab.civicrm.org/dev/core/-/issues/2524):
+  [22934](https://github.com/civicrm/civicrm-core/pull/22934))**
 
-- **Cleanup FinancialAccount BAO to use `writeRecord` and deprecate `add` ([23079](https://github.com/civicrm/civicrm-core/pull/23079))**
+- **Cannot remove Group Organisation selection in multisite setup
+  ([dev/core#2633](https://lab.civicrm.org/dev/core/-/issues/2633):
+  [20437](https://github.com/civicrm/civicrm-core/pull/20437))**
 
-- **[REF] Create polyfill function for array_key_first which only exists … ([23095](https://github.com/civicrm/civicrm-core/pull/23095))**
+- **Contact Type get Changed after renewal with credit card
+  ([dev/core#2833](https://lab.civicrm.org/dev/core/-/issues/2833):
+  [21467](https://github.com/civicrm/civicrm-core/pull/21467))**
 
-- **Avoid PHP notices in activity search ([23093](https://github.com/civicrm/civicrm-core/pull/23093))**
+- **Users cannot be created if no unsupervised deduping rule exists
+  ([dev/core#2918](https://lab.civicrm.org/dev/core/-/issues/2918):
+  [22804](https://github.com/civicrm/civicrm-core/pull/22804))**
 
-- **Add civicrm_contact_type.icon column ([23073](https://github.com/civicrm/civicrm-core/pull/23073))**
+- **Filename in content-disposition should have extension
+  ([dev/core#3034](https://lab.civicrm.org/dev/core/-/issues/3034):
+  [22532](https://github.com/civicrm/civicrm-core/pull/22532) and
+  [23083](https://github.com/civicrm/civicrm-core/pull/23083))**
 
-- **SearchKit - Allow creation of new records via in-place edit ([22376](https://github.com/civicrm/civicrm-core/pull/22376))**
+  Ensures that filename contains the file extension for PDFs.
 
-- **Bump minimist from 1.2.5 to 1.2.6 ([23090](https://github.com/civicrm/civicrm-core/pull/23090))**
+- **Enhance EntityRef to widget to show create new option when contacts are
+  restricted by multiple contact type
+  ([dev/core#3082](https://lab.civicrm.org/dev/core/-/issues/3082):
+  [22830](https://github.com/civicrm/civicrm-core/pull/22830))**
 
-- **Add membership_id as a reference to the row ([23049](https://github.com/civicrm/civicrm-core/pull/23049))**
+- **Checkbox fields on profile admin page can't be unchecked
+  ([dev/core#3085](https://lab.civicrm.org/dev/core/-/issues/3085):
+  [22916](https://github.com/civicrm/civicrm-core/pull/22916))**
 
-- **[REF] Update Composer compile plugin ([23088](https://github.com/civicrm/civicrm-core/pull/23088))**
+- **CRM_Core_BAO_Address::addGeocoderData mishandling NULL geocodes
+  ([dev/core#3132](https://lab.civicrm.org/dev/core/-/issues/3132):
+  [23009](https://github.com/civicrm/civicrm-core/pull/23009))**
 
-- **5.48 ([23085](https://github.com/civicrm/civicrm-core/pull/23085))**
+- **Gender field no longer working
+  ([dev/core#3142](https://lab.civicrm.org/dev/core/-/issues/3142):
+  [23053](https://github.com/civicrm/civicrm-core/pull/23053))**
 
-- **SearchKit - Add icon support ([23034](https://github.com/civicrm/civicrm-core/pull/23034))**
+- **Upgrade to CiviCRM 5.48.0 fails with No such Table
+  ([dev/core#3166](https://lab.civicrm.org/dev/core/-/issues/3166):
+  [23148](https://github.com/civicrm/civicrm-core/pull/23148))**
 
-- **Finish conversion of static function to non-static ([23042](https://github.com/civicrm/civicrm-core/pull/23042))**
+- **Allow API4 match to match an empty value
+  ([22882](https://github.com/civicrm/civicrm-core/pull/22882))**
 
-- **Avoid trailing spaces in trigger output ([23069](https://github.com/civicrm/civicrm-core/pull/23069))**
+- **Fix copy button float in APIv4 Explorer
+  ([22978](https://github.com/civicrm/civicrm-core/pull/22978))**
 
-- **Add option_value_fields metadata  ([22996](https://github.com/civicrm/civicrm-core/pull/22996))**
+- **APIv4 - Get dynamic list of entity types
+  ([22826](https://github.com/civicrm/civicrm-core/pull/22826))**
 
-- **5.48 ([23075](https://github.com/civicrm/civicrm-core/pull/23075))**
+  Switches APIv4 Entity.get to dynamically fetch a list of entity types instead
+  of using a hardcoded list.
 
-- **Ensure formType is assigned to the template ([23078](https://github.com/civicrm/civicrm-core/pull/23078))**
+- **APIv4 Explorer - Adjust 'Index' field to fit better on narrow screens
+  ([23146](https://github.com/civicrm/civicrm-core/pull/23146))**
 
-- **Add support for financial account custom fields ([23067](https://github.com/civicrm/civicrm-core/pull/23067))**
+- **SearchKit - Fix joins when RelationshipCache is base search entity
+  ([23066](https://github.com/civicrm/civicrm-core/pull/23066))**
 
-- **Ensure pay_later variables assigned to template ([22971](https://github.com/civicrm/civicrm-core/pull/22971))**
+- **SearchKit - Fix page size size
+  ([22927](https://github.com/civicrm/civicrm-core/pull/22927))**
 
-- **Ensure some variables are assigned to the template ([22972](https://github.com/civicrm/civicrm-core/pull/22972))**
+  Shrinks the page size input to fit on smaller screens or dashboards.
 
-- **Ensure soft credit types are assigned to the template ([23037](https://github.com/civicrm/civicrm-core/pull/23037))**
+- **SearchKit - Fix "all selected" checkbox when selecting a single page
+  ([23003](https://github.com/civicrm/civicrm-core/pull/23003))**
 
-- **Remove more isset from offline receipt ([23072](https://github.com/civicrm/civicrm-core/pull/23072))**
+- **SearchKit - Ensure filters work with multiple search displays on a form
+  ([23018](https://github.com/civicrm/civicrm-core/pull/23018))**
 
-- **Remove isset from event registration receipt ([23064](https://github.com/civicrm/civicrm-core/pull/23064))**
+- **Afform - Fix collapsible style
+  ([23011](https://github.com/civicrm/civicrm-core/pull/23011))**
 
-- **SearchKit - Fix joins when RelationshipCache is base search entity ([23066](https://github.com/civicrm/civicrm-core/pull/23066))**
+- **Afform - reset managed entities when deleting a dashlet
+  ([22957](https://github.com/civicrm/civicrm-core/pull/22957))**
 
-- **5.48 ([23068](https://github.com/civicrm/civicrm-core/pull/23068))**
+- **Link to Google Maps over HTTPs
+  ([23044](https://github.com/civicrm/civicrm-core/pull/23044))**
 
-- **Do not default-escape upgrade linkes + Enotice fix on Extension screen ([23058](https://github.com/civicrm/civicrm-core/pull/23058))**
+- **noexpand seems to never be assigned
+  ([23005](https://github.com/civicrm/civicrm-core/pull/23005))**
 
-- **Remove issets from event_offline_receipt pay_later_text ([23060](https://github.com/civicrm/civicrm-core/pull/23060))**
+- **During upgrade log that it ran the sql when there is just a sql file and no
+  corresponding task
+  ([22939](https://github.com/civicrm/civicrm-core/pull/22939))**
 
-- **[NFC] Fix URL documenting Batch entity ([23062](https://github.com/civicrm/civicrm-core/pull/23062))**
+- **Fix OptionValue BAO to call pre/post hooks to prevent force-reset of managed
+  option values ([23130](https://github.com/civicrm/civicrm-core/pull/23130))**
 
-- **Fix notices on Task.tpl (grumpy mode) ([23006](https://github.com/civicrm/civicrm-core/pull/23006))**
+- **Copy Clear value in batch update process for radio button field
+  ([22941](https://github.com/civicrm/civicrm-core/pull/22941))**
 
-- **Remove isset(taxAmount) from membership online receipt ([23017](https://github.com/civicrm/civicrm-core/pull/23017))**
+- **[WIP] Schema - Fix boolean fields in various tables
+  ([22954](https://github.com/civicrm/civicrm-core/pull/22954))**
 
-- **do not URL Encode parameters for PayFlowPro ([23054](https://github.com/civicrm/civicrm-core/pull/23054))**
+- **Prevent escaping on cancelInfo_show_ids
+  ([23077](https://github.com/civicrm/civicrm-core/pull/23077))**
 
-- **dev/core#3034 Ensure that filename contains the file extension for PDFs ([22532](https://github.com/civicrm/civicrm-core/pull/22532))**
+- **Do not default-escape upgrade linkes + Enotice fix on Extension screen
+  ([23058](https://github.com/civicrm/civicrm-core/pull/23058))**
 
-- **5.48 ([23050](https://github.com/civicrm/civicrm-core/pull/23050))**
+- **Fix notices on Task.tpl (grumpy mode)
+  ([23006](https://github.com/civicrm/civicrm-core/pull/23006))**
 
-- **dev/core#3142 - Contact form and summary page completely broken ([23053](https://github.com/civicrm/civicrm-core/pull/23053))**
+- **Remove isset(taxAmount) from membership online receipt
+  ([23017](https://github.com/civicrm/civicrm-core/pull/23017))**
 
-- **Add chartEnabled to expectedSmartyVariables for reports ([23045](https://github.com/civicrm/civicrm-core/pull/23045))**
+- **SampleData - Fix missing option value names
+  ([23000](https://github.com/civicrm/civicrm-core/pull/23000))**
 
-- **Avoid PHP notices from smarty on pricefield table ([23046](https://github.com/civicrm/civicrm-core/pull/23046))**
+- **Fix undefined index by making sure that is_template is always defined
+  ([22993](https://github.com/civicrm/civicrm-core/pull/22993))**
 
-- **5.48 ([23047](https://github.com/civicrm/civicrm-core/pull/23047))**
+- **Don't lose search criteria for smart group built with search builder
+  ([23052](https://github.com/civicrm/civicrm-core/pull/23052))**
 
-- **5.48 ([23028](https://github.com/civicrm/civicrm-core/pull/23028))**
+- **Fix double encoding of document title on Contact view form
+  ([22928](https://github.com/civicrm/civicrm-core/pull/22928))**
 
-- **Link to Google Maps over HTTPs ([23044](https://github.com/civicrm/civicrm-core/pull/23044))**
+- **Group Contact create -> fix to use post hook for subscription records
+  ([22419](https://github.com/civicrm/civicrm-core/pull/22419))**
 
-- **Replace incorrect class comment ([23043](https://github.com/civicrm/civicrm-core/pull/23043))**
+- **Make note date required when creating note
+  ([22987](https://github.com/civicrm/civicrm-core/pull/22987))**
 
-- **[REF] Deprecate BAO_Contact::retrieve ([22966](https://github.com/civicrm/civicrm-core/pull/22966))**
+- **Respect zero value
+  ([23016](https://github.com/civicrm/civicrm-core/pull/23016))**
 
-- **CiviMail - Remove deprecated variable only used by Mosaico ([22689](https://github.com/civicrm/civicrm-core/pull/22689))**
+- **E-notice fix on pdfLetter
+  ([23007](https://github.com/civicrm/civicrm-core/pull/23007))**
 
-- **SearchKit - Fix "all selected" checkbox when selecting a single page … ([23003](https://github.com/civicrm/civicrm-core/pull/23003))**
+- **Add chartEnabled to expectedSmartyVariables for reports
+  ([23045](https://github.com/civicrm/civicrm-core/pull/23045))**
 
-- **add classes to the membership userdashboard page ([23021](https://github.com/civicrm/civicrm-core/pull/23021))**
+  Avoids another Smarty notice on reports which do not have charts enabled.
 
-- **Add utils for managing schema to extension upgrader base class ([22955](https://github.com/civicrm/civicrm-core/pull/22955))**
+- **Re-fix enotice on templateSelected
+  ([23008](https://github.com/civicrm/civicrm-core/pull/23008))**
 
-- **5.48 ([23023](https://github.com/civicrm/civicrm-core/pull/23023))**
+- **Notices on import - consolidate mapping variables
+  ([23119](https://github.com/civicrm/civicrm-core/pull/23119))**
 
-- **Remove grumpy-mode-incompatible isset in payment notification ([23014](https://github.com/civicrm/civicrm-core/pull/23014))**
+- **Emit deprecated warning for typo version of hook_civicrm_links
+  ([23117](https://github.com/civicrm/civicrm-core/pull/23117))**
 
-- **noexpand seems to never be assigned ([23005](https://github.com/civicrm/civicrm-core/pull/23005))**
+- **Fix enotice, simplify text on Saved field mapping
+  ([23114](https://github.com/civicrm/civicrm-core/pull/23114))**
 
-- **SearchKit - mark stable ([23010](https://github.com/civicrm/civicrm-core/pull/23010))**
+- **Fixes issue with duplicate is_billing on inline address forms.
+  ([22850](https://github.com/civicrm/civicrm-core/pull/22850))**
 
-- **Afform - Fix collapsible style ([23011](https://github.com/civicrm/civicrm-core/pull/23011))**
+- **Fix incorrect use of icon argument for crmButton function
+  ([23145](https://github.com/civicrm/civicrm-core/pull/23145))**
 
-- **Remove bad use of PHP assert, removed in PHP 8.0 ([22981](https://github.com/civicrm/civicrm-core/pull/22981))**
+- **Fix smarty notices in billing form
+  ([22992](https://github.com/civicrm/civicrm-core/pull/22992))**
 
-- **Keep "EntityFile" records until after Symfony "delete" hooks fire ([23002](https://github.com/civicrm/civicrm-core/pull/23002))**
+- **Avoid PHP notices in activity search
+  ([23093](https://github.com/civicrm/civicrm-core/pull/23093))**
 
-- **E-notice fix on pdfLetter ([23007](https://github.com/civicrm/civicrm-core/pull/23007))**
+- **Notice fixes in advanced search
+  ([22956](https://github.com/civicrm/civicrm-core/pull/22956))**
 
-- **Remove issets on pay_later_receipt ([23004](https://github.com/civicrm/civicrm-core/pull/23004))**
+- **Avoid trailing spaces in trigger output
+  ([23069](https://github.com/civicrm/civicrm-core/pull/23069))**
 
-- **dev/core#3132 Ensure that contacts are not placed in null island if g… ([23009](https://github.com/civicrm/civicrm-core/pull/23009))**
+- **Ensure formType is assigned to the template
+  ([23078](https://github.com/civicrm/civicrm-core/pull/23078))**
 
-- **Add workflow template for offline event ([22904](https://github.com/civicrm/civicrm-core/pull/22904))**
+- **Ensure pay_later variables assigned to template
+  ([22971](https://github.com/civicrm/civicrm-core/pull/22971))**
 
-- **SampleData - Fix missing option value names ([23000](https://github.com/civicrm/civicrm-core/pull/23000))**
+- **Ensure some variables are assigned to the template
+  ([22972](https://github.com/civicrm/civicrm-core/pull/22972))**
 
-- **Afform - reset managed entities when deleting a dashlet ([22957](https://github.com/civicrm/civicrm-core/pull/22957))**
+- **Ensure soft credit types are assigned to the template
+  ([23037](https://github.com/civicrm/civicrm-core/pull/23037))**
 
-- **5.48 ([22999](https://github.com/civicrm/civicrm-core/pull/22999))**
+- **Keep "EntityFile" records until after Symfony "delete" hooks fire
+  ([23002](https://github.com/civicrm/civicrm-core/pull/23002))**
 
-- **Enotice fix in grumpy smarty mode ([22970](https://github.com/civicrm/civicrm-core/pull/22970))**
+- **Fix property declarations
+  ([22965](https://github.com/civicrm/civicrm-core/pull/22965))**
 
-- **Remove use of deprecated FILTER_SANITIZE_STRING ([22982](https://github.com/civicrm/civicrm-core/pull/22982))**
+- **Schema - Fix boolean fields in civicrm_event and civicrm_contribution
+  ([22925](https://github.com/civicrm/civicrm-core/pull/22925))**
 
-- **Enotice fix (grumpy smarty) ([22988](https://github.com/civicrm/civicrm-core/pull/22988))**
+- **Do not default escape 'create new' links
+  ([22969](https://github.com/civicrm/civicrm-core/pull/22969))**
 
-- **Enotice fixes ([22989](https://github.com/civicrm/civicrm-core/pull/22989))**
+- **Do not escape hierarchical select
+  ([22991](https://github.com/civicrm/civicrm-core/pull/22991))**
 
-- **Grumpy smarty - Never escape 'initHideBoxes' ([22990](https://github.com/civicrm/civicrm-core/pull/22990))**
+- **Enotice fix in grumpy smarty mode
+ ([22970](https://github.com/civicrm/civicrm-core/pull/22970))**
 
-- **Do not escape hierarchical select ([22991](https://github.com/civicrm/civicrm-core/pull/22991))**
+- **Enotice fix (grumpy smarty)
+  ([22988](https://github.com/civicrm/civicrm-core/pull/22988))**
 
-- **Fix issues with case sorting/searching from case dashboard ([21514](https://github.com/civicrm/civicrm-core/pull/21514))**
+- **Enotice fixes
+  ([22989](https://github.com/civicrm/civicrm-core/pull/22989))**
 
-- **Make note date required when creating note ([22987](https://github.com/civicrm/civicrm-core/pull/22987))**
+- **Grumpy smarty - Never escape 'initHideBoxes'
+  ([22990](https://github.com/civicrm/civicrm-core/pull/22990))**
 
-- **Fix undefined index by making sure that is_template is always defined ([22993](https://github.com/civicrm/civicrm-core/pull/22993))**
+- **Remove bad use of PHP assert, removed in PHP 8.0
+  ([22981](https://github.com/civicrm/civicrm-core/pull/22981))**
 
-- **Afform - Easier layout creation with predefined container styles and built-in title ([22975](https://github.com/civicrm/civicrm-core/pull/22975))**
+- **Split mailing label formatting out from main format
+  ([22463](https://github.com/civicrm/civicrm-core/pull/22463))**
 
-- **Cleanup variable assigns in ContributionPage confirm ([22902](https://github.com/civicrm/civicrm-core/pull/22902))**
+### CiviCase
 
-- **5.48 ([22984](https://github.com/civicrm/civicrm-core/pull/22984))**
+- **Fix issues with case sorting/searching from case dashboard
+  ([21514](https://github.com/civicrm/civicrm-core/pull/21514))**
 
-- **Group Contact create -> fix to use post hook for subscription records ([22419](https://github.com/civicrm/civicrm-core/pull/22419))**
+### CiviContribute
 
-- **Fix copy button float in APIv4 Explorer ([22978](https://github.com/civicrm/civicrm-core/pull/22978))**
+- **Accounting entries incorrect in a number of cases... especially with pending
+  refunds and overpayments (Work towards
+  [dev/financial#186](https://lab.civicrm.org/dev/financial/-/issues/186):
+  [23076](https://github.com/civicrm/civicrm-core/pull/23076))**
 
-- **5.48 to master ([22980](https://github.com/civicrm/civicrm-core/pull/22980))**
+  Do not display partially paid & partially refunded for selection on edit.
 
-- **Do not default escape 'create new' links ([22969](https://github.com/civicrm/civicrm-core/pull/22969))**
+- **PCP: Account creation profile does not support contact image
+  ([dev/core#2986](https://lab.civicrm.org/dev/core/-/issues/2986):
+  [22223](https://github.com/civicrm/civicrm-core/pull/22223))**
 
-- **REF Cleanup activity getBespokeTokens() ([22974](https://github.com/civicrm/civicrm-core/pull/22974))**
+- **Avoid PHP notices from smarty on pricefield table
+  ([23046](https://github.com/civicrm/civicrm-core/pull/23046))**
 
-- **Add case ID and make subject optional for case detail report ([22973](https://github.com/civicrm/civicrm-core/pull/22973))**
+- **Remove more isset from offline receipt
+  ([23072](https://github.com/civicrm/civicrm-core/pull/23072))**
 
-- **5.48 ([22968](https://github.com/civicrm/civicrm-core/pull/22968))**
+- **do not URL Encode parameters for PayFlowPro
+  ([23054](https://github.com/civicrm/civicrm-core/pull/23054))**
 
-- **Fix property declarations ([22965](https://github.com/civicrm/civicrm-core/pull/22965))**
+- **Remove grumpy-mode-incompatible isset in payment notification
+  ([23014](https://github.com/civicrm/civicrm-core/pull/23014))**
 
-- **What if we stopped publishing Drupal 6 releases in 2022? ([22960](https://github.com/civicrm/civicrm-core/pull/22960))**
+- **Cleanup variable assigns in ContributionPage confirm
+  ([22902](https://github.com/civicrm/civicrm-core/pull/22902))**
 
-- **Afform - compose layouts with multiple SearchKit displays  ([22887](https://github.com/civicrm/civicrm-core/pull/22887))**
+- **First recurring payment (paypal ipn) - remove redundant status set,
+  start_date change
+  ([23081](https://github.com/civicrm/civicrm-core/pull/23081))**
 
-- **[NFC] - Compatibility for PHP-7.4/PHP-8 ([22962](https://github.com/civicrm/civicrm-core/pull/22962))**
+- **Remove issets on pay_later_receipt
+  ([23004](https://github.com/civicrm/civicrm-core/pull/23004))**
 
-- **Fix double encoding of document title on Contact view form ([22928](https://github.com/civicrm/civicrm-core/pull/22928))**
+- **Simplify fix for smarty/php notice on contributionview
+  ([22886](https://github.com/civicrm/civicrm-core/pull/22886))**
 
-- **5.48 ([22961](https://github.com/civicrm/civicrm-core/pull/22961))**
+- **Add paymentstatus helpers for doPayment and separate return params
+  ([22680](https://github.com/civicrm/civicrm-core/pull/22680))**
 
-- **Notice fixes in advanced search ([22956](https://github.com/civicrm/civicrm-core/pull/22956))**
+- **Expose payment processor error from PaymentProcessor.pay
+  ([22900](https://github.com/civicrm/civicrm-core/pull/22900))**
 
-- **5.48 ([22953](https://github.com/civicrm/civicrm-core/pull/22953))**
+- **Ensure pay_later_text is always assigned
+  ([22977](https://github.com/civicrm/civicrm-core/pull/22977))**
 
-- **REF - Split upgrade SQL into multiple tasks ([22950](https://github.com/civicrm/civicrm-core/pull/22950))**
+- **Stop passing settings into getTaxLabel
+  ([23040](https://github.com/civicrm/civicrm-core/pull/23040))**
 
-- **Search Kit - Auto-enable during normal installation ([22952](https://github.com/civicrm/civicrm-core/pull/22952))**
+- **Assign totalTaxAmount more consistently
+  ([23038](https://github.com/civicrm/civicrm-core/pull/23038))**
 
-- **dev/financial#6 Update the recurring contribution when we edit the template contribution ([21473](https://github.com/civicrm/civicrm-core/pull/21473))**
+### CiviEvent
 
-- **get membership type ID and number of terms from price_x fields ([22825](https://github.com/civicrm/civicrm-core/pull/22825))**
+- **Remove isset from event registration receipt
+  ([23064](https://github.com/civicrm/civicrm-core/pull/23064))**
 
-- **Schema - Fix boolean fields in civicrm_event and civicrm_contribution ([22925](https://github.com/civicrm/civicrm-core/pull/22925))**
+- **Add workflow template for offline event
+  ([22904](https://github.com/civicrm/civicrm-core/pull/22904))**
 
-- **dev/financial#6 Fix creating of template contribution when it has custom data ([21470](https://github.com/civicrm/civicrm-core/pull/21470))**
+- **Event Location fixes
+  ([23041](https://github.com/civicrm/civicrm-core/pull/23041))**
 
-- **5.48 ([22945](https://github.com/civicrm/civicrm-core/pull/22945))**
+- **Remove issets from event_offline_receipt pay_later_text
+  ([23060](https://github.com/civicrm/civicrm-core/pull/23060))**
 
-- **SearchKit - Improve checkbox UX for bulk actions ([22906](https://github.com/civicrm/civicrm-core/pull/22906))**
+### CiviMail
 
-- **Core#2918 Implement new UI for configuring dedupe rule usage. ([22804](https://github.com/civicrm/civicrm-core/pull/22804))**
+- **After upgrade to 5.48.0 Error: Mailing cannot be sent. There are missing or
+  invalid fields (subject,name,from_name,from_email,body)
+  ([dev/mail#107](https://lab.civicrm.org/dev/mail/-/issues/107):
+  [23141](https://github.com/civicrm/civicrm-core/pull/23141))**
 
-- **Enable APIv4 export action on UFGroup and UFField. ([22832](https://github.com/civicrm/civicrm-core/pull/22832))**
+- **CiviMail - Remove deprecated variable only used by Mosaico
+  ([22689](https://github.com/civicrm/civicrm-core/pull/22689))**
 
-- **Optimise isCustomDateField ([22943](https://github.com/civicrm/civicrm-core/pull/22943))**
+- **Set limit to 0 when processing send sms task
+  ([23166](https://github.com/civicrm/civicrm-core/pull/23166))**
 
-- **Dev/core#2524 Fix seriazliation parameter exception in APIv3 ([22934](https://github.com/civicrm/civicrm-core/pull/22934))**
+### CiviMember
 
-- **During upgrade log that it ran the sql when there is just a sql file and no corresponding task ([22939](https://github.com/civicrm/civicrm-core/pull/22939))**
+- **Recurring membership term is incorrect when using price sets
+  ([dev/membership#41](https://lab.civicrm.org/dev/membership/-/issues/41):
+  [22825](https://github.com/civicrm/civicrm-core/pull/22825))**
 
-- **5.48 ([22935](https://github.com/civicrm/civicrm-core/pull/22935))**
+- **Calculate lifetime memberships more accurately
+  ([22255](https://github.com/civicrm/civicrm-core/pull/22255))**
 
-- **SearchKit - Fix page size size ([22927](https://github.com/civicrm/civicrm-core/pull/22927))**
+- **Enotice fix - membership search
+  ([23136](https://github.com/civicrm/civicrm-core/pull/23136))**
 
-- **SearchKit - Add CiviMail integration ([22808](https://github.com/civicrm/civicrm-core/pull/22808))**
+## <a name="misc"></a>Miscellany
 
-- **5.48 ([22923](https://github.com/civicrm/civicrm-core/pull/22923))**
+- **Add utils for managing schema to extension upgrader base class
+  ([22955](https://github.com/civicrm/civicrm-core/pull/22955))**
 
-- **dev/core#2833 Fix Contact Type change on Backend Membership Credit Ca… ([21467](https://github.com/civicrm/civicrm-core/pull/21467))**
+- **add classes to the membership userdashboard page
+  ([23021](https://github.com/civicrm/civicrm-core/pull/23021))**
 
-- **Add page id and template type as data attributes in contribution templates ([21945](https://github.com/civicrm/civicrm-core/pull/21945))**
+- **Replace incorrect class comment
+  ([23043](https://github.com/civicrm/civicrm-core/pull/23043))**
 
-- **Fully deprecate `getTokenDetails` ([22483](https://github.com/civicrm/civicrm-core/pull/22483))**
+- **Finish conversion of static function to non-static
+  ([23042](https://github.com/civicrm/civicrm-core/pull/23042))**
 
-- **Split mailing label formatting out from main format ([22463](https://github.com/civicrm/civicrm-core/pull/22463))**
+- **Bump minimist from 1.2.5 to 1.2.6
+  ([23090](https://github.com/civicrm/civicrm-core/pull/23090))**
 
-- **Preserve selected tab when navigating between pages. ([22316](https://github.com/civicrm/civicrm-core/pull/22316))**
+- **Optimise isCustomDateField
+  ([22943](https://github.com/civicrm/civicrm-core/pull/22943))**
 
-- **[REF] Extract & stdise AmountBlockIsActive ([22291](https://github.com/civicrm/civicrm-core/pull/22291))**
+- **Access invoice_prefix setting directly
+  ([23039](https://github.com/civicrm/civicrm-core/pull/23039))**
 
-- **Calculate lifetime memberships more accurately ([22255](https://github.com/civicrm/civicrm-core/pull/22255))**
+- **Fix function calls to be non-static
+  ([23122](https://github.com/civicrm/civicrm-core/pull/23122))**
 
-- **Simplify fix for smarty/php notice on contributionview ([22886](https://github.com/civicrm/civicrm-core/pull/22886))**
+- **Fully deprecate `getTokenDetails`
+  ([22483](https://github.com/civicrm/civicrm-core/pull/22483))**
 
-- **Remove use of overrideDefaultCurrency method from eventInfo page. ([22802](https://github.com/civicrm/civicrm-core/pull/22802))**
+- **regenerate civicrm_generated
+  ([22917](https://github.com/civicrm/civicrm-core/pull/22917))**
 
-- **5.48 ([22920](https://github.com/civicrm/civicrm-core/pull/22920))**
+- **Test cleanup (minor)
+  ([23112](https://github.com/civicrm/civicrm-core/pull/23112))**
 
-- **regenerate civicrm_generated ([22917](https://github.com/civicrm/civicrm-core/pull/22917))**
+- **Simplify class inheritance
+  ([23121](https://github.com/civicrm/civicrm-core/pull/23121))**
 
-- **Add paymentstatus helpers for doPayment and separate return params ([22680](https://github.com/civicrm/civicrm-core/pull/22680))**
+- **Tpl cleanup - whitespace, wrong closing tag
+  ([23124](https://github.com/civicrm/civicrm-core/pull/23124))**
 
-- **dev/core#3085 - Checkbox fields on profile admin page can't be unchecked ([22916](https://github.com/civicrm/civicrm-core/pull/22916))**
+- **Consolidate MapTable.tpl
+  ([23138](https://github.com/civicrm/civicrm-core/pull/23138))**
 
-- **5.48 ([22914](https://github.com/civicrm/civicrm-core/pull/22914))**
+- **Test cleanup, deprecate ContributionSoft::retrieve
+  ([23106](https://github.com/civicrm/civicrm-core/pull/23106))**
 
-- **Allow API4 match to match an empty value ([22882](https://github.com/civicrm/civicrm-core/pull/22882))**
+- **Cleanup unnecessary variables
+  ([23111](https://github.com/civicrm/civicrm-core/pull/23111))**
 
-- **dev/core#3082 enhance EntityRef to show create new link when contact listing is fil… ([22830](https://github.com/civicrm/civicrm-core/pull/22830))**
+- **Remove use of deprecated FILTER_SANITIZE_STRING
+  ([22982](https://github.com/civicrm/civicrm-core/pull/22982))**
 
-- **Add action links for group. ([22912](https://github.com/civicrm/civicrm-core/pull/22912))**
+- **Remove unnecessary pass-by-ref
+  ([23110](https://github.com/civicrm/civicrm-core/pull/23110))**
 
-- **5.48 ([22910](https://github.com/civicrm/civicrm-core/pull/22910))**
+- **Remove unused variable
+  ([23113](https://github.com/civicrm/civicrm-core/pull/23113))**
 
-- **Add created & modified dates to "View Relationship" screen ([22909](https://github.com/civicrm/civicrm-core/pull/22909))**
+- **Remove double return statement
+  ([23108](https://github.com/civicrm/civicrm-core/pull/23108))**
 
-- **(dev/core#3106) Raise max# of editable websites (5 => 25) ([22908](https://github.com/civicrm/civicrm-core/pull/22908))**
+- **Remove use of overrideDefaultCurrency method from eventInfo page.
+  ([22802](https://github.com/civicrm/civicrm-core/pull/22802))**
 
-- **[NFC] Superficial cleanup ([22907](https://github.com/civicrm/civicrm-core/pull/22907))**
+- **Remove good intentions
+  ([23126](https://github.com/civicrm/civicrm-core/pull/23126))**
 
-- **Rename test class to reflect form ([22903](https://github.com/civicrm/civicrm-core/pull/22903))**
+- **Remove unused private variables
+  ([23123](https://github.com/civicrm/civicrm-core/pull/23123))**
 
-- **5.48 ([22901](https://github.com/civicrm/civicrm-core/pull/22901))**
+- **Remove 'in-between' class
+  ([23133](https://github.com/civicrm/civicrm-core/pull/23133))**
 
-- **Expose payment processor error from PaymentProcessor.pay ([22900](https://github.com/civicrm/civicrm-core/pull/22900))**
+- **Remove unused property
+  ([23137](https://github.com/civicrm/civicrm-core/pull/23137))**
 
-- **APIv4 - Get dynamic list of entity types ([22826](https://github.com/civicrm/civicrm-core/pull/22826))**
+- **Remove unnecessary pass-by-ref
+  ([23132](https://github.com/civicrm/civicrm-core/pull/23132))**
 
-- **5.48 ([22899](https://github.com/civicrm/civicrm-core/pull/22899))**
+- **Rename test class to reflect form
+  ([22903](https://github.com/civicrm/civicrm-core/pull/22903))**
 
-- **[REF] APIv4 - Use new class_args metadata to remove special handing ([22853](https://github.com/civicrm/civicrm-core/pull/22853))**
+- **Test usability fix
+  ([23096](https://github.com/civicrm/civicrm-core/pull/23096))**
 
-- **7.x 5.48 ([657](https://github.com/civicrm/civicrm-drupal/pull/657))**
+- **Cleanup FinancialAccount BAO to use `writeRecord` and deprecate `add`
+  ([23079](https://github.com/civicrm/civicrm-core/pull/23079))**
 
-- **7.x 5.48 ([655](https://github.com/civicrm/civicrm-drupal/pull/655))**
+- **[REF] Update Composer compile plugin
+  ([23088](https://github.com/civicrm/civicrm-core/pull/23088))**
 
-- **5.48 ([276](https://github.com/civicrm/civicrm-wordpress/pull/276))**
+- **[REF] Create polyfill function for array_key_first which only exists in
+  php7.3 and onwards
+  ([23095](https://github.com/civicrm/civicrm-core/pull/23095))**
 
-## <a name="misc"></a>Miscellany
+- **[REF] Extract & stdise AmountBlockIsActive
+  ([22291](https://github.com/civicrm/civicrm-core/pull/22291))**
+
+- **(REF) Schema - Fix boolean fields in various tables - Split commits
+  ([23134](https://github.com/civicrm/civicrm-core/pull/23134))**
+
+- **REF - Split upgrade SQL into multiple tasks
+  ([22950](https://github.com/civicrm/civicrm-core/pull/22950))**
+
+- **[REF] APIv4 - Use new class_args metadata to remove special handing
+  ([22853](https://github.com/civicrm/civicrm-core/pull/22853))**
+
+- **REF Cleanup activity getBespokeTokens()
+  ([22974](https://github.com/civicrm/civicrm-core/pull/22974))**
+
+- **[REF] Deprecate BAO_Contact::retrieve
+  ([22966](https://github.com/civicrm/civicrm-core/pull/22966))**
+
+- **[NFC] - Compatibility for PHP-7.4/PHP-8
+  ([22962](https://github.com/civicrm/civicrm-core/pull/22962))**
+
+- **[NFC] Superficial cleanup
+  ([22907](https://github.com/civicrm/civicrm-core/pull/22907))**
+
+- **[NFC] Fix URL documenting Batch entity
+  ([23062](https://github.com/civicrm/civicrm-core/pull/23062))**
 
 ## <a name="credits"></a>Credits
 
 This release was developed by the following code authors:
 
-adriano66; AGH Strategies - Alice Frumin, Andie Hunt; Blackfly Solutions - Alan Dixon; BrightMinded Ltd - Bradley Taylor; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Dave D; dependabot[bot]; Fuzion - Luke Stewart; Ginkgo Street Labs - Michael Z Daryabeygi; iXiam - Vangelis Pantazis; JMA Consulting - Monish Deb, Seamus Lee; Klangsoft - David Reedy Jr; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Oxfam Germany - Thomas Schüttler; PERORA SRL - Samuele Masetto; Progressive Technology Project - Jamie McClelland; Skvare - Sunil Pawar; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton
+AGH Strategies - Alice Frumin, Andie Hunt; Blackfly Solutions - Alan Dixon;
+BrightMinded Ltd - Bradley Taylor; Christian Wach; Circle Interactive -
+Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten;
+CiviDesk - Yashodha Chaku; Dave D; Future Processing - Adrian; Fuzion - Luke
+Stewart; Ginkgo Street Labs - Michael Z Daryabeygi; iXiam - Vangelis Pantazis;
+JMA Consulting - Monish Deb, Seamus Lee; Klangsoft - David Reedy Jr; Megaphone
+Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Oxfam
+Germany - Thomas Schüttler; PERORA SRL - Samuele Masetto; Progressive Technology
+Project - Jamie McClelland; Skvare - Sunil Pawar; Tadpole Collective - Kevin
+Cristiano; 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:
 
-adriano66; Agileware - Justin Freeman; ALL IN APPLI; Artful Robot - Rich Lott; Australian Greens - John Twyman; Betty Dolfing; Blackfly Solutions - Alan Dixon; BrightMinded Ltd - Bradley Taylor; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove, Shane Bill; Dave D; Francesc Bassas i Bullich; Ginkgo Street Labs - Michael Z Daryabeygi; iXiam - Vangelis Pantazis; JMA Consulting - Joe Murray, Monish Deb, Seamus Lee; Klangsoft - David Reedy Jr; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; PERORA SRL - Samuele Masetto; Progressive Technology Project - Jamie McClelland; Richard van Oosterhout; Semper IT - Karin Gerritsen; Skvare - Sunil Pawar; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton
+Agileware - Justin Freeman; ALL IN APPLI; Artful Robot - Rich Lott;
+Australian Greens - John Twyman; Betty Dolfing; Coop SymbioTIC - Mathieu Lutfy,
+Samuel Vanhove, Shane Bill; Francesc Bassas i Bullich; JMA Consulting - Joe
+Murray; Richard van Oosterhout; Semper IT - Karin Gerritsen;
 
 ## <a name="feedback"></a>Feedback