From 47fcfc5b427684b49eb5e029683ee5768fc0820a Mon Sep 17 00:00:00 2001 From: Andrew Hunt Date: Wed, 5 Jun 2019 18:42:23 -0400 Subject: [PATCH] 5.14.0 release notes (#14245) * 5.14.0 release notes: raw from script * 5.14.0 release notes: add boilerplate * sorting misc and deleting 5.13 commits * fixing up contributors * fixing up gitlab issues titles * annotating * rearranging sections * editing and clean up * 5.14.0 release notes: edits * 5.14.0 release notes: incorporated late changes --- contributor-key.yml | 7 + release-notes.md | 11 + release-notes/5.14.0.md | 539 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 557 insertions(+) create mode 100644 release-notes/5.14.0.md diff --git a/contributor-key.yml b/contributor-key.yml index fd08ae1bb1..b52dbc3d0b 100644 --- a/contributor-key.yml +++ b/contributor-key.yml @@ -516,6 +516,9 @@ organization: Edinburgh College jira : grahamsmith +- name : Guillaume Rischard + github : grischard + - github : guanhuan name : Guanhuan Chen organization: CompuCorp @@ -1220,6 +1223,10 @@ name : Rubén Pineda organization: iXiam +- github : scoobird + name : Morgan Robinson + organization: Palante + - name : Steve Binkowski jira : s.bink diff --git a/release-notes.md b/release-notes.md index 295abb5dcd..f9756c2562 100644 --- a/release-notes.md +++ b/release-notes.md @@ -14,6 +14,17 @@ Other resources for identifying changes are: * https://github.com/civicrm/civicrm-joomla * https://github.com/civicrm/civicrm-wordpress +## CiviCRM 5.14.0 + +Released June 5, 2019 + +- **[Synopsis](release-notes/5.14.0.md#synopsis)** +- **[Features](release-notes/5.14.0.md#features)** +- **[Bugs resolved](release-notes/5.14.0.md#bugs)** +- **[Miscellany](release-notes/5.14.0.md#misc)** +- **[Credits](release-notes/5.14.0.md#credits)** +- **[Feedback](release-notes/5.14.0.md#feedback)** + ## CiviCRM 5.13.5 Released May 29, 2019 diff --git a/release-notes/5.14.0.md b/release-notes/5.14.0.md new file mode 100644 index 0000000000..54c293dfe9 --- /dev/null +++ b/release-notes/5.14.0.md @@ -0,0 +1,539 @@ +# CiviCRM 5.14.0 + +Released June 5, 2019 + +- **[Synopsis](#synopsis)** +- **[Features](#features)** +- **[Bugs resolved](#bugs)** +- **[Miscellany](#misc)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## Synopsis + +| *Does this version...?* | | +|:--------------------------------------------------------------- |:-------:| +| Fix security vulnerabilities? | no | +| Change the database schema? | **yes** | +| Alter the API? | **yes** | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | **yes** | +| Introduce features? | **yes** | +| Fix bugs? | **yes** | + +## Features + +### Core CiviCRM + +- **Minimum supported PHP version is 7.0 + ([14437](https://github.com/civicrm/civicrm-core/pull/14437))** + + CiviCRM now requires PHP 7.0 or higher. While sites running PHP 5.6 will be + able to upgrade to CiviCRM 5.14.0, they will see an error message saying it is + no longer supported. Upcoming changes to CiviCRM will not be evaluated with + regard to PHP 5.6 compatibility, and new sites installing CiviCRM must have + PHP 7.0 or higher. + +- **civi.api.prepare - Allow dynamic wrappers (preliminary work for + [dev/core#873](https://lab.civicrm.org/dev/core/issues/873): + [14047](https://github.com/civicrm/civicrm-core/pull/14047))** + + This furthers the goal of allowing users to A/B test subject lines in Mosaico + by allowing extension developers to dynamically wrap an API using a listener + for the new civi.api.prepare event. + +- **Make DAO fields more consistent + ([14072](https://github.com/civicrm/civicrm-core/pull/14072))** + + This PR makes it so the 'where' field is populated regardless of whether + import or export is set. The goal of this pull request is to simplify some of + the metadata based magic by trying to get the meaning of import & export + closer to the original intent. + +- **Hook to alter menubar css variables & fix breakpoint in WP + ([14135](https://github.com/civicrm/civicrm-core/pull/14135) and + [14420](https://github.com/civicrm/civicrm-core/pull/14420))** + + A new hook, `hook_civicrm_getAssetUrl()`, allows modifying parameters for a + semi-static asset like a CSS file that takes certain parameters. The result + is that the menu bar is more flexible and configurable, and this fixes a + couple of issues with it in WordPress at certain widths. + +- **Replace jcalendar instances with datepicker (continues + [dev/core#561](https://lab.civicrm.org/dev/core/issues/561): + [14150](https://github.com/civicrm/civicrm-core/pull/14150) and + [14099](https://github.com/civicrm/civicrm-core/pull/14099))** + + The campaign search form and pledge forms now use datepicker instead of the + deprecated jcalendar for choosing dates. + +- **Result filter criteria doesn't show IS NULL/IS NOT NULL for operations + ([dev/core#865](https://lab.civicrm.org/dev/core/issues/865): + [14028](https://github.com/civicrm/civicrm-core/pull/14028))** + + Allow users to access to the operations `IS NULL` and `IS NOT NULL` when + choosing report filters for multiselect fields. + +- **Allow url to set IS NULL/ NOT NULL in report for operations + ([dev/core#876](https://lab.civicrm.org/dev/core/issues/876): + [14052](https://github.com/civicrm/civicrm-core/pull/14052))** + + Makes it so that the newly added filter options IS NULL/ NOT NULL (added + above) can be passed via URL. + +- **Convert dedupe select to select 2 and remove not-used var + ([14161](https://github.com/civicrm/civicrm-core/pull/14161))** + + On the Dedupe rules form, the "Field" drop-downs are converted to Select2 + fields. + +- **Add function filterLinks to return an array of links for an entity that can + be used by the API / form layer to generate a link + ([14112](https://github.com/civicrm/civicrm-core/pull/14112))** + + Adds the function filterLinks (CRM_Core_Action::filterLinks()) which can be + used to generate link html client-side. This function is currently unused, + added in preparation for CiviCase link refactoring. + +- **Add serialize metadata to tag used_for field + ([14096](https://github.com/civicrm/civicrm-core/pull/14096))** + + Add schema metadata to the Tag `used_for` field, which is a comma separated + list. + +- **Cron Status Check - Better hyperlinks + ([14085](https://github.com/civicrm/civicrm-core/pull/14085))** + + Improves the System Status check "Cron Not Running" by including a link to + most up to date documentation. + +- **Add pseudoconstant to UFField dao + ([14041](https://github.com/civicrm/civicrm-core/pull/14041))** + + Improves the UFField API by exposing the option list for the field + `fieldname`, before this change it was displayed as a text field instead of a + select. + +- **CQ: Switch core forms to be Entity Forms (continues + [dev/core#818](https://lab.civicrm.org/dev/core/issues/818): + [13887](https://github.com/civicrm/civicrm-core/pull/13887)))** + + The group settings form now relies upon a standard entity form for the most + part, with most fields defined by metadata. This removes boilerplate code + from the specific form function, standardizing the form and facilitating later + form improvements that can be made across the board. + +### CiviContribute + +- **CQ: Refactor Recurring Contribution Forms (continues + [dev/core#846](https://lab.civicrm.org/dev/core/issues/846): + [13994](https://github.com/civicrm/civicrm-core/pull/13994) and + [13993](https://github.com/civicrm/civicrm-core/pull/13993)))** + + This begins the process of converting recurring contribution forms to use + entity forms. It standardizes the way in which the payment processor is + loaded in the 3 forms that update subscriptions. + +- **Call Payment.create from payment.cancel + ([13689](https://github.com/civicrm/civicrm-core/pull/13689))** + + This change improves the Payment.create API by adding handling for negative + amounts and moves the Payment.cancel API to use the Payment.create API instead + of a bespoke function. + +- **Switch to using ContributionRecur.cancel API from CancelSubscription form + ([14033](https://github.com/civicrm/civicrm-core/pull/14033))** + + This change makes it so the CancelSubscription Form uses the + ContributionRecur.cancel API instead of a bespoke function. + +- **Update MasterCard icon to match branding guidelines + ([14078](https://github.com/civicrm/civicrm-core/pull/14078))** + + Updates the MasterCard icon to match the MasterCard branding guidelines: + https://brand.mastercard.com/brandcenter/mastercard-brand-mark/downloads.html + +### CiviEvent + +- **Event Cart: add support for the Credit Card type icons + ([14175](https://github.com/civicrm/civicrm-core/pull/14175))** + + Adds support for the Credit Card type icons (Amex, visa etc.) to Event Cart + registration forms. + +### Drupal Integration + +- **Drupal Views : relationships for standard groups + ([CRM-20006](https://issues.civicrm.org/jira/browse/CRM-20006): + [507](https://github.com/civicrm/civicrm-drupal/pull/507))** + + Adds relationships for standard groups to the CiviCRM/Drupal Views + integration. + +- **Enable contribution views to filter on empty Receipt and Thank You dates + ([573](https://github.com/civicrm/civicrm-drupal/pull/573))** + + Adds a view filter on "Thank You date" and "Receipt Date" for empty/not empty + which can be used to create a view showing contributions that + have/have not been thanked. + +## Bugs resolved + +### Core CiviCRM + +- **Email processor filing all emails as .unknown attachments + ([dev/core#940](https://lab.civicrm.org/dev/core/issues/940): + [14208](https://github.com/civicrm/civicrm-core/pull/14208))** + + Fixes a regression where emails being sent to the email-to-activity mailbox + were being saved with a `.unknown` extension and no content. + +- **.ics files should be whitelisted as file types for upload + ([dev/core#974](https://lab.civicrm.org/dev/core/issues/974): + [14531](https://github.com/civicrm/civicrm-core/pull/14351))** + +- **Regression - faster activity tab in 5.13 won't sort by source_name now + ([dev/core#934](https://lab.civicrm.org/dev/core/issues/934): + [14194](https://github.com/civicrm/civicrm-core/pull/14194) and + [14204](https://github.com/civicrm/civicrm-core/pull/14204))** + +- **Search displaying Related Contacts produces fatal error + ([dev/core#1002](https://lab.civicrm.org/dev/core/issues/1002): + [14409](https://github.com/civicrm/civicrm-core/pull/14409))** + +- **Error randomly appearing when Financial type ACL is enabled + ([dev/core#918](https://lab.civicrm.org/dev/core/issues/918): + [14165](https://github.com/civicrm/civicrm-core/pull/14165) and + [14168](https://github.com/civicrm/civicrm-core/pull/14168))** + + Fixes an undefined index error `Undefined index: status in + CRM_Utils_Check_Component_FinancialTypeAcls::checkFinancialAclReport()` when a + site has a Financial Type ACL enabled. + +- **utf8mb4 warning keeps coming back up + ([dev/core#880](https://lab.civicrm.org/dev/core/issues/880): + [14123](https://github.com/civicrm/civicrm-core/pull/14123))** + + This change makes it so users only receive the Mysql utf8mb4 status check + once, before this change the status check would show up whenever apache was + restarted. + +- **Fix import primary phone, primary email, add tests + ([14043](https://github.com/civicrm/civicrm-core/pull/14043))** + + Fixes a bug where importing a phone (or email) & choosing 'Primary' as the + location type resulted in the creation of a duplicate, sometimes with no + location type. + +- **Fix upgrade message db setting location + ([14083](https://github.com/civicrm/civicrm-core/pull/14083))** + + Updates the upgrade message "This database uses InnoDB Full Text Search for + optimized searching. The upgrade procedure has not been tested with this + feature. You should disable (and later re-enable) the feature by navigating + to..." to point to the right settings form "Administer => Customize Data and + Screens => Search Preferences" instead of "Administer => System Settings => + Miscellaneous". + +- **fix getAddressColumns() to respect tableAlias + ([14014](https://github.com/civicrm/civicrm-core/pull/14014))** + + Fixes `CRM_Report_Form::getAddressColumns()` function so that it no longer + returns an error when used twice. + +- **Ensure edit tooltip is always initially hidden in contact summary block + ([14065](https://github.com/civicrm/civicrm-core/pull/14065))** + + Ensures when a user does not have permission to edit a contact summary block, + the little "Edit" tooltip is hidden. + +- **Skip adding core resources when building assets + ([14010](https://github.com/civicrm/civicrm-core/pull/14010))** + +- **Advanced Search - Mailing column headers out of alignment + ([dev/core#248](https://lab.civicrm.org/dev/core/issues/248): + [14134](https://github.com/civicrm/civicrm-core/pull/14134))** + +- **Validate queue_id is a positive integer before passing to the BAO + ([14355](https://github.com/civicrm/civicrm-core/pull/14355))** + +### CiviCase + +- **Case activity query performs poorly on large databases + ([dev/core#832](https://lab.civicrm.org/dev/core/issues/832): + [14086](https://github.com/civicrm/civicrm-core/pull/14086) and + [14139](https://github.com/civicrm/civicrm-core/pull/14139))** + + This change enhances performance of CiviCase by streamlining the Case Activity + Query which was crashing the server for some sites with large databases by + producing too many temporary files. + +- **Make `hook_civicrm_pre()` and `hook_civicrm_post()` fire on CaseContacts + ([14030](https://github.com/civicrm/civicrm-core/pull/14030))** + +### CiviContribute + +- **Always bootstrap CRM_Utils_System on legacy IPN endpoint + ([dev/drupal#66](https://lab.civicrm.org/dev/drupal/issues/66), + [dev/core#973](https://lab.civicrm.org/dev/core/issues/973), and + [dev/core#1017](https://lab.civicrm.org/dev/core/issues/1017): + [14406](https://github.com/civicrm/civicrm-core/pull/14406) and + [14430](https://github.com/civicrm/civicrm-core/pull/14430))** + + This fixes a recent regression where recurring payments would fail to be + recorded in CiviCRM if the contribution was set to notify the legacy IPN URL. + +- **Create contribution before taking payment, per contribution page workflow + ([13837](https://github.com/civicrm/civicrm-core/pull/13837))** + + Makes it so the Contribution is created before the payment processor is + called, so there is always a contribution record even if payment fails. + +### CiviEvent + +- **Event Cart: pass the contactID to fix payment on Stripe + ([14173](https://github.com/civicrm/civicrm-core/pull/14173))** + + Fixes a bug where a user could not complete an Event Registration using Event + Cart and the Stripe payment processor. + +- **Event Cart: fix sending of email receipts + ([14170](https://github.com/civicrm/civicrm-core/pull/14170))** + + Fixes fatal error being thrown when an email receipt was sent from an Event + Cart registration. + +- **Event Cart: honor the allow_same_participant_emails setting + ([14174](https://github.com/civicrm/civicrm-core/pull/14174))** + + Ensures the Event Cart Checkout process honors the "allow participants with + the same email address". + +- **Event Cart: fix start_date formatting in line items during checkout + ([14169](https://github.com/civicrm/civicrm-core/pull/14169))** + + Ensures start dates are formatted according to the site's localization + preference during the Event Cart checkout process. + +- **CRM-18570 When creating a new event using a template the new event screen is + taking the default values directly from the custom fields, and not from what's + saved in the event template. + ([dev/core#553](https://lab.civicrm.org/dev/core/issues/553): + [14063](https://github.com/civicrm/civicrm-core/pull/14063))** + +### CiviMail + +- **Fixed double protocol being added in link by CKEditor. + ([14128](https://github.com/civicrm/civicrm-core/pull/14128))** + + Fixes a bug where adding action tokens using the CKEditor link interface, and + then editing them could cause double protocols (ex: http://https:// or + http://http://). + +- **Fix ts() usage in CRM_SMS_Form_Schedule + ([14111](https://github.com/civicrm/civicrm-core/pull/14111))** + + Allows translation of the "Send Mass SMS" form. + +### CiviMember + +- **Batch update membership type + ([dev/core#338](https://lab.civicrm.org/dev/core/issues/338): + [14064](https://github.com/civicrm/civicrm-core/pull/14064))** + + Fixes a regression when batch updating membership types and copying values + down the column. + +- **Membership status processor ignoring records where is_override=0 + ([dev/core#881](https://lab.civicrm.org/dev/core/issues/881): + [14059](https://github.com/civicrm/civicrm-core/pull/14059) and + [14073](https://github.com/civicrm/civicrm-core/pull/14073))** + +- **Back-office membership renewals don't display an on-screen notification + ([dev/membership#9](https://lab.civicrm.org/dev/membership/issues/9): + [14088](https://github.com/civicrm/civicrm-core/pull/14088))** + +- **Fix test / possible live error on submitting credit card renewals + ([14412](https://github.com/civicrm/civicrm-core/pull/14412))** + + This resolves intermittent errors in unit tests when renewing memberships due + to the `receive_date` not being set. + +- **Fixed auto populate of contact reference field on membership signup form + ([14077](https://github.com/civicrm/civicrm-core/pull/14077))** + +### Drupal Integration + +- **Civi 5.12.1 renders Quicksearch unreadable on Drupal 8 + ([dev/drupal#56](https://lab.civicrm.org/dev/drupal/issues/56): + [14080](https://github.com/civicrm/civicrm-core/pull/14080))** + + Fixes a regression where the text in the Quicksearch box was too light to read + so that it is darker and easier to read. + +- **Don't render an empty mailto link for empty email addresses + ([540](https://github.com/civicrm/civicrm-drupal/pull/540))** + + Fixes a bug in Views where an "email address" field set to output as a + `mailto:` link would still make a link if no email exists. + +- **Column next_sched_contribution should be next_sched_contribution_date for + Views integration + ([dev/drupal#48](https://lab.civicrm.org/dev/drupal/issues/48): + [578](https://github.com/civicrm/civicrm-drupal/pull/578))** + +### Joomla Integration + +- **Fix bug preventing affecting `cv --user` on Joomla + ([13890](https://github.com/civicrm/civicrm-core/pull/13890))** + +## Miscellany + +- **Bump php version to match core requirements + ([567](https://github.com/civicrm/civicrm-drupal/pull/567))** + +- **CiviUnitTestCase - Extract traits to facilitate extension testing + (preliminary work for + [dev/core#873](https://lab.civicrm.org/dev/core/issues/873): + [14044](https://github.com/civicrm/civicrm-core/pull/14044))** + +- **Refactor dedupe merger (preliminary work for + [dev/core#723](https://lab.civicrm.org/dev/core/issues/723): + [14144](https://github.com/civicrm/civicrm-core/pull/14144) and + [14146](https://github.com/civicrm/civicrm-core/pull/14146))** + +- **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception + (continues [dev/core#560](https://lab.civicrm.org/dev/core/issues/560): + [14143](https://github.com/civicrm/civicrm-core/pull/14143))** + +- **[REF] Add unit tests on contribution recur trxn_id, contribution recur + processor id (preparation for + [dev/core#830](https://lab.civicrm.org/dev/core/issues/830): + [14119](https://github.com/civicrm/civicrm-core/pull/14119))** + +- **Remove instances of $dao->free (continues + [dev/core#562](https://lab.civicrm.org/dev/core/issues/562): + [14070](https://github.com/civicrm/civicrm-core/pull/14070), + [14071](https://github.com/civicrm/civicrm-core/pull/14071) and + [14037](https://github.com/civicrm/civicrm-core/pull/14037))** + +- **(NFC) Add tests of retreiving notes for display on a contact record a… + ([14094](https://github.com/civicrm/civicrm-core/pull/14094))** + +- **(NFC) Update CRM/Contact to match new coder style + ([14022](https://github.com/civicrm/civicrm-core/pull/14022))** + +- **(NFC) Minor code style fixes + ([14015](https://github.com/civicrm/civicrm-core/pull/14015))** + +- **(NFC) Add in unit test checking that E2E test returns sensible contac… + ([14076](https://github.com/civicrm/civicrm-core/pull/14076))** + +- **NFC Whitespace formatting for formButtons.tpl + ([14107](https://github.com/civicrm/civicrm-core/pull/14107))** + +- **(NFC) Expand unit test to show off double protocol error + ([14141](https://github.com/civicrm/civicrm-core/pull/14141))** + +- **[REF] move gathering of location info to relevant function (towards + dev/core#723) ([14142](https://github.com/civicrm/civicrm-core/pull/14142))** + +- **[REF] Move the qfbug handling to it's own function (towards dev/core#723) + ([14140](https://github.com/civicrm/civicrm-core/pull/14140))** + +- **[REF] Use events for CMS resource loading + ([14131](https://github.com/civicrm/civicrm-core/pull/14131))** + +- **[REF] extract getConflicts function + ([14148](https://github.com/civicrm/civicrm-core/pull/14148))** + +- **[REF] Extract get cfields function + ([14151](https://github.com/civicrm/civicrm-core/pull/14151))** + +- **[REF] Use variable for menubar height + ([14122](https://github.com/civicrm/civicrm-core/pull/14122))** + +- **[REF] Clean up CRM_Contribute_Form_SearchTest + ([14068](https://github.com/civicrm/civicrm-core/pull/14068))** + +- **[REF] Extract formatLocationBlock from import parsing + ([14040](https://github.com/civicrm/civicrm-core/pull/14040))** + +- **[REF] function extraction in dedupe code + ([14157](https://github.com/civicrm/civicrm-core/pull/14157))** + +- **[REF] cleanup input parameters on extracted function + ([14050](https://github.com/civicrm/civicrm-core/pull/14050))** + +- **(REF) Fix accepted params in CustomValueTable::setValues + ([14079](https://github.com/civicrm/civicrm-core/pull/14079))** + +- **(REF) Fix unnecessary required param in contact BAO update + ([14075](https://github.com/civicrm/civicrm-core/pull/14075))** + +- **(REF) Reduce redundant code in CRM_Utils_Type::validate + ([14011](https://github.com/civicrm/civicrm-core/pull/14011))** + +- **REF Replace hardcoded IDs with pseudoconstants in activity form + ([14108](https://github.com/civicrm/civicrm-core/pull/14108))** + +- **(REF) Standardize UFField create function + ([14084](https://github.com/civicrm/civicrm-core/pull/14084))** + +- **[REF] calll formatLocationBlock from parent function. + ([14105](https://github.com/civicrm/civicrm-core/pull/14105))** + +- **(REF; dev/core#873) MailingAB - Migrate "copy winner" logic from JS to PHP + ([14045](https://github.com/civicrm/civicrm-core/pull/14045))** + +- **REF Don't pass activity object to addCaseActivityLinks + ([14110](https://github.com/civicrm/civicrm-core/pull/14110))** + +- **REF Use shared function to check inbound email permissions + ([14109](https://github.com/civicrm/civicrm-core/pull/14109))** + +- **[REF] Follow up tidy up on import fixes + ([14117](https://github.com/civicrm/civicrm-core/pull/14117))** + +- **Readability cleanup on EventIncome report (towards bringing it under + testing) ([13963](https://github.com/civicrm/civicrm-core/pull/13963))** + +- **Remove deprecated function + ([14039](https://github.com/civicrm/civicrm-core/pull/14039))** + +- **Revert "dev/core#553: Creating new event takes value from default value not + from saved template for custom fields" + ([14121](https://github.com/civicrm/civicrm-core/pull/14121))** + +- **Update docblock for doPayment function + ([13844](https://github.com/civicrm/civicrm-core/pull/13844))** + +- **[cleanup] remove CRM_Report_Form_Extended + ([14149](https://github.com/civicrm/civicrm-core/pull/14149))** + +## Credits + +This release was developed by the following code authors: + +AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Alok Patel; Australian +Greens - Seamus Lee; Christian Wach; CiviCRM - Coleman Watts, Tim Otten; +CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Electronic +Frontier Foundation - Mark Burdett; Freeform Solutions - Herb van den Dool; +Fuzion - Luke Stewart; Guillaume Rischard; JMA Consulting - Monish Deb; John +Kingsnorth; Korlon - Stuart Gaston; Lighthouse Design and Consulting - Brian +Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - +Matthew Wire; Pradeep Nayak; Squiffle Consulting - Aidan Saunders; Tadpole +Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton + +Most authors also reviewed code for this release; in addition, the following +reviewers contributed their comments: + +AGH Strategies - Tommy Bobo; DevApp - Adam Kwiatkowski; Fuzion - Jitendra +Purohit; JMA Consulting - Joe Murray; Nicol Wistreich; Palante - Morgan +Robinson; Skvare - Mark Hanna; Tapash Datta; + +## Feedback + +These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like +to provide feedback on them, please log in to https://chat.civicrm.org/civicrm +and contact `@agh1`. -- 2.25.1