Released March 5, 2025;
| 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? | no |
| Introduce features? | yes |
| Fix bugs? | yes |
-
Installer - Use Riverlea's Minetta by default (31985)
Enables Riverlea's Minetta by default on new installs.
-
RiverLea 1.3.4: 3 Thames & 1 core fix, ref MR #49 (31930, 31961, 32077, 31781, 31913, 32176, 32209, 32129 and 31833)
Improves accessibility and user experience for sites using RiverLea.
-
Add TIMESTAMPDIFF function to searchkit so you can show time between two dates (31332)
Adds the ability to show the time between two dates in SearchKit.
-
Search: disable the alpha pager by default (31883)
Improves user experience by disabling the alpha pager on search results by default.
-
UX: Could not find a valid session (dev/core#5610: 31638)
Improves user experience when a valid session key error is displayed.
-
Proposal - ship unicode fonts - Given the current size of the tarball, and the recent PSA about wkhtmltopdf, does it still make sense to remove the unicode font from dompdf in the tarball? (dev/core#5539: 31809)
Offers dejaVu fonts.
-
EntityRepository - The new canonical source for metadata & CRUD (Work Towards dev/core#5410: 31105)
Adds ACL checks to getOptions.
-
Queue.reset - Add API to drop all pending items (31907)
Add a new API,
Queue.reset. It is similar toQueue.runorQueue.runItemsin that it's targeted at a specific queue. It deletes all pending items in the queue. -
ChartKit - allow more numeric formats as sourceDataTypes (31876)
Improves ChartKit by allowing more numeric formats as source data types.
-
Add pageRun hook to
CRM_Core_Page_File(31855)Makes it possible to use the pageRun hook with
CRM_Core_Page_File. -
A11y - Add aria roles to tablists (31929)
Adds accessibility tags to the tab markup.
-
Update existing navigation labels to match new 'Site Email Address' (31988)
Changes the navigation menu item "FROM Email Addresses" to "Site Email Addresses".
-
Search Kit - For "Entity" displays, provide TABLE/VIEW options (31632)
Makes it so in Search Kit, you can create a saved-search and use it to generate a read-only custom API.
-
SearchKit - Improve UI for adding/removing tags & fix error when tags already exist (31745)
Improves user interface for adding and removing tags in SearchKit.
-
SearchKit Reports - add tagging functionality to categorise reports (dev/core#5654: 31890)
Adds support for tagging Afforms using Tag entity.
-
SearchKit - Improve the UI for sql functions (31717)
Improves user interface for using sql functions in SearchKit.
-
SearchKit - Add new "Tree" display 🌲, use for AdminUI Navigation menu screen (31803)
Adds a new searchKit display option "Tree" and uses it for the AdminUI Navigation menu.
-
Afform - Add support for saving and restoring draft submissions (31882)
Adds support for saving and restoring draft submissions in Form Builder.
-
Afform - Improve UX for batch-processing submissions (31906)
Improves the UX and simplifies the code for batch-processing Form Builder submissions. Adds "rejected" status.
-
Afform - Add status filter/icon to submission list (31884)
Improves submission list by adding status filter/icon.
-
Afform - Add to contact summary actions menu (31838)
Adds a no-code way to add a form to the "Actions" menu on the contact summary screen.
-
Move
from_email_addressoptions to new SiteEmailAddresses entity (31909)Moves the 'from_email_address' option group into its own table: Introducing the new SiteEmailAddress entity. 🎉
-
Dedupe performance & hooks (Work Towards dev/core#5433: 31689)
Adds the legacydedupefinder extension.
-
Api4 - Enable managed, hierarchical traits for Campaign entities (31359)
Adds a couple useful features to CiviCampaign, enabling a hierarchical searchKit display of campaigns, and allowing extensions to package them as managed entities.
-
Add Personal Campaign Page Admin UI Screen (29541)
Recreates the Personal Campaign Admin UI screen as a SearchKit Search.
-
Display custom fields on Price Field Values (31839)
Shows Custom Fields on Price Field Values on the Edit Price Option page.
-
ContributionView: show the contrib id, remove some buttons, layout changes (31603)
Improves and standardizes the Contribution view.
-
Membership renewal form: Clarify "Date renewal entered" (30427)
Improves the user interface when renewing a membership.
-
Standalone - Faster page load times (32252)
Improves performance.
-
standaloneusers: support translation on the login screen (31954)
Improves translation for the standalone login screen.
-
Update Miscellaneous admin form to mostly use settings (31831)
Standardizes the Miscellaneous admin form.
-
Iframe: Add support for WordPress (dev/core#5464: 336 and 31460)
Adds support for IFRAME URLs via
?_cvwpif=1.
-
Certain Contact Summary Tabs Not Showing Count (dev/core#5731: 32078)
-
Relationship tab - disable link gives fatal error (dev/core#5741: 32136)
-
Names that have quotation marks mess up display formatting (dev/core#5711: 31922)
-
Can't import using contact id (dev/core#4389: 30034)
-
Default From Email Address not respected (dev/core#5720: 31987)
-
Finish allowing use of SSL to connect to database (Work Towards dev/core#1926: 31912 and 31911)
MySQL SSL fixes for Backdrop, Drupal 7, and Standalone integrations and improves debug info about SSL failures.
-
Follow-up task - Remove the CiviCRM Connections functionality from CiviCRM core (Task 2 of 2) - Remove the code (dev/core#2941: 31740)
-
FormBuilder - refreshing page after saving a new or cloned one lose current context (dev/core#4827: 31742)
-
Afform - Autocomplete as filter fails when entity is not primary in SK (dev/core#5679: 31758)
-
Div ID "contact-summary" changed to "contact-0" (dev/core#5688: 31812)
-
Condition in Formbuilder: field is renamed 'false' when there's no label (dev/core#5693: 31844)
-
Composer's
ext-*requirements are inconsistently enforced (dev/core#5702: 31874) -
Formbuilder: ReadOnly fields don't display "view value" (dev/core#5706: 31894)
-
Debug Mode - Behaves inconsistently on Backdrop/D7 (dev/core#5712: 31921)
-
CRM_Event_WorkflowMessage_EventOfflineReceipt::getProfiles(): Return value must be of type array, null returned (dev/core#5717: 32195)
-
Column too short: civicrm_action_schedule.start_action_date (dev/core#5725: 32054)
-
api3 contact.getoptions for custom fields either returns null or an error (dev/core#5747: 32170, 32168 and 32167)
-
Afform - Fix reading urlHash (31837)
-
Afform - Fix maxlength comparisons (32220)
-
Afform - Fully deprecate
contact_idand remove AfformBlock.tpl (31836) -
afform: fixes defaults for join entities (32139)
-
Afform - Fix prefilling location blocks with different fields (32121)
-
Afform - Use entity-specific filter key, revert entity_id generic key (32040)
-
FormBuilder - Fix fatal crash with ContactLayout summary blocks (32068)
-
SearchKit - Refresh DB entities via table-swap (31767)
-
SearchKit - Correctly format numeric custom fields (31772)
-
SearchKit - Fix hiding buttons when downloading spreadsheet 32268
-
SearchKit - Fix undefined index warning (32142)
-
SearchKit - Fix tally with long column names (31892)
-
SearchKit - Improve enable/disable responsiveness and fix bugs in hierarchical displays (31866)
-
AdminUI - Fix custom field tabs appearing for wrong contact subtype (32083)
-
AdminUI - Prevent crash after adding new custom group (32143)
-
Switch long & angular caches to use fast-array (31416)
-
Fix mail settings page to use metadata (31950)
-
Developer settings page - switch to generating from meta (31966)
-
Improve crmUiIconPicker with ngModel support for binding (31859)
Fixes a UI bug in SearchKit
-
Upgrader - Fix upgrade error with i18n-enabled databases (32109)
-
Upgrader tasks should not have ts (32033)
-
Profile - Fix e-notice when displaying website field with no value (31918)
-
LegacySpecScanner - only needs to look in extensions (31253)
-
ManagedEntity - Ensure multisite domain entities match on domain_id (31888)
-
Api3 - Fix profile.submit function to correctly handle more fields (31914)
-
Use proper table names in query (31903)
-
Break variable assignment into 2 rows (31940)
-
CustomField - Increase maxLength for Link fields to 2047 characters. (31868)
-
Urgent (before 6 freeze): Fix broken select2s on Thames stream (31964)
-
CRM_Core_BAO_MessageTemplate::getMessageTemplates throws API Request Authorization failed because check permissions is enforced (31852)
-
CustomField - Update searchable field label for consistency with form (31872)
-
CRM_Report_Form::_aliases set public (31814)
-
Check parents key exists in GroupsCommon.tpl (30962)
-
Api3 - Restore groupContact.delete action (31826)
-
Navigation - Get 'delete' link working (31779)
-
DeletedFiles - Always use case-sensitivity when generating list
(31764) -
CustomGroup: provide a more helpful message when a extendsChildType fails to validate (31766)
-
PHPUnit Bootstrap - Minor workflow improvement re:xdebug (31750)
-
Discourage accessing
$form->_values(31958) -
fixes warning buildRecurBlock (31915)
-
Activity Priority: unhardcode the default priority (31851)
-
Fix position of closing icon tags (31835)
-
Online regen script needs sendmail now (31853)
-
Clarify function parameter (31969)
-
Improve legibilty by using mysql alias rather than long variable name (31975)
-
i18n: throw an exception if an invalid escape mode is used (31963)
-
SqlGenerator - Ensure FK index names are not too long (31910)
-
Cast to string for explode in CRM_Utils_CommaKV (31827)
-
CRM_Utils_System_Base::url() has 6 parameters not 7 (31800)
-
Smarty notice fix (31807)
-
Handle possibility of a NULL source_record_id (address fatal error) (31784)
-
CiviReport - Fix saving report with is_reserved = false (32141)
-
many relative dates aren't going to 11:59:59 (31429)
-
Use escaping in SQL query for best practice (31741)
-
Fix intermittent ExpiredToken error when Iframe patches applied (341)
-
php8.2 Fix use of curly braces in package (420)
-
PHP compatibility Remove usage of curly braces (419)
-
Make sorting of countries more consistent (31869)
- CiviCampaign - Remove hard-coded reference to unused custom fields (31829)
-
Authorize.net recurring subscription subsequent contributions not recording (dev/core#5732: 32181)
-
When Importing contributions (including columns for soft credits) the soft credit mapping is not saved and the soft credits are not imported (dev/core#5370: 32087)
-
Fix financial type permissions when label doesn't match name (32189)
-
Fix financial type custom fields (32131)
-
Events page, problem with pager, more/less than 20 items (dev/core#5758: 32239)
-
Fix PHP Warning in getAdditionalParticipants (31821)
- CiviGrant - Remove multi-domain from grant_type option group (31924)
-
Suppress the warning Failed to set final value of List-Unsubscribe (31899)
-
CiviMail: don't pass unused job_id parameter to unsub methods (31811)
-
Convert MembershipLog.modified_date from date to timestamp so we record time as well (31799)
-
Use shared getContactMatchingFields from membership import metadata (31948)
- Missing route cachability metadata in CiviCRM (103)
-
Login issue on CiviCRM Standalone: "unexpected error", "All requests that modify the database must be http POST, not GET" (dev/core#5640: 31727)
-
Standalone login page - fix input text color (32226)
-
Standalone login box coloring - fix the text color to black to fix dark mode (31991)
-
Standalone - Fix crash when viewing afform (32059)
-
Standalone - Fix syntax error typo in conditional (32041)
-
Standalone - explicitly set $appRootPath and $settingsPath as globals in boot file (31777)
-
Standalone events (31846)
-
Consolidate dupesByParam (31974)
-
Fold copy of getTree back into only caller (31933)
-
Move helper function from test to shared test trait (31936)
-
Upgrade core extensions to civix v25.01.1 (31885)
-
Oauth - Upgrade to civix v2025.01.1 and EFv2 (31887)
-
Add deprecated warning to BaseIPN (31453)
-
Fix another code place to not use legacy query method (31900)
-
Update comment block with additional possible values (31904)
-
Stop setting unused variable (31938)
-
Minor query simplification (31897)
-
Stop passing unused parameter (31896)
-
Deprecate a couple of old bits of format wrangling (31934)
-
Finish deprecating PDFLetterCommon class (31810)
-
Move remaining 'build' functions from AdditionalInfo to only caller (31956)
-
Standardise parameter type (bool) (31973)
-
Move parameter standardisation to before the hook, add test (31972)
-
Membership renewal form: Minor Cleanup and simplification (31875)
-
Address deprecation notice (31960)
-
Install script - minor code cleanup (31847)
-
Stop using deprecated constant (31952)
-
Api3 - Remove old functions deprecated since 2014 (31773)
-
Stop using function to get name of non-localised table
civicrm_mailing_event_opened(31901) -
UFField: remove unclear field_name check (31891)
-
Remove unused properties, duplicate catch (31937)
-
Remove unreachable code (31939)
-
Removed Unneccesary Enter Text (31858)
-
Remove variables used for 2 non-localisatable tables (31902)
-
Remove another call to dao->query() (31898)
-
Remove unreachable & do-nothing code (31962)
-
Remove deprecated SMSCommon.php (31778)
-
Remove assigns from previously shared code (31957)
-
Remove function noisily deprecated in 2022 (31949)
-
Remove unused parameter from private function (31955)
-
Remove BAO_CustomGroup::postProcess deprecated in 5.71 (31932)
-
Remove pointless price set wrangling from batch data entry form (31675)
-
Delete unused Location.php (31776)
-
Delete unused TabHeader.php (31775)
-
CRM_Import_Parser - Delete unused deprecated functions (31774)
-
SloppyTestChecker - Refine the definitions (31798)
-
[REF] userFrameworkLogging - update settings meta and switch System public property to a function (31857)
-
(REF) CiviUnitTestCase - Plug more leaks (31796)
-
[REF][PHP8.2] Declare properties on CRM_Admin_Form_WordReplacements (31806)
-
[REF][PHP8.2] Declare property in CRM_Mailing_Form_ForwardMailing (31819)
-
[REF][PHP8.2] Declare fields property in CRM_Contact_Form_Task_Batch (31818)
-
[REF][PHP8.2] Declare tabs property in CRM_Campaign_Page_Vote (31817)
-
[REF] Chart kit - move reduce types to a separate service (31916)
-
[REF] Api4 - Remove useless test (31867)
-
REF - Remove some uses of deprecated
CRM_Utils_Array::value(31841) -
[REF] Migrate determining the connection details to use from Drupal8 install file into setup code (31917)
-
(REF) Tests - Sundry cleanups (31795)
-
(REF) Api4TestBase - Each test starts with default list of components (31797)
-
[REF] Add Test of Billing update form for contribution Recur and ensure receipt from is assigned (31905)
-
[REF] Return tempTable name from fillTable (31980)
-
[REF] Remove code no longer needed as setup routine is now smarter See civicrm#31917 (104)
-
[REF] Ensure that Privacy (single checkbox) fields show up on Event Registrations when fields are used in a profile (31692)
-
[NFC] Simplify function call in test (31820)
-
[NFC] remove duplicate from contributor-key.yml (31951)
-
(NFC) mixin/polyfill.php - Tweak boolean notation (31840)
-
Add name to contributor-key.yml (31748)
-
Add name to contributor-key.yml (31743)
-
minor test cleanup (31759)
-
Minor cleanup in test class (31791)
-
Minor clean up in test class (31942)
-
Reduce the hard-codedness of test data (31749)
-
Afform - Test cleanup (31761)
-
Use Mock Handler in A.net test (32214)
-
Fix failing test (32187)
-
Minor clean ups in test classes (31754)
-
Try removing more of the old test dataset (31790)
-
Test clean up on campaign (31755)
-
Some test clean up (31753)
-
SettingsAdminTest - Relax assertion re: permissions on disabled extenions (31815)
-
See if this test data is all used.... (31788)
-
Minor clean up in test classes (31747)
-
Minor test cleanup on setUp & tearDown (31941)
-
SearchKit - Fix unit test assumptions (31805)
-
SearchKit - Fix failing test (31804)
-
Minor test cleanups (31786)
-
Minor test cleanups (31787)
-
minor test cleanup (31760)
-
MixinTestCase - Small usability tweaks (31816)
-
Minor clean ups in test classes (31752)
-
Minor cleanups in test classes (31746)
-
Change version to 6.0.alpha1 (31763)
-
Fix typo in release notes (32057)
-
Add missing PR 31671 to release notes for 5.81.0 (31783)
-
release-notes.md - Update TOC (31978)
-
Run regen (32061)
This release was developed by the following code authors:
AGH Strategies - Alice Frumin; Agileware - Justin Freeman; Artful Robot - Rich Lott; Benjamin W; BrightMinded Ltd - Bradley Taylor, Anwen Williams; Business & Code - Alain Benbassat; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; Coop SymbioTIC - Mathieu Lutfy, Shane Bill; Dave D; gitressa; JMA Consulting - Monish Deb, Seamus Lee; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Mosier Consulting - Justin Mosier; Nicol Wistreich; Reflexive Communications - Sandor Semsey; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi, William Mortada; Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments:
Albrecht Schmidt; chumkui; Coop SymbioTIC - Samuel Vanhove; Daniel Strum; dev ALL IN APPLI; Francesc Bassas i Bullich; Fuzion - Luke Stewart, Peter Davis; Guydn; Jade Gaunt; JMA Consulting - Joe Murray; Lemniscus - Noah Miller; ozhamlet; Richard Baugh; Semper IT - Karin Gerritsen; Sjoerd Langkemper