--- /dev/null
+# CiviCRM 5.48.0
+
+Released April 6, 2022;
+
+- **[Features](#features)**
+- **[Bugs resolved](#bugs)**
+- **[Miscellany](#misc)**
+- **[Credits](#credits)**
+
+## <a name="features"></a>Features
+
+### Core CiviCRM
+
+- **crm- Missing Summary ([70](https://github.com/civicrm/civicrm-drupal-8/pull/70))**
+
+## <a name="bugs"></a>Bugs resolved
+
+### Core CiviCRM
+
+- **dev/core#3119 - Post-upgrade messages no longer being displayed ([22985](https://github.com/civicrm/civicrm-core/pull/22985))**
+
+- **[REF] Update Guzzlehttp/psr7 version to be 1.8.5 ([22998](https://github.com/civicrm/civicrm-core/pull/22998))**
+
+- **Afform - Fix saving and editing entity blocks ([22963](https://github.com/civicrm/civicrm-core/pull/22963))**
+
+- **dev/core#3126 - CiviReport statistics appearing twice on page ([22976](https://github.com/civicrm/civicrm-core/pull/22976))**
+
+- **(Regression) - fixed tags form field display on New/Edit contact screen ([22964](https://github.com/civicrm/civicrm-core/pull/22964))**
+
+- **Return array for setdefaults ([22948](https://github.com/civicrm/civicrm-core/pull/22948))**
+
+- **[REF] Rename SoftDeleteEntity -> SoftDeleteActionTrait ([22944](https://github.com/civicrm/civicrm-core/pull/22944))**
+
+- **Fix backward-compatability for new method in CRM_Contact_BAO_Query_Hook ([22933](https://github.com/civicrm/civicrm-core/pull/22933))**
+
+- **dev/core#3112 Clear caches to avoid error on upgrade ([22932](https://github.com/civicrm/civicrm-core/pull/22932))**
+
+- **Afform Gui - Fix selecting html element of text box ([22929](https://github.com/civicrm/civicrm-core/pull/22929))**
+
+- **(NFC) contributor-key.yml - Fix syntax error ([22921](https://github.com/civicrm/civicrm-core/pull/22921))**
+
+- **Don't perform event timezone check if CiviEvent is disabled ([22898](https://github.com/civicrm/civicrm-core/pull/22898))**
+
+- **CiviGrant - Don't auto-create any grant types ([22913](https://github.com/civicrm/civicrm-core/pull/22913))**
+
+- **dev/core#3100 - Remove grant leftovers from core xml. Remove empty grant reports menu ([22911](https://github.com/civicrm/civicrm-core/pull/22911))**
+
+- **Only acl line items based on contribution ([22870](https://github.com/civicrm/civicrm-core/pull/22870))**
+
+- **dev/core#3094 - Crash on contribution view when don't have event/participant permissions ([22865](https://github.com/civicrm/civicrm-core/pull/22865))**
+
+- **dev/core#3104 - Crash when viewing a contact page - Call to undefined method CRM_Contact_Page_View_Summary::addExpectedSmartyVariables() ([22897](https://github.com/civicrm/civicrm-core/pull/22897))**
+
+- **Refresh entity list after updating custom group (self_hook_*) ([22868](https://github.com/civicrm/civicrm-core/pull/22868))**
+
+- **APIv4 Explorer - Add "copy" button to quicly copy code to clipboard ([22896](https://github.com/civicrm/civicrm-core/pull/22896))**
+
+- **smarty/php notices on contribution view part 4 ([22894](https://github.com/civicrm/civicrm-core/pull/22894))**
+
+- **Mark AJAX methods as static ([22895](https://github.com/civicrm/civicrm-core/pull/22895))**
+
+- **Avoid e-notices on pages with tabs ([22892](https://github.com/civicrm/civicrm-core/pull/22892))**
+
+- **5.47 ([22891](https://github.com/civicrm/civicrm-core/pull/22891))**
+
+- **ManagedEntities - Allow "match" param to convert existing records to … ([22883](https://github.com/civicrm/civicrm-core/pull/22883))**
+
+- **5.47 ([22888](https://github.com/civicrm/civicrm-core/pull/22888))**
+
+- **5.47 ([22884](https://github.com/civicrm/civicrm-core/pull/22884))**
+
+- **Contact token should show contact's info instead of logged in contact ([22874](https://github.com/civicrm/civicrm-core/pull/22874))**
+
+- **Bump karma from 6.3.14 to 6.3.16 ([22875](https://github.com/civicrm/civicrm-core/pull/22875))**
+
+- **php/smarty notices on contribution view part 2 ([22869](https://github.com/civicrm/civicrm-core/pull/22869))**
+
+- **added as a contributor ([22876](https://github.com/civicrm/civicrm-core/pull/22876))**
+
+- **Call to undefined function civicrm_api3_create_error() in civicrm/civ… ([22872](https://github.com/civicrm/civicrm-core/pull/22872))**
+
+- **Format money on transaction list ([22438](https://github.com/civicrm/civicrm-core/pull/22438))**
+
+- **5.47 ([22873](https://github.com/civicrm/civicrm-core/pull/22873))**
+
+- **(NFC) LoggingDetailTest - Improve reliability of test ([22867](https://github.com/civicrm/civicrm-core/pull/22867))**
+
+- **php notices on contributionview ([22866](https://github.com/civicrm/civicrm-core/pull/22866))**
+
+- **5.47 ([22859](https://github.com/civicrm/civicrm-core/pull/22859))**
+
+- **(NFC) Membership Tests - Update assertions to match behavior circa leap-day ([22860](https://github.com/civicrm/civicrm-core/pull/22860))**
+
+- **Add handling for civimember disabled ([22864](https://github.com/civicrm/civicrm-core/pull/22864))**
+
+- **(dev/core#1304) Queues - Define schema for runner, run_count, lease_time, et al ([22812](https://github.com/civicrm/civicrm-core/pull/22812))**
+
+- **5.47 ([22857](https://github.com/civicrm/civicrm-core/pull/22857))**
+
+- **fixes report#85 - Don't crash Contact Logging Detail report when viewing a contribution ([22242](https://github.com/civicrm/civicrm-core/pull/22242))**
+
+- **dev/core#2100 Improve A/B test report page and API Mailing stats ([20093](https://github.com/civicrm/civicrm-core/pull/20093))**
+
+- **5.47 ([22852](https://github.com/civicrm/civicrm-core/pull/22852))**
+
+- **dev/user-interface#45 Show associated participants on contributionView form ([22732](https://github.com/civicrm/civicrm-core/pull/22732))**
+
+- **Fix API4 Explorer undefined variable error ([22849](https://github.com/civicrm/civicrm-core/pull/22849))**
+
+- **Avoid PHP undefined index notices on extension pages ([22848](https://github.com/civicrm/civicrm-core/pull/22848))**
+
+- **[NFC] Basic case create test with org ([22846](https://github.com/civicrm/civicrm-core/pull/22846))**
+
+- **Fix issues with PHP GetText and 0 length files ([22842](https://github.com/civicrm/civicrm-core/pull/22842))**
+
+- **Remove reference to undefined variable in CRM_Contact_Form_Inline_CommunicationPreferences ([22840](https://github.com/civicrm/civicrm-core/pull/22840))**
+
+- **Mark methods which are only used statically as static ([22844](https://github.com/civicrm/civicrm-core/pull/22844))**
+
+- **APIv4 - Add metadata about class args ([22831](https://github.com/civicrm/civicrm-core/pull/22831))**
+
+- **Cody tidy in CRM_Core_State ([22841](https://github.com/civicrm/civicrm-core/pull/22841))**
+
+- **5.47 ([22838](https://github.com/civicrm/civicrm-core/pull/22838))**
+
+- **Remove reference to undefined variable ([22839](https://github.com/civicrm/civicrm-core/pull/22839))**
+
+- **CiviCase - Call hooks when creating relationships ([22814](https://github.com/civicrm/civicrm-core/pull/22814))**
+
+- **5.47 ([22836](https://github.com/civicrm/civicrm-core/pull/22836))**
+
+- **Move HookInterface to \Civi\Core namespace ([22834](https://github.com/civicrm/civicrm-core/pull/22834))**
+
+- **APIv4 - Add tableName to Entity.get output ([22829](https://github.com/civicrm/civicrm-core/pull/22829))**
+
+- **Fix submit handling of thousands when creating data entry batch ([22772](https://github.com/civicrm/civicrm-core/pull/22772))**
+
+- **APIv4 - Add fixme about filtering custom fields by sub-type ([22827](https://github.com/civicrm/civicrm-core/pull/22827))**
+
+- **Flush the metadata cache when the domain is edited ([22637](https://github.com/civicrm/civicrm-core/pull/22637))**
+
+- **Fixes for smarty grumpy mode with membership ([22752](https://github.com/civicrm/civicrm-core/pull/22752))**
+
+- **Enotice fixes ([22719](https://github.com/civicrm/civicrm-core/pull/22719))**
+
+- **Mailing Report: do not recalculate the recipients when the count is zero ([22800](https://github.com/civicrm/civicrm-core/pull/22800))**
+
+- **[REF] APIv4 - use entityTypes event to load custom records ([22824](https://github.com/civicrm/civicrm-core/pull/22824))**
+
+- **Fix the "since" version for api v4 Mailing and MailingJob ([22823](https://github.com/civicrm/civicrm-core/pull/22823))**
+
+- **5.47 ([22822](https://github.com/civicrm/civicrm-core/pull/22822))**
+
+- **Recent update to {receipt_text} token gives warning in system check after upgrade ([22821](https://github.com/civicrm/civicrm-core/pull/22821))**
+
+- **add checkPerm ([22818](https://github.com/civicrm/civicrm-core/pull/22818))**
+
+- **[REF] Remove unused api v2 function ([22819](https://github.com/civicrm/civicrm-core/pull/22819))**
+
+- **[NFC] Rename RecurForms test class ([22820](https://github.com/civicrm/civicrm-core/pull/22820))**
+
+- **[REF] Cleanup docblocks & unused vars in Membership BAO ([22665](https://github.com/civicrm/civicrm-core/pull/22665))**
+
+- **Added Cancel Recur Subscription test & setter for `supports` on Dummy processor ([21895](https://github.com/civicrm/civicrm-core/pull/21895))**
+
+- **Revert membership debug handling in IPN ([22475](https://github.com/civicrm/civicrm-core/pull/22475))**
+
+- **Cleanup on Offline Membership Receipts (ensures variables present across flows) ([22736](https://github.com/civicrm/civicrm-core/pull/22736))**
+
+- **APIv4 - remove unnecessary field from System::check ([22748](https://github.com/civicrm/civicrm-core/pull/22748))**
+
+- **Add deprecation notice to APIv3 Explorer ([22811](https://github.com/civicrm/civicrm-core/pull/22811))**
+
+- **SearchKit - Use crmDialogButtons for task popups ([22790](https://github.com/civicrm/civicrm-core/pull/22790))**
+
+- **[REF] Fix css code style issues ([22807](https://github.com/civicrm/civicrm-core/pull/22807))**
+
+- **Civi\Api4\Queue - Allow use with hook_managed ([22796](https://github.com/civicrm/civicrm-core/pull/22796))**
+
+- **APIv4 - Add MailingGroup API ([22799](https://github.com/civicrm/civicrm-core/pull/22799))**
+
+- **Remove broken call to function_exists in CRM_Utils_String::isUtf8 ([22803](https://github.com/civicrm/civicrm-core/pull/22803))**
+
+- **5.47 ([22798](https://github.com/civicrm/civicrm-core/pull/22798))**
+
+- **Fix pledge default on contribution page when the site has a WR for "contribution" ([22801](https://github.com/civicrm/civicrm-core/pull/22801))**
+
+- **dev/core#2486 Add v4 Mailing api (+ MailingJob) ([22624](https://github.com/civicrm/civicrm-core/pull/22624))**
+
+- **(REF) CRM_Queue_Queue_* - Retain a copy of `$queueSpec` ([22797](https://github.com/civicrm/civicrm-core/pull/22797))**
+
+- **(NFC) tests/phpunit/CRM/Queue - Add common `@group` ([22795](https://github.com/civicrm/civicrm-core/pull/22795))**
+
+- **(REF) CRM_Queue_Task - Tighter signature ([22794](https://github.com/civicrm/civicrm-core/pull/22794))**
+
+- **[REF] Remove old require_once statements made obsolete by autoloader ([22792](https://github.com/civicrm/civicrm-core/pull/22792))**
+
+- **Fix regression with flexible merging of contact information ([22720](https://github.com/civicrm/civicrm-core/pull/22720))**
+
+- **SearchKit - Update APIv3 Extension.get to use APIv4 ([22788](https://github.com/civicrm/civicrm-core/pull/22788))**
+
+- **REF Deprecate API3 _ipn_process_transaction() ([22488](https://github.com/civicrm/civicrm-core/pull/22488))**
+
+- **Cleanup on contribution view ([22698](https://github.com/civicrm/civicrm-core/pull/22698))**
+
+- **SearchKit - Support relative dates and datepicker with the DATE() sql fn ([22783](https://github.com/civicrm/civicrm-core/pull/22783))**
+
+- **5.47 ([22789](https://github.com/civicrm/civicrm-core/pull/22789))**
+
+- **Update unit test to use exception ([22787](https://github.com/civicrm/civicrm-core/pull/22787))**
+
+- **Mailing - Add `serialize` and `add` to `template_options` field ([22785](https://github.com/civicrm/civicrm-core/pull/22785))**
+
+- **RecurForms test fixes ([22784](https://github.com/civicrm/civicrm-core/pull/22784))**
+
+- **BAO_Mailing::create - stop passing by reference ([22753](https://github.com/civicrm/civicrm-core/pull/22753))**
+
+- **Move check for mailing workflow permisisons to BAO layer ([22766](https://github.com/civicrm/civicrm-core/pull/22766))**
+
+- **5.47 ([22782](https://github.com/civicrm/civicrm-core/pull/22782))**
+
+- **Remove "Search Builder" from menubar on new installs. ([22778](https://github.com/civicrm/civicrm-core/pull/22778))**
+
+- **Avoid null column showing on groups search page ([22724](https://github.com/civicrm/civicrm-core/pull/22724))**
+
+- **Avoid PHP notices on the UF settings page. ([22667](https://github.com/civicrm/civicrm-core/pull/22667))**
+
+- **SearchKit - Add 'merge contacts' task ([22768](https://github.com/civicrm/civicrm-core/pull/22768))**
+
+- **5.47 to master ([22780](https://github.com/civicrm/civicrm-core/pull/22780))**
+
+- **APiv4 - Add Extension.get ([22754](https://github.com/civicrm/civicrm-core/pull/22754))**
+
+- **[REF] - Deprecate & delegate BAO::retrieve functions ([22543](https://github.com/civicrm/civicrm-core/pull/22543))**
+
+- **dev/core#2927 - Avoid flooding logs with open_basedir in effect ([22277](https://github.com/civicrm/civicrm-core/pull/22277))**
+
+- **dev/core#2866 Ignore preferred mail format when sending message ([22633](https://github.com/civicrm/civicrm-core/pull/22633))**
+
+- **Follow up fix on removing preferred_mail_format ([22775](https://github.com/civicrm/civicrm-core/pull/22775))**
+
+- **APIv4 - Fix typo in Entity.getFields ([22776](https://github.com/civicrm/civicrm-core/pull/22776))**
+
+- **Fix apiv4 Contribution delete & all line items ([22749](https://github.com/civicrm/civicrm-core/pull/22749))**
+
+- **dev/core#2866 Remove preferred_mail_format from email trait ([22635](https://github.com/civicrm/civicrm-core/pull/22635))**
+
+- **Pseudoconstants - Fix and improve handling of option callbacks ([22730](https://github.com/civicrm/civicrm-core/pull/22730))**
+
+- **[REF] Results of running npm audit fix ([22773](https://github.com/civicrm/civicrm-core/pull/22773))**
+
+- **SearchKit - Customizable "No Results" text ([22770](https://github.com/civicrm/civicrm-core/pull/22770))**
+
+- **Deprecate civicrm_contribution_recur.trxn_id ([21539](https://github.com/civicrm/civicrm-core/pull/21539))**
+
+- **Clean return values for dummy payment processor ([22679](https://github.com/civicrm/civicrm-core/pull/22679))**
+
+- **[REF] Simplification in Contact::getValues ([22765](https://github.com/civicrm/civicrm-core/pull/22765))**
+
+- **SearchKit - Fix support for non-DAO entities ([22764](https://github.com/civicrm/civicrm-core/pull/22764))**
+
+- **Some more notice fixes in smarty ([22745](https://github.com/civicrm/civicrm-core/pull/22745))**
+
+- **Adjust css class for payment processor to use `-` ([22763](https://github.com/civicrm/civicrm-core/pull/22763))**
+
+- **Cleanup around taxTerm assignment ([22422](https://github.com/civicrm/civicrm-core/pull/22422))**
+
+- **[REF] Simplify Location::getValues ([22757](https://github.com/civicrm/civicrm-core/pull/22757))**
+
+- **Remove unused parameter, pass-by-ref ([22756](https://github.com/civicrm/civicrm-core/pull/22756))**
+
+- **[REF] Fix issue where spaces in payment_processor_type.name field cau… ([22760](https://github.com/civicrm/civicrm-core/pull/22760))**
+
+- **Bump karma from 6.3.4 to 6.3.14 ([22758](https://github.com/civicrm/civicrm-core/pull/22758))**
+
+- **Bump ajv from 6.6.1 to 6.12.6 ([22761](https://github.com/civicrm/civicrm-core/pull/22761))**
+
+- **[REF] Cleanup billingBlock.js ([22713](https://github.com/civicrm/civicrm-core/pull/22713))**
+
+- **Format money in custom fields once, on the tpl layer ([22728](https://github.com/civicrm/civicrm-core/pull/22728))**
+
+- **5.47 ([22743](https://github.com/civicrm/civicrm-core/pull/22743))**
+
+- **Bypass grumpy mode for contribution search totals & criteria ([22744](https://github.com/civicrm/civicrm-core/pull/22744))**
+
+- **Move acl check for contributionView to the extension ([22684](https://github.com/civicrm/civicrm-core/pull/22684))**
+
+- **Fix deprecated warnings, smary grumpy-mode issues in legacy searches ([22742](https://github.com/civicrm/civicrm-core/pull/22742))**
+
+- **5.47 ([22738](https://github.com/civicrm/civicrm-core/pull/22738))**
+
+- **5.47 ([22735](https://github.com/civicrm/civicrm-core/pull/22735))**
+
+- **Add civicrm_admin_ui extension ([22628](https://github.com/civicrm/civicrm-core/pull/22628))**
+
+- **APIv4 - Fix setting/getting a multi-record customfield with date+time ([22731](https://github.com/civicrm/civicrm-core/pull/22731))**
+
+- **Move financial acls for membership to extension ([22677](https://github.com/civicrm/civicrm-core/pull/22677))**
+
+- **APIv4 Explorer - Add REST syntax ([22722](https://github.com/civicrm/civicrm-core/pull/22722))**
+
+- **Show customised fields on load, if customised option selected. ([22380](https://github.com/civicrm/civicrm-core/pull/22380))**
+
+- **[NFC] Batch entry - Avoid warnings when performing math on empty string. ([22715](https://github.com/civicrm/civicrm-core/pull/22715))**
+
+- **5.47 ([22723](https://github.com/civicrm/civicrm-core/pull/22723))**
+
+- **dev/core#3057 - follow-up to fix civigrant info.xml version number in master ([22721](https://github.com/civicrm/civicrm-core/pull/22721))**
+
+- **5.47 ([22718](https://github.com/civicrm/civicrm-core/pull/22718))**
+
+- **SearchKit - Improve import UI to handle update & preview the import ([22699](https://github.com/civicrm/civicrm-core/pull/22699))**
+
+- **Switch extension downloader and extensions feed to use Guzzle HTTP library ([21097](https://github.com/civicrm/civicrm-core/pull/21097))**
+
+- **REF - Use function to get component name from permission ([22688](https://github.com/civicrm/civicrm-core/pull/22688))**
+
+- **Use valid syntax for self-closing br elements ([22711](https://github.com/civicrm/civicrm-core/pull/22711))**
+
+- **Add basic contribution example base for contribution workflows ([22636](https://github.com/civicrm/civicrm-core/pull/22636))**
+
+- **Notice fixes ([22706](https://github.com/civicrm/civicrm-core/pull/22706))**
+
+- **Enotice fix ([22707](https://github.com/civicrm/civicrm-core/pull/22707))**
+
+- **civicrm_handler_filter_pseudo_constant - Guard against old or inactive pseudoconstants ([656](https://github.com/civicrm/civicrm-drupal/pull/656))**
+
+- **Views - CiviGrant is now an extension ([654](https://github.com/civicrm/civicrm-drupal/pull/654))**
+
+- **Remove unit tests based on older framework ([71](https://github.com/civicrm/civicrm-drupal-8/pull/71))**
+
+- **Fixes fatal error - function doesn't exist ([275](https://github.com/civicrm/civicrm-wordpress/pull/275))**
+
+- **5.47 ([274](https://github.com/civicrm/civicrm-wordpress/pull/274))**
+
+## <a name="misc"></a>Miscellany
+
+## <a name="credits"></a>Credits
+
+This release was developed by the following code authors:
+
+AGH Strategies - Alice Frumin, Andie Hunt; BrightMinded Ltd - Bradley Taylor; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; Coop SymbioTIC - Mathieu Lutfy; Dave D; dependabot[bot]; Fuzion - Luke Stewart; Grype Digital Inc. - Md Rashedul Islam; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Kartik Kathuria; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Registered Nurses' Association of Ontario - Ian Wilson; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green
+
+Most authors also reviewed code for this release; in addition, the following
+reviewers contributed their comments:
+
+Agileware - Justin Freeman; Artful Robot - Rich Lott; Blackfly Solutions - Alan Dixon; Bluehorn Digital - Matt Glaman; BrightMinded Ltd - Bradley Taylor; Christian Wach; Circle Interactive - Pradeep Nayak; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Fuzion - Luke Stewart; Grype Digital Inc. - Md Rashedul Islam; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Kartik Kathuria; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie McClelland; Semper IT - Karin Gerritsen; Skvare - Mark Hanna; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green
\ No newline at end of file