# CiviCRM 5.28.0 Released August 5, 2020 - **[Synopsis](#synopsis)** - **[Features](#features)** - **[Bugs resolved](#bugs)** - **[Miscellany](#misc)** - **[Credits](#credits)** - **[Feedback](#feedback)** ## Synopsis | *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? | | ## Features ## Bugs resolved ### Core CiviCRM - **[NFC] Update flexmailer to be PHP7.4 compatible ([17779](https://github.com/civicrm/civicrm-core/pull/17779))** - **dev/core#1860 Fix installing on PHP7.3 Ubuntu 20.04 and MariaDB 10.3 ([17772](https://github.com/civicrm/civicrm-core/pull/17772))** - **Ensure that when normal routing trackable urls and opens in Joomla go… ([17760](https://github.com/civicrm/civicrm-core/pull/17760))** - **[NFC] Include flexmailer in distmaker ([17768](https://github.com/civicrm/civicrm-core/pull/17768))** - **Pre-upgrade message for php-intl shows twice ([17748](https://github.com/civicrm/civicrm-core/pull/17748))** - **Set locales for all domains when enabling multilingual ([17733](https://github.com/civicrm/civicrm-core/pull/17733))** - **Add permission metadata to contact is_deleted field ([17721](https://github.com/civicrm/civicrm-core/pull/17721))** - **dev/core#1852 Ensure all domains have the same value for locales ([17738](https://github.com/civicrm/civicrm-core/pull/17738))** - **[NFC] Fix some outdated wiki links ([17739](https://github.com/civicrm/civicrm-core/pull/17739))** - **Fix saving of State/Province Multi-select values ([17737](https://github.com/civicrm/civicrm-core/pull/17737))** - **5.27 ([17736](https://github.com/civicrm/civicrm-core/pull/17736))** - **API/DAO Metadata - Retain versioning metadata for possible usage in runtime+tooling ([17735](https://github.com/civicrm/civicrm-core/pull/17735))** - **5.27 ([17732](https://github.com/civicrm/civicrm-core/pull/17732))** - **[REF] Ship Flexmailer extension with Core ([17669](https://github.com/civicrm/civicrm-core/pull/17669))** - **[NFC] Fix contributor key for Lighthouse Consulting and Design ([17727](https://github.com/civicrm/civicrm-core/pull/17727))** - **Remove obsolete function formatWikiURL ([17726](https://github.com/civicrm/civicrm-core/pull/17726))** - **dev/wordpress#61 - Financial Account by Relationship lookup is incorrectly using label not name ([17701](https://github.com/civicrm/civicrm-core/pull/17701))** - **REF Access the method not the property directly to check if a payment processor supports recurring ([17602](https://github.com/civicrm/civicrm-core/pull/17602))** - **5.27 ([17719](https://github.com/civicrm/civicrm-core/pull/17719))** - **Connect to database using SET NAMES utf8mb4 ([17716](https://github.com/civicrm/civicrm-core/pull/17716))** - **Fix CRM_Utils_JS::dedupeClosures to ignore comments ([17717](https://github.com/civicrm/civicrm-core/pull/17717))** - **NFC cleanup docblocks in CRM_Utils_JS ([17714](https://github.com/civicrm/civicrm-core/pull/17714))** - **5.27 ([17715](https://github.com/civicrm/civicrm-core/pull/17715))** - **5.27 ([17712](https://github.com/civicrm/civicrm-core/pull/17712))** - **CRM_Utils_JS - also dedupe 'use strict' directive when deduping closures ([17711](https://github.com/civicrm/civicrm-core/pull/17711))** - **[REF] Cleanup function for retrieving contact types. ([17676](https://github.com/civicrm/civicrm-core/pull/17676))** - **Remove slow join from activity search ([17250](https://github.com/civicrm/civicrm-core/pull/17250))** - **dev/core#1844 - Temporary workaround to avoid all PR's failing tests ([17708](https://github.com/civicrm/civicrm-core/pull/17708))** - **dev/core#1833 Change default value of participant_listing_id to NULL … ([17677](https://github.com/civicrm/civicrm-core/pull/17677))** - **APIv4 - Improve row_count to work with HAVING, GROUP BY, and SELECT ([17704](https://github.com/civicrm/civicrm-core/pull/17704))** - **Remove summary row from charts, when rollup used ([17412](https://github.com/civicrm/civicrm-core/pull/17412))** - **Add selfService flag to cancelSubscription getText so we can display different text for each case ([17687](https://github.com/civicrm/civicrm-core/pull/17687))** - **dev/core#1776 Ensure that all fee financial item transaction date is … ([17389](https://github.com/civicrm/civicrm-core/pull/17389))** - **dev/core#890 - Multiple line item shown on view contribution if parti… ([16956](https://github.com/civicrm/civicrm-core/pull/16956))** - **Multi record import screen fix ([17697](https://github.com/civicrm/civicrm-core/pull/17697))** - **Payment.create should not set contribution date to today ([17688](https://github.com/civicrm/civicrm-core/pull/17688))** - **dev/core#1829 - Custom Date field with format=yy displays calendar ic… ([17664](https://github.com/civicrm/civicrm-core/pull/17664))** - **[Test framework] dev/wordpress#61 - Fix case-sensitive spelling in unit test ([17689](https://github.com/civicrm/civicrm-core/pull/17689))** - **core#1840 - Can't add/change recipient on non-bulk SMS ([17691](https://github.com/civicrm/civicrm-core/pull/17691))** - **Use psr-4 instead of psr-0 in Civi directory ([17690](https://github.com/civicrm/civicrm-core/pull/17690))** - **APIv4 - Add more SQL functions ([17692](https://github.com/civicrm/civicrm-core/pull/17692))** - **dev/core#1634 - Remove database index on medium_id from civicrm_activity ([17686](https://github.com/civicrm/civicrm-core/pull/17686))** - **APIv4 - add meta-metadata to supplement #17527 ([17685](https://github.com/civicrm/civicrm-core/pull/17685))** - **dev/core#1681 Block sites from upgrading if on a MySQL version less t… ([17558](https://github.com/civicrm/civicrm-core/pull/17558))** - **Revert "dev/core#1603 remove places where taxAmount is rounded" ([17680](https://github.com/civicrm/civicrm-core/pull/17680))** - **Sort options without relying on unavailable buildOptions param ([17621](https://github.com/civicrm/civicrm-core/pull/17621))** - **APIv4 Explorer - UI support for join ON clause ([17682](https://github.com/civicrm/civicrm-core/pull/17682))** - **dev/core#1817 - Editing a custom field option value from the custom field admin screen changes the name field ([17681](https://github.com/civicrm/civicrm-core/pull/17681))** - **Add icons to standalone contact tasks ([17667](https://github.com/civicrm/civicrm-core/pull/17667))** - **Throw exception if id not passed into discard ([17666](https://github.com/civicrm/civicrm-core/pull/17666))** - **5.27 ([17679](https://github.com/civicrm/civicrm-core/pull/17679))** - **[REF] Ensure that our custom error handler is called when jquery vali… ([17673](https://github.com/civicrm/civicrm-core/pull/17673))** - **[REF] Fix javascript syntax error ([17678](https://github.com/civicrm/civicrm-core/pull/17678))** - **[NFC] Fix Unit test failure on MySQL 8 due to mysql ordering issue ([17674](https://github.com/civicrm/civicrm-core/pull/17674))** - **Improve PropertyBag handling of offsetGet and custom properties; add … ([17588](https://github.com/civicrm/civicrm-core/pull/17588))** - **Export fix ([17644](https://github.com/civicrm/civicrm-core/pull/17644))** - **Fix validation of select2 fields in "On behalf of Organisation" block ([17672](https://github.com/civicrm/civicrm-core/pull/17672))** - **[REF] Fix jquery error message display on select2 field validation ([17671](https://github.com/civicrm/civicrm-core/pull/17671))** - **[REF] Fix allowing users to clear values for raido custom fields when… ([17670](https://github.com/civicrm/civicrm-core/pull/17670))** - **Fix master regression on inactive contact types ([17665](https://github.com/civicrm/civicrm-core/pull/17665))** - **Pass required attribute for quickform fields through to form ([16488](https://github.com/civicrm/civicrm-core/pull/16488))** - **Use PHPUnit7 as the primary test runner for PHP versions >= 7.1 when using the phpunit script ([17615](https://github.com/civicrm/civicrm-core/pull/17615))** - **[REF] Extract getTestTrxnID ([17642](https://github.com/civicrm/civicrm-core/pull/17642))** - **Fix A.net to retrieve processor id from property bag ([17654](https://github.com/civicrm/civicrm-core/pull/17654))** - **[NFC] Fix tests in prepartion for phpunit7 ([17663](https://github.com/civicrm/civicrm-core/pull/17663))** - **[REF] Fix Compatability issue with flexmailer caused by the PHP7.4 fix ([17660](https://github.com/civicrm/civicrm-core/pull/17660))** - **Revert "[NFC] Fix tests in prepartion for phpunit7" ([17662](https://github.com/civicrm/civicrm-core/pull/17662))** - **[NFC] Fix tests in preparation for phpunit7 ([17661](https://github.com/civicrm/civicrm-core/pull/17661))** - **dev/translation#48 Implement Brick/Money to better handle money values ([17608](https://github.com/civicrm/civicrm-core/pull/17608))** - **[NFC] Remove instances where html is passed to crmMoney ([17612](https://github.com/civicrm/civicrm-core/pull/17612))** - **[REF] Consolidate code in processMembership ([17611](https://github.com/civicrm/civicrm-core/pull/17611))** - **5.27 ([17656](https://github.com/civicrm/civicrm-core/pull/17656))** - **dev/core#1566 Fix display value for money radio custom field ([17008](https://github.com/civicrm/civicrm-core/pull/17008))** - **Misspelled word ([17652](https://github.com/civicrm/civicrm-core/pull/17652))** - **Add serialize metadata to domain.locales field ([17651](https://github.com/civicrm/civicrm-core/pull/17651))** - **[REF] Ensure that the Manual Payment Processor sets the _paymentProc… ([17648](https://github.com/civicrm/civicrm-core/pull/17648))** - **[REF] Fix PHP7.4 Test fails when we are accessing array keys when the… ([17649](https://github.com/civicrm/civicrm-core/pull/17649))** - **[REF] Fix parts of code where curly brackets were being used for array or string access which is deprecated in PHP7.4 ([17647](https://github.com/civicrm/civicrm-core/pull/17647))** - **Fix isMultilingual to use static caching and respect current domain ([17646](https://github.com/civicrm/civicrm-core/pull/17646))** - **Add CRM_Core_Form::isFormInViewMode and CRM_Core_Form::isFormInEditMode ([17637](https://github.com/civicrm/civicrm-core/pull/17637))** - **Bug in Grant statistics report ([17640](https://github.com/civicrm/civicrm-core/pull/17640))** - **Price Field Form: save the fid for the postProcess hook ([17639](https://github.com/civicrm/civicrm-core/pull/17639))** - **Add EntityFormTrait to pricefieldForm - stdised getEntityId() ([17516](https://github.com/civicrm/civicrm-core/pull/17516))** - **5.27 ([17634](https://github.com/civicrm/civicrm-core/pull/17634))** - **5.27 ([17631](https://github.com/civicrm/civicrm-core/pull/17631))** - **dev/core#1433 - Add deprecation warning for CRM_Case_XMLProcessor::allActivityTypes ([17627](https://github.com/civicrm/civicrm-core/pull/17627))** - **dev/core#1433 - Replace last instances of calls to CRM_Case_XMLProcessor::allActivityTypes() ([17616](https://github.com/civicrm/civicrm-core/pull/17616))** - **dev/core#1603 remove places where taxAmount is rounded ([17610](https://github.com/civicrm/civicrm-core/pull/17610))** - **dev/core#1433 - Replace call to CRM_Case_XMLProcessor::allActivityTypes() that doesn't cache properly ([17614](https://github.com/civicrm/civicrm-core/pull/17614))** - **5.27 to master ([17613](https://github.com/civicrm/civicrm-core/pull/17613))** - **[REF] Fix issue with using array access tools on NULL values ([17600](https://github.com/civicrm/civicrm-core/pull/17600))** - **[REF] Replace incorrect usage of array_key_exists with property_exist… ([17604](https://github.com/civicrm/civicrm-core/pull/17604))** - **[NFC] Add assertions to existing test to lock in current behaviour ([17605](https://github.com/civicrm/civicrm-core/pull/17605))** - **[NFC] Update mocking to use getMockBuilder instead instead of createMock ([17606](https://github.com/civicrm/civicrm-core/pull/17606))** - **dev/financial#131 Give deprecation notice if the payment processor returns an error ([17596](https://github.com/civicrm/civicrm-core/pull/17596))** - **dev/financial#131 Remove last places where Core Processors return error object ([17597](https://github.com/civicrm/civicrm-core/pull/17597))** - **[REF] Add test for renewing old expired membership via form ([17564](https://github.com/civicrm/civicrm-core/pull/17564))** - **[REF] Update packages to work with PHP7.4 ([17598](https://github.com/civicrm/civicrm-core/pull/17598))** - **[REF] Fix another couple of uses of array_key_exists when the variabl… ([17601](https://github.com/civicrm/civicrm-core/pull/17601))** - **[REF] Fix some additional issues where curly braces were being used t… ([17599](https://github.com/civicrm/civicrm-core/pull/17599))** - **NFC Formatting cleanup on contribution/recur templates ([17603](https://github.com/civicrm/civicrm-core/pull/17603))** - **Add smarty error event ([16918](https://github.com/civicrm/civicrm-core/pull/16918))** - **dev/core#1803 Update guzzlehttp, psr7, psrlog, cxn-pc ([17551](https://github.com/civicrm/civicrm-core/pull/17551))** - **[REF] Remove deprecated methods of booting drupal container and getti… ([17522](https://github.com/civicrm/civicrm-core/pull/17522))** - **Fix retrieving MySQL version for checking as part of install requirem… ([17593](https://github.com/civicrm/civicrm-core/pull/17593))** - **dev/financial#131 Remove legacy error handling from Paypal code. ([17592](https://github.com/civicrm/civicrm-core/pull/17592))** - **Update has_separator field in civicrm_navigation ([17579](https://github.com/civicrm/civicrm-core/pull/17579))** - **[Ref] Convert Authorize.net to use Guzzle for update subscription class, add test ([17585](https://github.com/civicrm/civicrm-core/pull/17585))** - **[Ref] Mark unused date functions as deprecated ([17487](https://github.com/civicrm/civicrm-core/pull/17487))** - **dev/core#1716 add customPre hook ([17144](https://github.com/civicrm/civicrm-core/pull/17144))** - **Remove unreachable lines ([17563](https://github.com/civicrm/civicrm-core/pull/17563))** - **EventInfo template cleanup ([17581](https://github.com/civicrm/civicrm-core/pull/17581))** - **Allow HEAD requests to generate a form key ([17321](https://github.com/civicrm/civicrm-core/pull/17321))** - **5.27 ([17587](https://github.com/civicrm/civicrm-core/pull/17587))** - **5.27 ([17583](https://github.com/civicrm/civicrm-core/pull/17583))** - **Fix fatal error regression in master ([17584](https://github.com/civicrm/civicrm-core/pull/17584))** - **Fix duplicate upgrade function ([17582](https://github.com/civicrm/civicrm-core/pull/17582))** - **dev/financial#131 Fix Elavon processor to throw exceptions ([17565](https://github.com/civicrm/civicrm-core/pull/17565))** - **Add icons to multi-valued custom groups and display on contact tab ([17531](https://github.com/civicrm/civicrm-core/pull/17531))** - **APIv4 - Skip empty leaves in WHERE clause ([17576](https://github.com/civicrm/civicrm-core/pull/17576))** - **(dev/core#1787) Regression : File fields export results in DB error ([17578](https://github.com/civicrm/civicrm-core/pull/17578))** - **[REF] Replace incorrect usages of array_key_exists when the variable … ([17573](https://github.com/civicrm/civicrm-core/pull/17573))** - **dev/core#183 Use CRM_Utils_SQL_TempTable for generating temp table na… ([15796](https://github.com/civicrm/civicrm-core/pull/15796))** - **[REF] Using {} to access string or array offsets has been deprecated … ([17574](https://github.com/civicrm/civicrm-core/pull/17574))** - **dev/core#1749 Fix missing parameter in link to logging detail ([17440](https://github.com/civicrm/civicrm-core/pull/17440))** - **Include a new SqlParallel queue type that enables multiple queue runners to process in parallel ([15422](https://github.com/civicrm/civicrm-core/pull/15422))** - **[REF] Using ternary operation without nesting is deprecated and also … ([17575](https://github.com/civicrm/civicrm-core/pull/17575))** - **[REF] Add in upgrade step to populate missing contact_type.name field ([17570](https://github.com/civicrm/civicrm-core/pull/17570))** - **dev/core#1809 - Add start/end adjustment columns to membership status… ([17571](https://github.com/civicrm/civicrm-core/pull/17571))** - **Set ContactType.name as required in the schema. ([17548](https://github.com/civicrm/civicrm-core/pull/17548))** - **[NFC] Minor code cleanup ([17566](https://github.com/civicrm/civicrm-core/pull/17566))** - **Remove deprecated billingID from baseIPN ([17525](https://github.com/civicrm/civicrm-core/pull/17525))** - **[Ref] Remove never reachable lines. ([17556](https://github.com/civicrm/civicrm-core/pull/17556))** - **dev/financial#131 Fix Realex processor to correctly throw an exception ([17559](https://github.com/civicrm/civicrm-core/pull/17559))** - **dev/core#1801 Fix hardcoded activity priority by label ([17557](https://github.com/civicrm/civicrm-core/pull/17557))** - **[REF] Replace the deprecated system_rebuild_module_data function with… ([17515](https://github.com/civicrm/civicrm-core/pull/17515))** - **dev/core#560 Add in deprecated function warning now that fatal is dep… ([17555](https://github.com/civicrm/civicrm-core/pull/17555))** - **dev/core#1782 Set activity_date_time and created_date to default to current_timestamp ([17450](https://github.com/civicrm/civicrm-core/pull/17450))** - **[Ref] Convert Authorize.net doDirectPayment to use guzzle & add test ([17501](https://github.com/civicrm/civicrm-core/pull/17501))** - **Fix "Undefined variable: entryFound" notice on Bookkeeping report ([17554](https://github.com/civicrm/civicrm-core/pull/17554))** - **Payment Propertybag remove warning ([17506](https://github.com/civicrm/civicrm-core/pull/17506))** - **Support passing old method name into deprecatedFunctionWarning ([17552](https://github.com/civicrm/civicrm-core/pull/17552))** - **Update contributor-key.yml ([17553](https://github.com/civicrm/civicrm-core/pull/17553))** - **Remove last instance of CRM_Core_Error::fatal.... ([17550](https://github.com/civicrm/civicrm-core/pull/17550))** - **Allow adding datepicker to metadata based settings pages ([16610](https://github.com/civicrm/civicrm-core/pull/16610))** - **Fix PHP notice when we don't have credit card params ([16514](https://github.com/civicrm/civicrm-core/pull/16514))** - **CRM_Core_I18n::setLocale() - Fix bug with repeated usage ([17374](https://github.com/civicrm/civicrm-core/pull/17374))** - **Add payment processor to details on list of recurring contributions ([17179](https://github.com/civicrm/civicrm-core/pull/17179))** - **dev/core#1798 - "End of yesterday" Relative Date Filter ([17512](https://github.com/civicrm/civicrm-core/pull/17512))** - **Zip code range search only supports numeric zip codes ([17523](https://github.com/civicrm/civicrm-core/pull/17523))** - **[Ref] Remove another instance of fatal() ([17549](https://github.com/civicrm/civicrm-core/pull/17549))** - **[Ref] Readability extraction in Dummy class ([17543](https://github.com/civicrm/civicrm-core/pull/17543))** - **Remove isThrowException from CRM_Utils_Type::validate() signature ([17546](https://github.com/civicrm/civicrm-core/pull/17546))** - **dev/core#560 Convert final CRM_Core_Error::fatal to statusBounces or … ([17545](https://github.com/civicrm/civicrm-core/pull/17545))** - **Fix validateAll to no longer support unused abort param ([17544](https://github.com/civicrm/civicrm-core/pull/17544))** - **dev/financial#131 Fix Eway processor to throw exceptions rather than return errors ([17542](https://github.com/civicrm/civicrm-core/pull/17542))** - **[REF] Replace some instances of fatal with thrown exceptions. ([17533](https://github.com/civicrm/civicrm-core/pull/17533))** - **APIv4 - filter getActions results based on user permissions ([17540](https://github.com/civicrm/civicrm-core/pull/17540))** - **[Ref] Simplify the replacing of the email with the email from the url ([17491](https://github.com/civicrm/civicrm-core/pull/17491))** - **[Ref] Throw exceptions from Authorize.net rather than return errors ([17500](https://github.com/civicrm/civicrm-core/pull/17500))** - **[Ref] Remove calls to, and deprecate, unhandled function ([17499](https://github.com/civicrm/civicrm-core/pull/17499))** - **[REF] Remove handling for 2 fields not on the form ([17504](https://github.com/civicrm/civicrm-core/pull/17504))** - **Replace calls to fatal with statusBounces ([17539](https://github.com/civicrm/civicrm-core/pull/17539))** - **dev/core#560 Replace deprecated CRM_Core_Erorr::fatal with Exceptions… ([17541](https://github.com/civicrm/civicrm-core/pull/17541))** - **Add isBackOffice, isPayLater, getPaymentMode helpers to frontendpaymentformtrait ([17511](https://github.com/civicrm/civicrm-core/pull/17511))** - **Remove instances of fatal from upgrade folder ([17534](https://github.com/civicrm/civicrm-core/pull/17534))** - **Remove unused deprecated class ([17535](https://github.com/civicrm/civicrm-core/pull/17535))** - **[NFC] Update existing APIv3 MembershipType Tests to also test against… ([17528](https://github.com/civicrm/civicrm-core/pull/17528))** - **[Ref] Remove some instances of fatal in BAO classes ([17536](https://github.com/civicrm/civicrm-core/pull/17536))** - **5.27 ([17538](https://github.com/civicrm/civicrm-core/pull/17538))** - **Fix probably-unused core payment processors to throw extensions ([17502](https://github.com/civicrm/civicrm-core/pull/17502))** - **Payment instrument ID is not required at processorform level ([17510](https://github.com/civicrm/civicrm-core/pull/17510))** - **5.27 ([17530](https://github.com/civicrm/civicrm-core/pull/17530))** - **Add titles and icons to entities ([17527](https://github.com/civicrm/civicrm-core/pull/17527))** - **[NFC] Update PHPUnit Configuration file to be compatible with PHPUnit7 ([605](https://github.com/civicrm/civicrm-drupal/pull/605))** - **Fix issue $this ([589](https://github.com/civicrm/civicrm-drupal/pull/589))** - **dev/core#560 Remove unnecessary CRM_Core_Error::fatal call ([602](https://github.com/civicrm/civicrm-drupal/pull/602))** - **Remove `/` from the beginning and end of query string Merging as per discussion with @kcristiano ([207](https://github.com/civicrm/civicrm-wordpress/pull/207))** - **[NFC] Update PHPUnit configuration to be compatible with PHPUnit7 ([206](https://github.com/civicrm/civicrm-wordpress/pull/206))** - **Fix discovery of page templates in theme subdirectories ([204](https://github.com/civicrm/civicrm-wordpress/pull/204))** - **5.27 ([202](https://github.com/civicrm/civicrm-wordpress/pull/202))** - **[NFC] Update PHPUnit configuration to be compatible with PHPUnit7 ([120](https://github.com/civicrm/civicrm-backdrop/pull/120))** - **dev/core#1137 - Make ssl database connections without client certificates work in php7 ([298](https://github.com/civicrm/civicrm-packages/pull/298))** - **Upgrade HTML Purifier to v4.12.0 to support for PHP7.4 ([297](https://github.com/civicrm/civicrm-packages/pull/297))** - **Add trigger for smarty error event ([292](https://github.com/civicrm/civicrm-packages/pull/292))** - **Remove a usage of deprecated funtion get_magic_quotes_gpc and also sw… ([296](https://github.com/civicrm/civicrm-packages/pull/296))** - **dev/core#560 Replace Depreacted CRM_Core_Error::fatal with an Exception ([295](https://github.com/civicrm/civicrm-packages/pull/295))** ## Miscellany ## Credits This release was developed by the following code authors: AGH Strategies - Alice Frumin, Andrew Hunt; British Humanist Association - Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Ivan; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Dietermartens; ES-Progress - Sandor Semsey; Fuzion - Jitendra Purohit; JMA Consulting - Seamus Lee; Lighthouse Consulting and Design - Brian Shaughnessy; marcineqpol; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Tadpole Collective - Kevin Cristiano; twocs; Wikimedia Foundation - Eileen McNaughton Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments: a-n The Artists Information Company - William Mortada; Agileware - Francis Whittle, Justin Freeman; Andrew Thompson; Artful Robot - Rich Lott; Betty Dolfing; Blackfly Solutions - Alan Dixon; British Humanist Association - Andrew West; Christian Wach; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - Ivan; Coop SymbioTIC - Mathieu Lutfy; Dave D; Dietermartens; Erioldoesdesign; ES-Progress - Sandor Semsey; Fuzion - Jitendra Purohit, Luke Stewart, Peter Davis; JMA Consulting - Joe Murray, Seamus Lee; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Semper IT - Karin Gerritsen; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Timbsoft Technologies - Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton ## 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`.