Released October 4, 2023
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 |
-
Add "phpstorm" extension (27168, 27175, 27178, 27179, 27239, and 27262)
Adds a "phpstorm" extension which implements a process for integrating some dynamic data into PhpStorm.
-
Improve FormBuilder handling of non logged in flows (Work Towards dev/core#4232: 27041)
Improves FormBuilder schema to better handle form flows for anonymous users.
-
New core extension for scheduled reminders using criteria from search-kit (dev/core#2644: 27081)
Adds the Scheduled Communications extension which makes it so one can set up scheduled reminders using criteria from search-kit.
-
User experience improvement, hide by default the Latitude and Longitude fields, users can enable display if needed (dev/core#2640: 27100)
Hides the Latitude and Longitude fields by default.
-
Pass html text through a formatter when translating it to tokens (27204 and 27203)
Converts new lines to page breaks when rendering text tokens to html.
-
Add custom data when creating smart group (23312)
Adds group custom fields when creating a new smart group from search action Group -> Create Smart Group.
-
Add sort for country/state fields in reports (dev/core#4532: 27135)
Adds sort for country/state fields in reports.
-
Add system check for missing component extensions (27453)
Expands the system check for required extensions to also cover component extensions.
-
Bump search_autocomplete_count default from 10 to 15 (27116)
Improves the overall responsiveness of Autocompletes by fetching more results at a time.
-
Schema - Improve pseudoconstant metadata for
prefetch
andcontrolField
(27054)Improves schema metadata with an eye toward optimizing APIv4 pseudoconstant lookups.
-
Afform - Support multiple permissions in the GUI (27272)
Allows multiple permissions to be set for an Afform.
-
Afform - Allow submissions to be disabled and limited (27211)
Adds FormBuilder settings to disable submissions or limit the number of submissions.
-
SearchKit - Improve handling of money currency (27202)
Improves SearchKit support for different types of monetary entities (e.g. the Expenses extension).
-
SearchKit - Expose sql functions provided by extensions (27197)
Allows extensions to contribute SqlFunctions to SearchKit.
-
SearchKit - In-place edit without refreshing results (27105)
Speeds up the process of in-place-editing on a SearchKit display.
-
Afform - Add Note as an afformEntity (27110)
Adds the Note entity to Form Builder.
-
APIv4 Explorer - Keep list of suffixes in-sync (27109)
Keeps the list of available pseudoconstant suffixes in APIv4 Explorer consistent with the master list.
-
API - Switched to cached function for looking up pemissioned groups (27140)
Performance improvement for looking up acl groups.
-
Afform - Enhance returned values from AfformSubmission.afform_name options (27108)
Improves the psueudoconstant options list returned from AfformSubmission.afform_name so that more attributes of the afform can be accessed.
-
Allow for configuration of activity contacts, type and campaign for email-to-activity (26905)
Adds more options when setting up email-to-activity.
-
APIv4 - Proper ACLs for relationship entity (27183)
Improves v4 Relationship API to use fine-grained ACLs instead of coarse-grained permission check which was too restrictive.
-
APIv4 - Add missing input type options (27236)
Makes APIv4 aware of a couple more input types (both core and custom fields can have these types).
-
Add API-based EntityLookupTrait (27257)
Adds a helper class to make it easy to lookup entity values.
-
Distmaker: add CiviCRM Standalone support (27104)
Adds support for building CiviCRM Standalone tar.gz archives for nightly/rc/stable releases.
-
Standalone: add error handler (26965)
Adds error handling for standalone implementations.
-
Update a couple more tpl variables to tokens (27372, 27004 and 27017)
Updates a couple smarty template variables to use tokens instead.
-
SearchKit - Use Contact.sort_name instead of display_name for searches and Autocompletes (27112)
Improves searchkit user experience by using contact sort name instead of display name for searches and autocompletes.
-
Be able to remove clients from a case from the manage case view (27200)
Makes it so users can remove clients from a case from the manage case view.
-
Add
Discount
to APIv4 (27122)Adds APIv4 Discount entity.
-
Afform - Enable creating event from a template (27058)
Enables selecting an event template when using Afform to create a new event.
-
Update SMS cannot send message to specify that a mobile phone number is required (27194)
Improves the error message when SMS cannot be sent to phone number because it is not a mobile phone.
-
Membership Detail improvements (Work towards dev/core#4522: 27118 and 27249)
Improves the Membership detail report by adding: Membership Status, Auto-Renew, Auto-Renew Subscription Status, Start Date and End Date to the sorting tab.
-
Admin UI: Attempting to delete custom field group with custom fields opens the listing page in modal window (dev/core#4094: 27056)
Use statusBounce instead of redirect when a custom group cannot be deleted.
-
Standalone: language change does not stick (Work towards dev/core#4425: 27040, 27639)
Ensures currentPath for Standalone implementations does not return empty so that language-switcher extension can work.
-
Import caching issue (Work towards dev/core#4467: 27076)
Ensure saving and updating an import field mapping saves correctly.
-
Redis performance issue on delete contact (dev/core#4501: 27115)
-
Search Kit - Links conditional doesn't work with domain_id or domain = current domain (dev/core#4509: 27093)
-
ACLs' priority sometimes does the opposite of what it says it does (dev/core#4542: 27381)
-
ACLs - Fix recent regression handling "edit all contacts" (27409)
-
Autocomplete - Fix search-by-id for entities without a numeric id (27629)
-
When using a Contribution Page with a Membership Price Set, the contribution amount information never shows on the thank you page (dev/core#4555: 27330)
-
SearchKit: Totals include test, template and deleted entities, while rows do not, leading to mismatch (dev/core#4559: 27383)
-
Auto-complete option values aren't available to anonymous users (dev/core#3049: 26841)
-
Add weights on profile fields page to fix notices (27452)
-
Upgrader - Skip snapshots on some MariaDB env's (roughly: 10.6.0-10.6.5) (27404, 27464)
-
APIv4: Implicit joins for email_primary, etc cause error (dev/core#4562: 27399)
-
APIv4 - Fix setting nullable/required/default_value field metadata (27302)
-
Let unset weights give an e-notice (26243)
-
Add weight to a few more links (27216, 27323, 27229, 27283, 27284 and 27230)
-
Standalone: Fix ACL help/links, tweak Users and Permissions menu (27119)
-
Improve error handling by using civicrm_api3 not civicrm_api (27321)
-
Switch to using token for trxn_id, online contribution receipt (27295)
-
Delete probably-unused TrackingFields.tpl and adds a pre-upgrade message to warn people (27233 and 27276)
-
Re-enable any queues that were disabled for background processing, on end (27023)
-
Update one of our complex confirm tests to use full form flow, fix discovered failure to send to additional participants (27277)
-
Replace deprecated RegExp PHPUnit functions for v9 (27139)
-
Switch menubar search to use APIv4 & delete deprecated v3 'getquick' action (26676 and 27263)
-
EntityLookupTrait - Skip queries when looking up id (27261)
-
PHP8 date range not rendered correctly (27228)
-
**standaloneusers: logout function must be static (27265)**s
-
Afform - make summary tab names less weird (27196)
-
Afform - Ensure prefill entities are populated correctly (27615)
-
Improve initialization crash message (27138)
-
Set weight on Note Form (27106)
-
Make import parser external ID error message more helpful (27103)
-
Show which extension has a parse error in info.xml (27028)
-
E:: to make it look after the extension's translation (27027)
-
Use phpunit when running on PHP 7.3+ (27036)
-
ScheduledJob - Clean up form code & improve validation (26879)
-
Fix Domain Organization form for notices & PHP 8 compliance (27190)
-
Flush Redis
prevnext
cache when clearingcivicrm_cache
(27113) -
Pass specific ids rather than ids array (27274)
-
Fix fatal on Manage Extensions caused by financialacls links (27264)
-
Fix weight notices on ActivityType (option values) pages (27395)
-
PseudoConstant - Prevent fatal when entity not available (27358)
-
SearchKit - Fix autocomplete filters on in-place-edit fields (27253)
-
Fix sort groups on PHP 8 (27210)
-
ContactSummary - Fix smarty notices in communication preferences section (27209)
-
Afform - Fix broken prefill functionality (27121)
-
E-notice fix - switch order of and params check around (27188)
-
Fix deprecation notice on ExecuteJob screen (27157)
-
Fix PHP8.1 repeated notice errors in Table.tpl (27137)
-
Fix notices, PHP errors on event location tab (27212)
-
Fix notices on domain.tpl by just adding what we need (27189)
-
Notice fix - schedule reminders (27154)
-
Undefined property fix (27148)
-
Notice fix on contact types browse (27153)
-
Fix e-notice by removing conditionality (27152)
-
Windows fix for CRM_Utils_File::isChildPath (27102)
-
Fix Standalone error handler: remove 5th argument (27099)
-
Fatal error fixes in PHP 8.1 (27077)
-
Path fixes (27026)
-
Fix warning caused by passing null to strpos (300)
-
kcfinder - Fix PHP 8.1 warnings from fastImage (368)
-
kcfinder - Fix cookies when running on alt HTTP port (367)
-
Smarty - Fix e-notice in modifier.escape.php (366)
-
Enotice fix (27002)
-
E-notice fix (27001)
-
E-notice fix, don't skip loading NULL fields (27048)
-
Fix missing weights on Custom data screen (notices) (27428)
-
Add weights on profile links (remove notices) (27432)
-
Fix mistake in just-merged email processor code (27408)
-
Fix undeclared properties in crufty old report (27220)
-
ajax.js - Fix undeclared variable (27269)
-
Move smarty assign to be always assigned (notices) (27207)
-
Fix undeclared property - use locally scoped variable (27090)
-
Smarty-notice fix - use array_key_exists (27117)
-
PHP 8.x fatal fix + bonus smarty consistency (27091)
- avoid double clicks on petition page (27251)
-
Set link weight on manage case (27327)
-
Cannot add case type in multilingual installation with MariaDB 10.2 strict mode (dev/core#2581: 27226)
-
Add contribution page tokens to contribution tokens (27201)
Adds contribution page tokens to contribution tokens.
-
Fix Financial Items incorrectly recorded when using Payment API (26987)
-
Contribution pages with extra URL parameters lead to incorrect AJAX URL constructed in buildPaymentBlock – users cannot proceed to pay (dev/core#4487: 27037)
-
Ensure tax_amount is not null (26993)
-
Fix permission check on Contribution form, clarify underlying functions (27013)
-
Fix PHP 8.0 implode on ContributionBase (27053)
-
Show Contribution Page receipt text in offline contribution receipt (27173)
-
Fix Contribution_Tab links to have weight, improve test (27227)
-
Registering a participant with Pending event payment gives misleading information. (dev/core#3410: 27288)
Show 0 rather than nothing when paid amount is zero
-
Event Dashboard: show events that have not ended yet (27329)
Ensure events that span more than 7 days don't disappear from the Event Dashboard before the event ends.
-
Crash when saving repeating event (dev/core#4550: 27315)
-
Replace Event Total with Total Amount on confirm/thankyou pages (dev/core#4485: 27024)
-
View and Edit links for event participants are inconsistent and in some cases do not allow editing (dev/core/#3361: 24657)
-
Fix variable leakage in online event receipt (27443)
-
Fix notice on unpaid event (27367)
-
Fix incorrect event receipt regression (27159)
-
Fix Manage Events breadcrumb regression (27095)
-
Manage event - fix too many brackets (27061)
-
Fix event templates to use end_date token (27005)
-
Ensure event ID is an integer (27363)
-
Also add event confirm text as default receipt_text for edit Participant (27160)
-
Online Event Receipt - Remove deprecated backticks (27671)
-
Scheduled Job, fetch_bounces with is_create_activities=1 parameter creates a new Contact using the Return-path email address which is incorrect (Work towards dev/core#2800: 27356)
Fixes bounce processing to handle verp emails.
-
Wording changes in the Unsubscribe form (27022)
-
"New Mailing" - Unsubscribe field doesn't appear (27626)
-
Finish CiviCRM 2.1 deprecation - old-style VERP (27318)
-
Report improvements (Work towards dev/core#4536: 27169)
Fixes the 'Primary Membership' filter options in the Membership Details report template.
-
Membership renewal on Feb 29 of a leap year is calculated incorrectly (dev/core#4541: 27198)
-
Add weights to membership type links (27231)
- Global $language should be an object, not a string (dev/backdrop#80: 27038)
- phpunit.xml.dist - Fix compatibility with phpunit9 (670)
-
E2E_Core_PathUrlTest::testGetUrl_WpAdmin() fails because CiviCRM routing is confusing (Work towards dev/core#4433: 26861)
-
Plugin compatibility architecture and loss of locale on "Secondary URLs" when using Polylang (dev/wordpress#143: 27128 and 301)
-
phpunit.xml.dist - Update extensions to use phpunit9 format (27133)
-
APIv3 - Delete API examples (27174)
-
EntityLookupTrait - Add isDefined and getDefinition methods (27275)
-
API - Soft-deprecate civicrm_api() wrapper (27180)
-
APIv3 Explorer - Delete unused code (27181)
-
Pass in function values, rather than handling by form-name (27092)
-
Use new lookup trait to eliminate use of undefined properties
userDisplayName
(27259) -
Joomla - Add placeholder to fix errors related to deleted file (27591)
-
Upgrader - Add breadcrumb guard (27518)
-
Upgrader - Add multilingual schema updates (27446)
-
CiviCampaign - Refactor civicrm_survey.recontact_interval (27268)
-
Move regex processing in EmailProcessor to handling class (27337)
-
Bump recommended PHP version to 8.1, min recommendation to 8.0 (26985)
-
Add code comments re the cleanup I didn't do (27451)
-
Fold deprecated function back into the caller (27345)
-
Replace another badly named undeclared property (27215)
-
Move no-longer-shared function back to it's form (27213)
-
Fold private function back into calling function (27145)
-
Further fix forms to full form flow (27256)
-
Move form specific code to relevant form (rather than access mostly-undeclared property) (27069)
-
ScheduledReminders - Rewrite entire form using metadata (27003)
-
Move form-specific check to form (27068)
-
Simplify queries of NOT NULL fields (27008)
-
Clarify doc-block for form variable (27051)
-
Separate getStatusMessage function (27015)
-
Added details for sebalis in contributor-key.xml (27039)
-
Move function to only form that calls it (27299)
-
Unconditionally assign smarty variable (27300)
-
Unconditionally assign smarty-var, remove unused variables (26051)
-
Make function private, after universe search in EmailProcessor (27309)
-
Make function private to reflect usage (27308)
-
Declare CRM_Core_Exception in cleanDir, add type hints (27306)
-
Make splitjob function static & private, Remove a couple of unused variables (27304)
-
Do the todo (move the function to the trait as suggested (27063)
-
Api4 - Remove unused key from getFields (27060)
-
CRM_Core_Form - Remove unused protected properties (27191)
-
Remove isset from Arb.xml (27224)
-
Remove some copy & paste code (27214)
-
Remove Html2text security check, package deleted (27218)
-
Remove decade-only typo (27219)
-
Remove some unnecessary variables & pass by ref (27273)
-
Remove unused profiles from offline event receipts (27150)
-
Remove unused CONST (27301)
-
Remove always-true empty check (27193)
-
Remove unusable assigns (copy & paste I believe) (26952)
-
Remove broken deprecated function (27163)
-
Remove use of sometimes-php8-warning causing
_quickConfig
property… (useisQuickConfig()
function) (27070) -
Remove line that gives error & does nothing (27064)
-
Remove long-broken function (27317)
-
Remove unused variable (27350)
-
Remove unused parameter, pass by reference in private function with one caller (27320)
-
Remove some unused undefined properties from participant export (27298)
-
Remove unneeded descriptions and clean up on search forms (26292)
-
Remove do-nothing code. (27047)
-
Remove excessive data handling & some unused variables (27019)
-
Remove unused parse function for Incoming Mail (27011)
-
Remove unreachable page (27305)
-
Remove, extraneous: punctuation? (27297)
-
Delete html2text, not in use (370)
-
[REF] SearchKit - Cleanup upgrade code (27042)
-
(REF) civicrm_data.tpl - Stop using Smarty's {php} (27052)
-
[REF] APIv4 - Simplify entity name gathering (27177)
-
[REF] Remove unreachable handling (27192)
-
[REF] - Cleanup managed entities to all go through
hook_civicrm_managed
and deprecate unnamed entities (27254) -
[REF] Convert from session status to deprecation warning (27255)
-
[REF] Fix Notice Errors on ACL listing page by assigning fields consistently (27164)
-
[REF] Update Zetacomponents/mail to be 1.9.5 to fix email validation handling (27344)
-
Revert "[REF] Update Zetacomponents/mail to be 1.9.5 to fix email validation handling" (27394)
-
REF - Simplify inline conditionals with Elvis (27141)
-
[REF] Ensure that any NULL values in the title field are fixed prior to changing the column (27368)
-
[REF] Improve cron job handling when there is an invalid report instance id passed to mail_report job (27185)
-
[REF] Fix infinite loop when trying to load a report instance with an id that does not exist (27184)
-
[REF] PCP - Update BAO to use writeRecord/deleteRecord (27127)
-
[REF] Add pseudoconstant suffixes to xml/dao (27172)
-
[REF] 🏌️ CRM_Utils_Array cleanup (27187)
-
[NFC] Be more confident and informative in the comment for CRM_Core_Session::set() (27313)
-
[NFC] Test - Add return type hints to test functions (27186)
-
(NFC) Test class - Fix inconsistent namespace (27055)
-
[NFC] Add some email processor hooks tests (27097)
-
(NFC) Fix random test failures (27574)
-
(NFC) Fix test failure on PHP 7.3 (27714)
-
Update ca-config for better PHP 8.2 support (27550)
-
Add missing weights for
hook_civicrm_links
(27528, 27544, 27566, 27710) -
Remove old tests that only test test functions (27208)
-
Concurrency Tests - Update ExternalBatch for symfony/proces v4.1+ (esp Drupal 10) (27072)
-
Simplify test (27205)
-
Test fix, towards full form flow (27067)
-
Remove never called testCleanUp function (27206)
-
Add test & fix for getOptions on options with a domain id (27161)
-
Test Cleanup - Refactor out uses of deprecated
callAPIAndDocument()
(27176) -
Remove some unused parameters in test class (27166)
-
ActionScheduleTest - Update for compatibility with PHPUnit 9 (27101)
-
Unit tests - replace deprecated function with newer one (27032)
-
Fix forms to call full form flow (27250)
-
Add form helper for tests (27267)
-
Fix participantTest to not use transactions (27260)
-
Participant Form Test fixes (27245)
-
Superficial clean up in test class (27238)
-
Cleanup signature for test function
getFormObject
(27225) -
Switch tests to use createTestEntity for payment processor (27217)
-
Add email helper to new form test helper (27384)
-
Fix financial transfer test to use form flow, allow all pending to transfer (27281)
-
Fix token consistency test with new lines and
s (27314) -
Trivial cleanup in EmailProcessorTest (27307)
-
[test] [cleanup] Move _REQUEST cleanup to tearDown (27285)
-
Update further tests to additional form flow, lock in bug fix (27279)
-
Minor cleanup in test (27282)
This release was developed by the following code authors:
AGH Strategies - Alice Frumin, Andie Hunt; ALL IN APPLI admin; Artful Robot - Rich Lott; cdhassell; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; civiservice.de - Sebastian Lisken; Coop SymbioTIC - Mathieu Lutfy; Dave D; Humanists UK - Andrew West; JMA Consulting - Seamus Lee; Just Hope - Phil Morice Brubaker; Lemniscus - Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie McClelland; Robert J. Lang; SebastianLisken; Squiffle Consulting - Aidan Saunders; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Damilare Adedoyin, Eileen McNaughton, Wenjun Fan; Wildsight - Lars Sander-Green
Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments:
Agileware - Justin Freeman; Andy Clark; ASMAC (American Society of Music Arrangers and Composers) - Jeff Kellem; Australian Greens - Andrew Cormick-Dockery, John Twyman; Francesc Bassas i Bullich; Freeform Solutions - Herb van den Dool; Guydn; JMA Consulting - Joe Murray, Monish Deb; Korlon - Stuart Gaston; Megaphone Technology Consulting - Brienne Kordis; Tadpole Collective - Kevin Cristiano; Third Sector Design - William Mortada; Tobias Voigt; yurg
These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
and contact @agh1
.