# CiviCRM 5.27.0 Released July 1, 2020 - **[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 - **advanced search: allow searching by first/last name; pass values from quicksearch ([dev/core#1722](https://lab.civicrm.org/dev/core/-/issues/1722): [17118](https://github.com/civicrm/civicrm-core/pull/17118))** Makes First and last name available on the advanced search form, and ensures quick search filters are passed to the appropriate field. - **Add more search options ([17372](https://github.com/civicrm/civicrm-core/pull/17372))** Improves the Individual search form by adding fields for" `organization_name`, `first_name`, `nick_name` and `last_name`. - **Investigate php currency library (Work Towards [dev/translation#48](https://lab.civicrm.org/dev/translation/-/issues/48): [17668](https://github.com/civicrm/civicrm-core/pull/17668))** Adds a system check for a php extension (INTL) that will be required for CiviCRM 5.28 and up. - **End of life planning for MySQL server 5.0 - 5.6 ([dev/core#1681](https://lab.civicrm.org/dev/core/-/issues/1681): [17518](https://github.com/civicrm/civicrm-core/pull/17518) and [17496](https://github.com/civicrm/civicrm-core/pull/17496))** Adds a notice about 5.28 Dropping MySQL 5.5 Support. - **Add MembershipType to Api4 ([17448](https://github.com/civicrm/civicrm-core/pull/17448))** Adds a Membership Type entity to APIv4. - **Api4: Add Price api entities ([17363](https://github.com/civicrm/civicrm-core/pull/17363))** Adds Price entities to APIv4. - **APIv4 - Improve pseudoconstant suffix support ([17368](https://github.com/civicrm/civicrm-core/pull/17368) and [17482](https://github.com/civicrm/civicrm-core/pull/17482))** Improves suffix support in APIv4. - **APIv4 - support custom entity joins ([17394](https://github.com/civicrm/civicrm-core/pull/17394))** Improves APIv4 so that it supports implicit and explicit joins onto custom entities. - **Add ContributionRecur crud api ([17299](https://github.com/civicrm/civicrm-core/pull/17299))** Adds Contribution Recur to APIv4. - **Make reCAPTCHA settings clearer ([17426](https://github.com/civicrm/civicrm-core/pull/17426))** Improves help text for reCAPTCHA settings. - **Wrap separators in price field in spans with classes ([dev/user-interface#18](https://lab.civicrm.org/dev/user-interface/-/issues/18): [17078](https://github.com/civicrm/civicrm-core/pull/17078))** Improve user interface by wrapping separators in price fields in spans. - **Make is_archived work as a url-search parameter ([17328](https://github.com/civicrm/civicrm-core/pull/17328))** Makes it possible to send `is_archived` as a url search parameter. - **Configurable logfile size and hashing ([17192](https://github.com/civicrm/civicrm-core/pull/17192))** Allows a system administrator to give logs a predictable name, allowing them to be more easily ingested into other tools, and be handled by external log rotation tools. - **Allow for installation on Symfony 4.4 ([17380](https://github.com/civicrm/civicrm-core/pull/17380))** Makes it so CiviCRM plays nicely with Symfony 4.4. - **Add in domain tokens onto the Message Template admin interface ([17388](https://github.com/civicrm/civicrm-core/pull/17388))** Adds the domain tokens to the Message Template admin interface "Tokens" dropdown. - **Make all icons aria-hidden ([17318](https://github.com/civicrm/civicrm-core/pull/17318))** Improves user experience when using a screen reader by hiding icons. - **Extend icon helper support, including for formLink ([17319](https://github.com/civicrm/civicrm-core/pull/17319))** Improves `CRM_Core_Action::formLink()` so that it produces more accessible icon HTML. - **Screen reader text for wrenches ([17293](https://github.com/civicrm/civicrm-core/pull/17293))** Improves usability for screen reader users by explaining wrench icons. - **sr-only text for relationship permissions ([17294](https://github.com/civicrm/civicrm-core/pull/17294))** Improves usability for screen reader users by descriptions for icons for relationships permissions. - **crmButton: support icon=0 for no icon ([17303](https://github.com/civicrm/civicrm-core/pull/17303))** Makes it possible to create a button without and icon using {crmButton}. - **Dedupe performance - hard-remove financial_item from list of dymnamic refs to contact table ([17567](https://github.com/civicrm/civicrm-core/pull/17567))** Improves performance when dedupping. ### CiviContribute - **Allow to search on contribution id ([dev/core#1580](https://lab.civicrm.org/dev/core/-/issues/1580): [16484](https://github.com/civicrm/civicrm-core/pull/16484))** Improves the "Find Contributions" search form by adding a field to search by "Contribution ID". ### CiviEvent - **Replace ical and office calendar image icons ([17282](https://github.com/civicrm/civicrm-core/pull/17282))** Changes the icons on the bottom of event info pages to use Font Awesome icons instead of images. ### CiviMail - **Extend content array of hook_civicrm_alterMailContent ([dev/core#1620](https://lab.civicrm.org/dev/core/-/issues/1620): [16629](https://github.com/civicrm/civicrm-core/pull/16629))** Adds campaign_id to template for `alterMailContent` hook. - **Migrate CiviMail "extern" scripts to conventional routes ([17312](https://github.com/civicrm/civicrm-core/pull/17312))** Updates CiviMail's default behavior to replace `extern/open.php` and `extern/url.php` with `civicrm/mailing/open` and `civicrm/mailing/url`. - **Allow click-through and open tracking to be enabled/disabled by default ([17291](https://github.com/civicrm/civicrm-core/pull/17291))** Adds a setting to CiviMail which allows for setting the click-through and open tracking defaults. ### Drupal Integration - **CiviCRM menu toggle "adjust menu position" customisable ([dev/core#1757](https://lab.civicrm.org/dev/core/-/issues/1757): [17362](https://github.com/civicrm/civicrm-core/pull/17362))** Hides the "adjust menu position" icon in the CiviCRM Menu for non admin users to avoid confusion for users who do not have access to the Drupal admin menu. - **provide Calendar module with end_date when duration is provided ([601](https://github.com/civicrm/civicrm-drupal/pull/601))** Improves display of activities in calendar views. ## Bugs resolved ### Core CiviCRM - **CRM_Utils_Time::setTime and getTime() and their use in unit tests ([dev/core#1781](https://lab.civicrm.org/dev/core/-/issues/1781): [17414](https://github.com/civicrm/civicrm-core/pull/17414))** CRM_Utils_Time - Allow TIME_FUNC to better isolate timing bugs. - **Confusing popups when importing activities ([dev/user-interface#17](https://lab.civicrm.org/dev/user-interface/-/issues/17): [17067](https://github.com/civicrm/civicrm-core/pull/17067))** Fixes a bug where the confirmation popup would appear when hitting the back/cancel buttons, not just the import button, on most import forms. - **Installing CiviCRM in another language, with civicrm-setup ([dev/translation#39](https://lab.civicrm.org/dev/translation/-/issues/39): [17244](https://github.com/civicrm/civicrm-core/pull/17244))** Fixes a bug when installing CiviCRM in another language with civicrm-setup. - **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception ([dev/core#560](https://lab.civicrm.org/dev/core/-/issues/560): [17421](https://github.com/civicrm/civicrm-core/pull/17421), [17343](https://github.com/civicrm/civicrm-core/pull/17343), [17336](https://github.com/civicrm/civicrm-core/pull/17336) and [17341](https://github.com/civicrm/civicrm-core/pull/17341))** - **CiviCRM 5.13.4 - smart groups with contact subtypes: subtype is not in Contact Type field on edit criteria mode ([dev/core#991](https://lab.civicrm.org/dev/core/-/issues/991): [16541](https://github.com/civicrm/civicrm-core/pull/16541))** Fixes contact subtypes not being carried over when editing a smart group created in Advanced Search. - **Unable to import relationship ([dev/core#1731](https://lab.civicrm.org/dev/core/-/issues/1731): [17163](https://github.com/civicrm/civicrm-core/pull/17163))** Ensures that importing relationships works as expected. - **Apostrophes in richtext fields don't get exported properly in CiviReport ([dev/core#1743](https://lab.civicrm.org/dev/core/-/issues/1743): [17260](https://github.com/civicrm/civicrm-core/pull/17260))** - **Statically added members of a smart group not found ([dev/core#1745](https://lab.civicrm.org/dev/core/-/issues/1745): [17419](https://github.com/civicrm/civicrm-core/pull/17419))** - **Deleting an activity with attachments doesn't delete the file or entries in civicrm_file/civicrm_entity_file ([dev/core#1753](https://lab.civicrm.org/dev/core/-/issues/1753): [17298](https://github.com/civicrm/civicrm-core/pull/17298))** - **E_WARNINGS when viewing list of pledge payments ([dev/core#1791](https://lab.civicrm.org/dev/core/-/issues/1791): [17434](https://github.com/civicrm/civicrm-core/pull/17434))** - **Deselected checkbox settings are not saved ([dev/core#1794](https://lab.civicrm.org/dev/core/-/issues/1794): [17493](https://github.com/civicrm/civicrm-core/pull/17493))** Ensures deselected values are saved on custom fields settings forms. - **Added activity types don't appear in the type dropdown on New Activity ([dev/core#1822](https://lab.civicrm.org/dev/core/-/issues/1822): [17625](https://github.com/civicrm/civicrm-core/pull/17625))** - **[regression](for real this time) API doesn't allow passing option values by label ([dev/core#1816](https://lab.civicrm.org/dev/core/-/issues/1816): [17628](https://github.com/civicrm/civicrm-core/pull/17628))** Updates APIv4 so that it matches based on label if name is not found. - **APIv4 - Improve custom field spec gathering ([17471](https://github.com/civicrm/civicrm-core/pull/17471))** - **APIv4 - Remove implicit multi joins & add explicit joins ([17332](https://github.com/civicrm/civicrm-core/pull/17332))** - **APIv4 - Fix entity name on custom groups in schemaMapper ([17425](https://github.com/civicrm/civicrm-core/pull/17425))** - **APIv4 - fix returning custom field values with API4 ([17399](https://github.com/civicrm/civicrm-core/pull/17399))** - **[regression] Attempting to access Multi-Record Custom Field import results in crash ([dev/core#1841](https://lab.civicrm.org/dev/core/-/issues/1841): [17713](https://github.com/civicrm/civicrm-core/pull/17713))** - **Fix issue with building smart groups when $contactQueries is empty ([17622](https://github.com/civicrm/civicrm-core/pull/17622))** - **replace deprecated money_format() fn to support PHP 7.4 (Work Towards [dev/core#1494](https://lab.civicrm.org/dev/core/-/issues/1494): [17577](https://github.com/civicrm/civicrm-core/pull/17577))** Adds a deprecation notice and a status check for a money value format configuration other than the default. - **QueueTest - Be more forgiving about slow execution ([17532](https://github.com/civicrm/civicrm-core/pull/17532))** - **CommunityMessages - Define more consistent behavior in the face of slow execution ([17529](https://github.com/civicrm/civicrm-core/pull/17529))** - **set boolean fields to false if not set. ([17494](https://github.com/civicrm/civicrm-core/pull/17494))** - **Allow bidirectional assignment of relationships from search results ([17413](https://github.com/civicrm/civicrm-core/pull/17413))** - **Navigation menu: fix translation of new-subtype entries ([17451](https://github.com/civicrm/civicrm-core/pull/17451))** - **utf8mb4 - If strict mode enabled query will fail if KEY_BLOCK_SIZE is not 0 ([17253](https://github.com/civicrm/civicrm-core/pull/17253))** - **Update DAO and L10n Schema file ([17395](https://github.com/civicrm/civicrm-core/pull/17395))** - **Fix adding languages in multilingual ([17228](https://github.com/civicrm/civicrm-core/pull/17228))** - **Don't exclude deleted contacts from ACL cache when user has permission ([17379](https://github.com/civicrm/civicrm-core/pull/17379))** - **SMTP page appears broken when language is French (JS issue) ([dev/core#1760](https://lab.civicrm.org/dev/core/-/issues/1760): [17317](https://github.com/civicrm/civicrm-core/pull/17317))** - **Trigger fatalErrorHandler for PEAR errors and for logs with severity ERROR or higher ([17277](https://github.com/civicrm/civicrm-core/pull/17277))** - **Add serialize column to civicrm_custom_field, remove "Multi-Select" html type ([16992](https://github.com/civicrm/civicrm-core/pull/16992))** Work towards making custom select and multi-select fields more similar to core select/multi-select fields. - **Fix PHP notice when is_override is not set ([17273](https://github.com/civicrm/civicrm-core/pull/17273))** - **respect file fields that have been configured as view only in profiles ([17079](https://github.com/civicrm/civicrm-core/pull/17079))** - **Tag create: respect created_date and created_id params ([17257](https://github.com/civicrm/civicrm-core/pull/17257))** - **Add propertyBag handling for getEmail when incoming uses email-5 ([17267](https://github.com/civicrm/civicrm-core/pull/17267))** - **Public status messages should show correct class/icon like error ([17376](https://github.com/civicrm/civicrm-core/pull/17376))** - **Accordion open-close with Font Awesome icons ([17296](https://github.com/civicrm/civicrm-core/pull/17296))** Use Font Awesome icons instead of triangle gifs to indicate Accordion open-close. - **Comm prefs: add condition param for {privacyFlag} ([17307](https://github.com/civicrm/civicrm-core/pull/17307))** Makes the {privacyFlag} icon usage more consistent. - **Member tab: auto-renew status was hidden from screen readers ([17310](https://github.com/civicrm/civicrm-core/pull/17310))** - **No rendered icons in data source ([17285](https://github.com/civicrm/civicrm-core/pull/17285))** - **Simplify admin console and remove superfluous icons ([17284](https://github.com/civicrm/civicrm-core/pull/17284))** - **Replace stop-icon.png with fa-ban over a relevant icon for privacy ([17283](https://github.com/civicrm/civicrm-core/pull/17283))** - **Replace all instances of copy.png with font awesome ([17280](https://github.com/civicrm/civicrm-core/pull/17280))** - **Remove most uses of check.gif ([17279](https://github.com/civicrm/civicrm-core/pull/17279))** - **Replace geotag_16.png with fa-map-marker ([17281](https://github.com/civicrm/civicrm-core/pull/17281))** - **Decorative chevrons should be icons not angle quotes ([17245](https://github.com/civicrm/civicrm-core/pull/17245))** - **A/B test: icon should be Erlenmeyer flask, not bar chart ([17316](https://github.com/civicrm/civicrm-core/pull/17316))** - **Proceeding to confirmation page should be a "next" button not a check ([17246](https://github.com/civicrm/civicrm-core/pull/17246))** - **Replaced more> icon with Font Awesome ([17295](https://github.com/civicrm/civicrm-core/pull/17295))** - **Icon helper: replace quotes in html title. ([17289](https://github.com/civicrm/civicrm-core/pull/17289))** - **Removed last TreePlus.gif and TreeMinus.gif spots ([17297](https://github.com/civicrm/civicrm-core/pull/17297))** Improves the UI by using icons instead of the black triangle gifs. ### CiviCase - **case activity: follow-up activity assignee does not receive email ([dev/core#1721](https://lab.civicrm.org/dev/core/-/issues/1721): [17116](https://github.com/civicrm/civicrm-core/pull/17116))** Ensures when a follow up case activity is created the assignee is sent an email. ### CiviContribute - **Custom fields disappear on page refresh ([dev/core#1728](https://lab.civicrm.org/dev/core/-/issues/1728): [17301](https://github.com/civicrm/civicrm-core/pull/17301))** Ensures that financial type specific custom fields are displayed on the backend contribution form on refresh. - **Fix pricefield pseudoconstant. ([17364](https://github.com/civicrm/civicrm-core/pull/17364))** Fixes `PriceField` entity to build options for the `price_set_id` pseudoconstant field. - **Nuance cancel options for processors ([17430](https://github.com/civicrm/civicrm-core/pull/17430))** - **[regression] Contribution amount choices don't appear for anonymous users ([dev/core#1823](https://lab.civicrm.org/dev/core/-/issues/1823): [17619](https://github.com/civicrm/civicrm-core/pull/17619))** - **Import Contribution of custom fields only accepts "Numeric Value" rather than "Label" ([dev/core#1806](https://lab.civicrm.org/dev/core/-/issues/1806): [17632](https://github.com/civicrm/civicrm-core/pull/17632))** - **"Financial Type" listed twice in contribution export ([dev/core#1650](https://lab.civicrm.org/dev/core/-/issues/1650): [17147](https://github.com/civicrm/civicrm-core/pull/17147))** - **Record Payment does not update check_number & trxn id on main contribution. ([dev/core#1758](https://lab.civicrm.org/dev/core/-/issues/1758): [17314](https://github.com/civicrm/civicrm-core/pull/17314))** - **civicrm_financial_trxn.fee_amount reversals mixed up ([dev/core#1775](https://lab.civicrm.org/dev/core/-/issues/1775): [17386](https://github.com/civicrm/civicrm-core/pull/17386))** - **jquery validation type error on the credit card field ([dev/core#1797](https://lab.civicrm.org/dev/core/-/issues/1797): [17497](https://github.com/civicrm/civicrm-core/pull/17497))** Fixes a jQuery error when submitting a front end contribution form with a credit card field. - **Fix payment instrument bug by using correct payment instrument ([17607](https://github.com/civicrm/civicrm-core/pull/17607))** - **Payment PropertyBag - Fix setAmount ([17505](https://github.com/civicrm/civicrm-core/pull/17505))** Ensures "Amount" is set correctly on PropertyBag. - **Fixed hide show of start date ([17446](https://github.com/civicrm/civicrm-core/pull/17446))** Fix hide/show of receive date for recurring contributions. - **Don't allow Contribution.repeattransaction to be used without a recurring contribution ([17447](https://github.com/civicrm/civicrm-core/pull/17447))** - **Add actual field name for processor_id to getSubscriptionDetails ([17466](https://github.com/civicrm/civicrm-core/pull/17466))** - **Make 'Pending' the default status for Contribution.repeattransaction ([17432](https://github.com/civicrm/civicrm-core/pull/17432))** - **Fetch line items from correct contribution when repeating a contribution ([17220](https://github.com/civicrm/civicrm-core/pull/17220))** - **Support order_reference param in API3 Payment.create ([17278](https://github.com/civicrm/civicrm-core/pull/17278))** ### CiviMail - **Don't log subscription_history ([dev/core#1762](https://lab.civicrm.org/dev/core/-/issues/1762): [17323](https://github.com/civicrm/civicrm-core/pull/17323))** - **Unsubscribe generates 500 server error responses, logs say "missing parameters" ([dev/core#1773](https://lab.civicrm.org/dev/core/-/issues/1773): [17402](https://github.com/civicrm/civicrm-core/pull/17402))** Ensures the unsubscribe form can only be submitted once. ### CiviMember - **Recurring contribution fails with "ipn_payment_callback_exception", for membership auto-renewal via PayPalPro. ([dev/core#1608](https://lab.civicrm.org/dev/core/-/issues/1608): [17355](https://github.com/civicrm/civicrm-core/pull/17355))** - **Memberships of disabled membership types do not appear on the membership tab BUT do throw duplicate Membership Warning ([dev/membership#24](https://lab.civicrm.org/dev/membership/-/issues/24): [17143](https://github.com/civicrm/civicrm-core/pull/17143) and [17435](https://github.com/civicrm/civicrm-core/pull/17435))** Adds a unit test to lock in the correct behavior. - **Update MembershipType.name to be a required field ([17463](https://github.com/civicrm/civicrm-core/pull/17463))** ### Joomla Integration - **Upgrade from 5.26.2 to 5.27 RC Fails ([dev/joomla/#28](https://lab.civicrm.org/dev/joomla/-/issues/28): [17710](https://github.com/civicrm/civicrm-core/pull/17710))** ### WordPress Integration - **Styling issues after upgrade to WordPress 5.3 ([dev/wordpress#46](https://lab.civicrm.org/dev/wordpress/-/issues/46): [16967](https://github.com/civicrm/civicrm-core/pull/16967))** - **WP - Change definitions of `cms.root`, `civicrm.root` ([17360](https://github.com/civicrm/civicrm-core/pull/17360))** The base logic for computing path/URL defaults is in Civi/Core/Paths.php. For Civi-WP, certain variables (which are easier to compute via WP APIs) are overridden in CRM/Utils/System/WordPress.php. On WP, the path/URL logic for has been split: One codepath for normal Civi pages - based on WP APIs and another codepath for older, standalone extern scripts - based on the same logic as before - **Declare Minimum WP and PHP versions required for installation ([201](https://github.com/civicrm/civicrm-wordpress/pull/201))** - **wp-rest - Adjust extern URL. Be more defensive about 'query' part. ([192](https://github.com/civicrm/civicrm-wordpress/pull/192))** ## Miscellany - **handle less common dynamic reference cases ([17653](https://github.com/civicrm/civicrm-core/pull/17653))** - **Use apiv4, cache infra for basicTypes ([17387](https://github.com/civicrm/civicrm-core/pull/17387))** - **Cleanup PriceFieldValue BAO ([17306](https://github.com/civicrm/civicrm-core/pull/17306))** - **Clarify definition of amount field in civicrm_contribution_recur table. ([17311](https://github.com/civicrm/civicrm-core/pull/17311))** - **Call completeOrder directly from contribute status update form ([17347](https://github.com/civicrm/civicrm-core/pull/17347))** - **Switch docblock code to use markdown syntax. ([17304](https://github.com/civicrm/civicrm-core/pull/17304))** - **Preliminary cleanup on form ([17345](https://github.com/civicrm/civicrm-core/pull/17345))** - **Add getBAOClassName utiltiy function ([17268](https://github.com/civicrm/civicrm-core/pull/17268))** - **CRM/Logging - Remove obsolete cache static clear in test ([17269](https://github.com/civicrm/civicrm-core/pull/17269))** - **Remove incorrect retrievals of tax-term setting ([17183](https://github.com/civicrm/civicrm-core/pull/17183))** - **CiviEvent Dashboard and Manage Events: clean up disused url template vars ([17378](https://github.com/civicrm/civicrm-core/pull/17378))** - **Set default using spec for activity_date_time ([17390](https://github.com/civicrm/civicrm-core/pull/17390))** - **Convert remaining Authorize.net test to use guzzle ([17473](https://github.com/civicrm/civicrm-core/pull/17473))** - **Various BAO create/add cleanups to use writeRecord() ([17308](https://github.com/civicrm/civicrm-core/pull/17308))** - **Remove instantiation of transaction from payment express ipn class ([17348](https://github.com/civicrm/civicrm-core/pull/17348))** - **Remove null code ([17381](https://github.com/civicrm/civicrm-core/pull/17381))** - **Remove validation bypass ([17384](https://github.com/civicrm/civicrm-core/pull/17384))** - **Simplify recurring contribution template inheritance ([17178](https://github.com/civicrm/civicrm-core/pull/17178))** - **Remove $_REQUEST passed into CRM_Utils_Request::retrieve NFC ([17377](https://github.com/civicrm/civicrm-core/pull/17377))** - **Use now instead of date for activity API3 spec ([17411](https://github.com/civicrm/civicrm-core/pull/17411))** - **Typo Fix ([17409](https://github.com/civicrm/civicrm-core/pull/17409))** - **Fix logic for job log cleanup and make SQL safer ([17203](https://github.com/civicrm/civicrm-core/pull/17203))** - **Remove always-true if block. ([17415](https://github.com/civicrm/civicrm-core/pull/17415))** - **Remove No longer required HTTP_Request Package ([293](https://github.com/civicrm/civicrm-packages/pull/293))** - **Remove code that still seems unnecessary. ([17342](https://github.com/civicrm/civicrm-core/pull/17342))** - **Undo variable variable. ([17371](https://github.com/civicrm/civicrm-core/pull/17371))** - **Use non-deprecated method ([17370](https://github.com/civicrm/civicrm-core/pull/17370))** - **Remove last reference to Payment->_processorName in core & remove from processors ([17474](https://github.com/civicrm/civicrm-core/pull/17474))** - **Remove unused singleton from core payment processors ([17468](https://github.com/civicrm/civicrm-core/pull/17468))** - **Test fixes to support apiv4 add of MembershipType ([17488](https://github.com/civicrm/civicrm-core/pull/17488))** - **Merge code - remove UPDATE IGNORE+Delete & just use reliable update ([17072](https://github.com/civicrm/civicrm-core/pull/17072))** - **Remove unneeded parameters in {ts} on membership form ([17326](https://github.com/civicrm/civicrm-core/pull/17326))** - **Remove unused 'reset' param, other NFC tidy up: ([17392](https://github.com/civicrm/civicrm-core/pull/17392))** - **Fix setLanguage docblock, other nfc changes ([17356](https://github.com/civicrm/civicrm-core/pull/17356))** - **[REF] Simplify contributionIDs code ([17441](https://github.com/civicrm/civicrm-core/pull/17441))** - **[REF] Extract getAttachments ([17405](https://github.com/civicrm/civicrm-core/pull/17405))** - **[REF] Preliminary cleanup for #17339 ([17417](https://github.com/civicrm/civicrm-core/pull/17417))** - **[REF] Remove unreachable block. ([17407](https://github.com/civicrm/civicrm-core/pull/17407))** - **[REF] Pass an array of correct params to the function to create a recurring contribution. ([17398](https://github.com/civicrm/civicrm-core/pull/17398))** - **[REF] Code simplification & unit test on suppressed emails in task ([17393](https://github.com/civicrm/civicrm-core/pull/17393))** - **[REF] duplicate function. ([17400](https://github.com/civicrm/civicrm-core/pull/17400))** - **[REF] Pass params not-by-reference ([17406](https://github.com/civicrm/civicrm-core/pull/17406))** - **[REF] Refactor to switch from pear HTTP Request class to using Guzzle ([17420](https://github.com/civicrm/civicrm-core/pull/17420))** - **[REF] [Reports] Ensure that all contribution pages including disabled ones are return… ([17357](https://github.com/civicrm/civicrm-core/pull/17357))** - **[REF] Cleanup and extract string functions specific to entity names. ([17330](https://github.com/civicrm/civicrm-core/pull/17330))** - **[REF] Stop passing by reference. ([17349](https://github.com/civicrm/civicrm-core/pull/17349))** - **[REF] Simplify subject code. ([17436](https://github.com/civicrm/civicrm-core/pull/17436))** - **[REF] Implement required fields database changes that have occured du… ([17465](https://github.com/civicrm/civicrm-core/pull/17465))** - **[REF] Bump Pear Log version to fix compatability with Drupal 8 / Drup… ([17460](https://github.com/civicrm/civicrm-core/pull/17460))** - **[REF] Convert one of the http calls in Authorize.net class to use guzzle. ([17449](https://github.com/civicrm/civicrm-core/pull/17449))** - **[REF] Minor simplification ([17443](https://github.com/civicrm/civicrm-core/pull/17443))** - **[REF] Grant BAO cleanup ([17264](https://github.com/civicrm/civicrm-core/pull/17264))** - **[REF] CRM_Core_DAO_AllCoreTables::getBriefName to accept BAO name ([17331](https://github.com/civicrm/civicrm-core/pull/17331))** - **[REF] Missing semicolon on smtp settings page, code cleanup in file-on-case, add test ([17335](https://github.com/civicrm/civicrm-core/pull/17335))** - **[REF] Extract createFollowUpActivities ([17481](https://github.com/civicrm/civicrm-core/pull/17481))** - **[REF] Switch to an api call to get the contact details. ([17442](https://github.com/civicrm/civicrm-core/pull/17442))** - **[REF] Minor code simplification ([17373](https://github.com/civicrm/civicrm-core/pull/17373))** - **[REF] Call completeOrder directly from event status update form ([17346](https://github.com/civicrm/civicrm-core/pull/17346))** - **[REF] Remove never-passed params from function signature ([17464](https://github.com/civicrm/civicrm-core/pull/17464))** - **[REF] Fix serialized membership field handling in RelationshipTest ([17469](https://github.com/civicrm/civicrm-core/pull/17469))** - **[REF] Minor tidy up ([17302](https://github.com/civicrm/civicrm-core/pull/17302))** - **[REF] Remove always NULL param modified_id ([17489](https://github.com/civicrm/civicrm-core/pull/17489))** - **[REF] Add contribution_id field to search using metadata instead of h… ([17286](https://github.com/civicrm/civicrm-core/pull/17286))** - **[REF] Fix unit test failures on MySQL 5.6 due to Custom Field table being created without Dynamic Row Format ([17586](https://github.com/civicrm/civicrm-core/pull/17586))** - **[REF] Start to convert Dummy processor to use PropertyBag ([17452](https://github.com/civicrm/civicrm-core/pull/17452))** - **[Ref] remove calls to, and deprecate, pending function ([17490](https://github.com/civicrm/civicrm-core/pull/17490))** - **[REF] Cleanup MailingAB BAO ([17309](https://github.com/civicrm/civicrm-core/pull/17309))** - **[TEST] Update test to support for 8.0.19 change ([17354](https://github.com/civicrm/civicrm-core/pull/17354))** - **[TEST] Fix test failure on Drupal 8 E2E PrevNextTest by only includin… ([17358](https://github.com/civicrm/civicrm-core/pull/17358))** - **[TEST] dev/core#1766 - Remove flakiness from testGetFromTo tests ([dev/core#1766](https://lab.civicrm.org/dev/core/-/issues/1766): [17338](https://github.com/civicrm/civicrm-core/pull/17338))** - **[NFC/TEST] dev/core#1784 - Unit tests for contact delete/restore ([dev/core#1784](https://lab.civicrm.org/dev/core/-/issues/1784): [17437](https://github.com/civicrm/civicrm-core/pull/17437))** - **NFC - Change array() to short syntax [] ([17470](https://github.com/civicrm/civicrm-core/pull/17470))** - **[NFC] Update Karma to be latest version ([17439](https://github.com/civicrm/civicrm-core/pull/17439))** - **(NFC) CRM_Utils_Url - Fix declared type ([17320](https://github.com/civicrm/civicrm-core/pull/17320))** - **[NFC] Remove some more of the old cvs blocks ([17383](https://github.com/civicrm/civicrm-core/pull/17383))** - **NFC Add a bit more clarity to createEmailActivity function ([17391](https://github.com/civicrm/civicrm-core/pull/17391))** - **[NFC] Add comment that deprecated code is actually still reachable ([17340](https://github.com/civicrm/civicrm-core/pull/17340))** - **(NFC) Remove some cvs docblock help ([17322](https://github.com/civicrm/civicrm-core/pull/17322))** - **[NFC] Add comment regarding lower case for Polish states ([17327](https://github.com/civicrm/civicrm-core/pull/17327))** - **(NFC) RegionTest - Small cleanups ([17270](https://github.com/civicrm/civicrm-core/pull/17270))** - **[NFC] Add sr-only class for content only for screen readers ([17255](https://github.com/civicrm/civicrm-core/pull/17255))** - **NFC Change hardcoded ID to constant ([17275](https://github.com/civicrm/civicrm-core/pull/17275))** - **[NFC] Fix use of single quotes, strict operator ([17492](https://github.com/civicrm/civicrm-core/pull/17492))** ## Credits This release was developed by the following code authors: a-n The Artists Information Company - William Mortada; AGH Strategies - Alice Frumin, Andrew Hunt; Andrei Mondoc; British Humanist Association - Andrew West; Caltha - Tomasz Pietrzkowski; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp - René Olivo; Coop SymbioTIC - Mathieu Lutfy; Dave D; Dominic Hargreaves; Electronic Frontier Foundation - Mark Burdett; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; JMA Consulting - Edsel Lopez, Seamus Lee; John Kingsnorth; Joinery - Allen Shaw; Kartik Kathuria; Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Palante Technology Cooperative - Morgan Robinson; Semper IT - Karin Gerritsen; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments: Agileware - Justin Freeman; Artful Robot - Rich Lott; Betty Dolfing; CiviCoop - Jaap Jansma; iXiam - Luciano Spiegel; JMA Consulting - Monish Deb; Kartik Kathuria; Korlon - Stuart Gaston; Megaphone Technology Consulting - Dennis P. Osorio; Squiffle Consulting - Aidan Saunders; ## 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`.