3 Released February 3, 2021
5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
12 ## <a name="synopsis"></a>Synopsis
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | no |
17 | **Change the database schema?** | **yes** |
18 | **Alter the API?** | **yes** |
19 | **Require attention to configuration options?** | **yes** |
20 | **Fix problems installing or upgrading to a previous version?** | **yes** |
21 | **Introduce features?** | **yes** |
22 | **Fix bugs?** | **yes** |
24 ## <a name="features"></a>Features
28 - **Re-Thinking our Crypto implementation
29 ([dev/core#2258](https://lab.civicrm.org/dev/core/-/issues/2258):
30 [19236](https://github.com/civicrm/civicrm-core/pull/19236),
31 [19251](https://github.com/civicrm/civicrm-core/pull/19251),
32 [19239](https://github.com/civicrm/civicrm-core/pull/19239),
33 [19349](https://github.com/civicrm/civicrm-core/pull/19349),
34 [237](https://github.com/civicrm/civicrm-wordpress/pull/237),
35 [57](https://github.com/civicrm/civicrm-joomla/pull/57),
36 [125](https://github.com/civicrm/civicrm-backdrop/pull/125),
37 [635](https://github.com/civicrm/civicrm-drupal/pull/635), and
38 [57](https://github.com/civicrm/civicrm-drupal-8/pull/57))**
40 This adds a new framework for encrypting setting values that are stored in the
41 database. An encryption key is defined upon installation, and the key can be
42 rotated using APIv4. Keys can also be managed with a new
43 `hook_civicrm_crypto`. The system allows for old keys to be retained for
44 decrypting old values even as a new key is used for encrypting new ones.
46 The only setting that is changed at this point is the SMTP password, as that
47 was the only setting in core encrypted with `CRM_Utils_Crypt`. However, this
48 framework is available for extensions and will likely be adopted for other
51 You may optionally configure `CIVICRM_CRED_KEYS` in `civicrm.settings.php`
52 upon upgrade. Sites that define `smtpPassword` in their
53 `civicrm.settings.php` file may need to update the value. See
54 [pull request 19239](https://github.com/civicrm/civicrm-core/pull/19239) for
57 Meanwhile, `CRM_Utils_Crypt` is retained (but deprecated) for compatibility
58 with the extensions that use it.
60 - **Add pre() and post() hooks for ufgroup entity
61 ([dev/core#2199](https://lab.civicrm.org/dev/core/-/issues/2199):
62 [18995](https://github.com/civicrm/civicrm-core/pull/18995))**
64 The pre and post hooks are now triggered when modifying profiles.
66 - **Add support for multi-value contact reference custom fields
67 ([18941](https://github.com/civicrm/civicrm-core/pull/18941))**
69 Makes it so users can configure a multi-value contact reference custom field.
71 - **Add missing state for South Korea
72 ([19157](https://github.com/civicrm/civicrm-core/pull/19157))**
74 This adds the special self-governing city Sejong to the state/province table
77 - **CRM_Core_Key - Provide more debugging hints about mismatched `qfKey` values
78 ([19145](https://github.com/civicrm/civicrm-core/pull/19145))**
80 The qfKey now has a prefix that corresponds with the form name.
82 - **Add min-width to flex columns for responsive layout on small screens
83 ([19235](https://github.com/civicrm/civicrm-core/pull/19235))**
85 This adjusts 2-column layouts on the main CiviCRM dashboard and Search Kit to
86 collapse to 1 column on small screens.
88 - **APIv4 - Add "Permission.get" for listing available permissions
89 ([19115](https://github.com/civicrm/civicrm-core/pull/19115))**
91 Adds a new API method "Permission.get" to be used for administrative tools
92 that allow one to choose/assign a permission.
94 - **APIv4: Support relative date range input
95 ([19181](https://github.com/civicrm/civicrm-core/pull/19181))**
97 Extends APIv4 to support relative date range inputs.
99 - **Free the joins! APIv4 explicit joins - can we remove the requirement for
100 specific columns in the "on" clause? (Work Towards
101 [dev/core#2271](https://lab.civicrm.org/dev/core/-/issues/2271):
102 [19275](https://github.com/civicrm/civicrm-core/pull/19275))**
104 Allows greater flexibility in how explicit joins are performed in APIv4.
106 - **Non translatable fields in profile schema (Work Towards
107 [dev/core#527](https://lab.civicrm.org/dev/core/-/issues/527):
108 [19291](https://github.com/civicrm/civicrm-core/pull/19291))**
110 Ensures the public title is used and translatable for on behalf profiles,
111 confirm pages and thank you pages.
113 - **Proposal - add hook alterIndices
114 (Work Towards [dev/core#2279](https://lab.civicrm.org/dev/core/-/issues/2279):
115 [19293](https://github.com/civicrm/civicrm-core/pull/19293) and
116 [19288](https://github.com/civicrm/civicrm-core/pull/19288))**
118 Adds indexes to `campaign.name` and `civicrm_group.cache_date`.
122 - **Wording change - change UI parts of contribution soft schema to soft credit
123 ([dev/financial#158](https://lab.civicrm.org/dev/financial/-/issues/158):
124 [19085](https://github.com/civicrm/civicrm-core/pull/19085))**
126 Improves user experience of Search Kit/Afform by cleaning up language
127 related to Soft Credits.
129 - **Cancel first contribution associated to membership, cancels the membership
130 (Work Towards [dev/core#927](https://lab.civicrm.org/dev/core/-/issues/927):
131 [19019](https://github.com/civicrm/civicrm-core/pull/19019))**
133 Completes moving the logic for the contribution statuses "Cancel" and "Fail"
134 from core to the `contributioncancelactions` extension.
136 - **Move financial acl warning from FinancialType BAO to extension.
137 ([19283](https://github.com/civicrm/civicrm-core/pull/19283))**
139 Moves more code from core to the financial acls extension.
141 - **Add ContributionSoft v4 api
142 ([19083](https://github.com/civicrm/civicrm-core/pull/19083))**
144 Adds the Contribution Soft entity to APIv4.
146 - **Add v4 api for financial type, financial account
147 ([19282](https://github.com/civicrm/civicrm-core/pull/19282))**
149 Adds "Financial Type" and "Financial Account" entities to APIv4.
151 - **[APIv4] Permit using other SQL functions such as CONCAT within a
152 GROUP_CONCAT ([19255](https://github.com/civicrm/civicrm-core/pull/19255))**
154 Allows for SQL functions such as CONCAT to be used within a GROUP CONCAT,
155 this maybe useful for example when trying to get all the line items associated with a
156 contribution into one field.
158 - **Add default for boolean fields on financial_type
159 ([19281](https://github.com/civicrm/civicrm-core/pull/19281) and
160 [19335](https://github.com/civicrm/civicrm-core/pull/19335))**
162 Sets default values for the "Financial Type" fields 'is_active' and
165 - **Improve logging when a contribution is created/updated
166 ([19252](https://github.com/civicrm/civicrm-core/pull/19252))**
168 Improves logging when a Contribution is created/updated to improve the
169 debugging experience.
173 - **Add a unique event ID so we can match pre/post Insert/Update
174 ([19209](https://github.com/civicrm/civicrm-core/pull/19209))**
176 Makes it so developers can use the event ID to link pre/post Insert/Update
177 events for the same change.
181 - **Search kit: Rewrite input widget to support IN sets, relative dates, BETWEEN
182 groups, etc. ([19229](https://github.com/civicrm/civicrm-core/pull/19229))**
184 Overhauls the input widget for all fields in Search Kit so that they support:
187 - **Search kit: Improve token support
188 ([19260](https://github.com/civicrm/civicrm-core/pull/19260))**
190 Adds a token selector to the Search Kit UI when configuring displays.
192 ### WordPress Integration
194 - **Enhance CiviCRM's integration in WordPress
195 ([231](https://github.com/civicrm/civicrm-wordpress/pull/231))**
197 Improves user experience for WordPress sites by introducing sub menu items to the
198 WordPress SideBar "CiviCRM" Menu item including:
202 ## <a name="bugs"></a>Bugs resolved
206 - **jquery.validate.js update (includes CVE-2021-21252)
207 ([dev/core#2324](https://lab.civicrm.org/dev/core/-/issues/2324):
208 [19457](https://github.com/civicrm/civicrm-core/pull/19457))**
210 The jQuery Validate library contained a regular expression that was vulnerable
211 to ReDoS (Regular Expression Denial of Service).
213 ReDoS, or Regular Expression Denial of Service, is a vulnerability affecting
214 poorly constructed and potentially inefficient regular expressions which can
215 make them perform extremely badly given a creatively constructed input string.
217 This offers security hardening by preventing a user from entering a string
218 that could tie up their browser in validating it.
220 - **Fix updating custom field schema when toggling search or multiple
221 ([18939](https://github.com/civicrm/civicrm-core/pull/18939))**
223 Fixes a crash & possible data loss when changing a custom field of type
224 "Country" or "State/Province" from a multi-select to single or vice versa.
226 - **Quick fix on summary actions conflict
227 ([19067](https://github.com/civicrm/civicrm-core/pull/19067))**
229 If multiple extensions insert items with the same weight into the contact
230 summary actions drop-down, this ensures all menu items are displayed.
232 - **Greenwich: Fix Select2 free-tagging css bug
233 ([19225](https://github.com/civicrm/civicrm-core/pull/19225))**
235 Adds a CSS tweak to Greenwich that fixes a style conflict between Bootstrap
238 - **APIv4: Normalize option list descriptions as plain text
239 ([19237](https://github.com/civicrm/civicrm-core/pull/19237))**
241 Ensures the description field comes through as plain text when fetching option
244 - **Unwanted mail blast sent by Scheduled Reminders (Work Towards
245 [dev/core#365](https://lab.civicrm.org/dev/core/-/issues/365):
246 [19068](https://github.com/civicrm/civicrm-core/pull/19068))**
248 This adds a `created_date` column to the `action_schedule` table. This is in
249 anticipation of a change to prevent a newly-created scheduled reminder from
250 triggering reminders that would be due to send prior to the creation of the
253 - **Editing a smartgroup created through the search builder renders the new
255 ([dev/core#2270](https://lab.civicrm.org/dev/core/-/issues/2270):
256 [19257](https://github.com/civicrm/civicrm-core/pull/19257))**
258 Ensures the new record type and operator line only appear on the new search
259 builder form (not when editing existing smart groups via search builder).
261 - **Merge all members into the same household when using select fields fails
263 ([dev/core#2272](https://lab.civicrm.org/dev/core/-/issues/2272):
264 [19268](https://github.com/civicrm/civicrm-core/pull/19268))**
266 Fixes a DB Error when exporting contacts using the "Merge Household members
267 into their Households" setting and selecting fields for export.
269 - **civicrm-setup - Error during, uh, let's call them unit tests, if db port
271 ([dev/core#2286](https://lab.civicrm.org/dev/core/-/issues/2286):
272 [19324](https://github.com/civicrm/civicrm-core/pull/19324))**
274 Avoids a notice of a missing db port during install.
276 - **Move non-compliant trigger_error out of logging
277 ([dev/core#2241](https://lab.civicrm.org/dev/core/-/issues/2241) and
278 [dev/core#2240](https://lab.civicrm.org/dev/core/-/issues/2240):
279 [19256](https://github.com/civicrm/civicrm-core/pull/19256))**
281 Makes CRM_Core_Error_Log more PSR3-compliant by not throwing errors itself,
282 and removing dependence on the presence of a .git folder.
284 - **Tabs at top of extension list are no longer tabs
285 ([dev/core#2233](https://lab.civicrm.org/dev/core/-/issues/2233):
286 [19138](https://github.com/civicrm/civicrm-core/pull/19138))**
288 Fixes broken tabs on the profiles administration page.
290 - **Weird "null" after adding new tagset
291 ([dev/core#2234](https://lab.civicrm.org/dev/core/-/issues/2234):
292 [19131](https://github.com/civicrm/civicrm-core/pull/19131))**
294 Ensures the word 'null' is not displayed after adding a new tagset.
296 - **Stop preventing test runs and dev sites from seeing PHP deprecation notices
297 ([19330](https://github.com/civicrm/civicrm-core/pull/19330))**
299 Ensures notices appear based on the sites error reporting settings.
301 - **Unable to delete file with brackets in filename via ckeditor/kcfinder
302 ([dev/user-interface#25](https://lab.civicrm.org/dev/user-interface/-/issues/25):
303 [304](https://github.com/civicrm/civicrm-packages/pull/304))**
305 - **Obsolete wkhtmltopdfPath causes hard fail in event registration due to
306 internal fatal error for the missing package
307 ([dev/core#2028](https://lab.civicrm.org/dev/core/-/issues/2028):
308 [19311](https://github.com/civicrm/civicrm-core/pull/19311))**
310 If the setting for the path to wkhtmltopdf is set, but nothing is there at
311 that path, a system check message will appear and PDF generation will fall
314 - **Contact import by CSV fails when string ends with "à"
315 ([dev/core#2127](https://lab.civicrm.org/dev/core/-/issues/2127):
316 [19241](https://github.com/civicrm/civicrm-core/pull/19241))**
318 In certain encodings, the à character can have the same byte as a
319 non-breaking space. This ensures that trimming non-breaking spaces does not
320 accidentally snag multi-byte characters that share the same `0xA0` byte.
322 - **Activity Summary report is missing pagination
323 ([dev/core#2174](https://lab.civicrm.org/dev/core/-/issues/2174):
324 [19146](https://github.com/civicrm/civicrm-core/pull/19146))**
326 - **Export crashes when many contacts share an address and are merged
327 ([dev/core#2211](https://lab.civicrm.org/dev/core/-/issues/2211):
328 [19216](https://github.com/civicrm/civicrm-core/pull/19216))**
330 - **Deprecation warnings are implemented backwards
331 ([dev/core#2240](https://lab.civicrm.org/dev/core/-/issues/2240):
332 [19266](https://github.com/civicrm/civicrm-core/pull/19266))**
334 - **CiviCRM Export, Saved Export Field Mapping that contains custom fields which
335 have been disabled or deleted are still loaded as "clear" values and cause the
336 export download to fail with "DB Error: no such field"
337 ([dev/core#2242](https://lab.civicrm.org/dev/core/-/issues/2242):
338 [19199](https://github.com/civicrm/civicrm-core/pull/19199))**
340 - **Inline email edit form fails to set is_bulkmail flag
341 ([dev/core#2254](https://lab.civicrm.org/dev/core/-/issues/2254):
342 [19224](https://github.com/civicrm/civicrm-core/pull/19224))**
344 - **Accept PHP memory_limit of -1 as meeting requirement
345 ([19340](https://github.com/civicrm/civicrm-core/pull/19340))**
347 - **Fix hook_civicrm_permission upgrade failure. Defer system-flush to
348 'upgrade.finish' phase.
349 ([19346](https://github.com/civicrm/civicrm-core/pull/19346))**
351 On Drupal and Backdrop sites, the system flush was triggered after each
352 incremental database update. It is now deferred until the end of the upgrade
355 - **Fix APIv3 profile.getfields to return correctly keyed phone field
356 ([19321](https://github.com/civicrm/civicrm-core/pull/19321))**
358 - **Reports don't filter with empty custom fields
359 ([dev/core#2173](https://lab.civicrm.org/dev/core/-/issues/2173):
360 [19057](https://github.com/civicrm/civicrm-core/pull/19057))**
362 - **Fatal error on contribution summary report (and probably others) when adding
364 ([19250](https://github.com/civicrm/civicrm-core/pull/19250))**
366 This disables full group by mode for reports that are not optimized to work
369 - **Stop passing ids as reference
370 ([19204](https://github.com/civicrm/civicrm-core/pull/19204))**
372 - **Fix extensions tabs following deprecation of old tab code
373 ([19130](https://github.com/civicrm/civicrm-core/pull/19130))**
375 - **php 7.4 compatibility
376 ([19355](https://github.com/civicrm/civicrm-core/pull/19355),
377 [19350](https://github.com/civicrm/civicrm-core/pull/19350),
378 [19331](https://github.com/civicrm/civicrm-core/pull/19331),
379 [19353](https://github.com/civicrm/civicrm-core/pull/19353) and
380 [19354](https://github.com/civicrm/civicrm-core/pull/19354))**
382 Assorted changes to make the code compatible with php 7.4.
386 - **Menu links for Petitions, Surveys do not open correct tab
387 ([dev/core#2215](https://lab.civicrm.org/dev/core/-/issues/2215):
388 [19066](https://github.com/civicrm/civicrm-core/pull/19066))**
392 - **Add timeline dropdown on manage case no longer working
393 ([dev/core#2292](https://lab.civicrm.org/dev/core/-/issues/2292):
394 [19356](https://github.com/civicrm/civicrm-core/pull/19356))**
398 - **Error creating thank you letter with multiple contributions
399 ([dev/core#2344](https://lab.civicrm.org/dev/core/-/issues/2344):
400 [19480](https://github.com/civicrm/civicrm-core/pull/19480),
401 [19481](https://github.com/civicrm/civicrm-core/pull/19481), and
402 [19482](https://github.com/civicrm/civicrm-core/pull/19482))**
404 This resolves an invalid currency error when generating a thank you letter
405 grouping multiple contributions per contact.
407 - **fix email receipt flag for recurring record
408 ([19299](https://github.com/civicrm/civicrm-core/pull/19299))**
410 Ensures receipts are not sent for each recurring payment.
412 - **Owner notification email sending before payment (Work Towards
413 [dev/core#521](https://lab.civicrm.org/dev/core/-/issues/521):
414 [19259](https://github.com/civicrm/civicrm-core/pull/19259))**
416 Code clean up towards ensuring that owner notification emails do not get sent
417 before the payment is made.
419 - **Fully remove contributionTypeID (Work Towards
420 [dev/financial#163](https://lab.civicrm.org/dev/financial/-/issues/163):
421 [19174](https://github.com/civicrm/civicrm-core/pull/19174) and
422 [19166](https://github.com/civicrm/civicrm-core/pull/19166))**
424 Work to remove legacy references to `contributionTypeID`.
426 - **Line items are added from default price set on recurring contributions for
427 financial types with tax accounts.
428 ([dev/financial#159](https://lab.civicrm.org/dev/financial/-/issues/159):
429 [19086](https://github.com/civicrm/civicrm-core/pull/19086))**
431 - **Allocation of "fee amount" is incorrect if fee is added after contribution
433 ([dev/financial#160](https://lab.civicrm.org/dev/financial/-/issues/160):
434 [19152](https://github.com/civicrm/civicrm-core/pull/19152))**
436 - **Owner notification email sending every time the contribution is resaved
437 ([dev/core#537](https://lab.civicrm.org/dev/core/-/issues/537):
438 [19095](https://github.com/civicrm/civicrm-core/pull/19095))**
440 - **Default currency shown on invoices if payment is made with different
441 currency ([dev/core#2269](https://lab.civicrm.org/dev/core/-/issues/2269):
442 [19290](https://github.com/civicrm/civicrm-core/pull/19290))**
444 - **Contact type incorrectly set to Contribution due to 'Honoree Profile'
445 ([dev/core#2273](https://lab.civicrm.org/dev/core/-/issues/2273):
446 [19277](https://github.com/civicrm/civicrm-core/pull/19277))**
448 - **Disable frequency/interval fields if not required on backend contribution
449 forms ([17889](https://github.com/civicrm/civicrm-core/pull/17889))**
451 - **Fix Contribution.tpl mismatched ts.
452 ([19343](https://github.com/civicrm/civicrm-core/pull/19343))**
454 - **Fix preferred repeattransaction flow to correctly create the activity
455 contacts for the contribution
456 ([19200](https://github.com/civicrm/civicrm-core/pull/19200))**
458 - **Fix pledge on contribution page when the site has a Word Replacement for
459 "contribution" ([19238](https://github.com/civicrm/civicrm-core/pull/19238))**
461 - **Fix Contribution.create to not attempt to set contacts on activity update
462 ([19202](https://github.com/civicrm/civicrm-core/pull/19202))**
464 - **Allow Sendconfirmation api to override pay later receipt text
465 ([19129](https://github.com/civicrm/civicrm-core/pull/19129))**
469 - **New Event using a template - clicking "Continue" doesn't save custom data
470 ([dev/core#766](https://lab.civicrm.org/dev/core/-/issues/766):
471 [19308](https://github.com/civicrm/civicrm-core/pull/19308))**
473 - **Use the proper content type for ICalendar link
474 ([dev/core#2282](https://lab.civicrm.org/dev/core/-/issues/2282):
475 [19316](https://github.com/civicrm/civicrm-core/pull/19316))**
477 The iCalendar feed link now specifies that it is `text/calendar` so it will be
478 handled correctly if the icon is clicked.
480 - **Import Participants fails
481 ([dev/core#2348](https://lab.civicrm.org/dev/core/-/issues/2348):
482 [19483](https://github.com/civicrm/civicrm-core/pull/19483))**
484 This was an unreleased regression in 5.34.beta.
486 - **Manage Event: avoid E_NOTICE in smarty
487 ([19137](https://github.com/civicrm/civicrm-core/pull/19137))**
489 - **Fatal error Incorrect datetime value: '0' for column 'transaction_date' when
490 editing a participant record and recording payment with no received date
491 ([dev/core#2251](https://lab.civicrm.org/dev/core/-/issues/2251):
492 [19307](https://github.com/civicrm/civicrm-core/pull/19307))**
494 - **Allow overriding participant_status_id in Order API
495 ([18096](https://github.com/civicrm/civicrm-core/pull/18096))**
499 - **Proposal replace PEAR mailer classes in core extension (Work Towards
500 [dev/core#2159](https://lab.civicrm.org/dev/core/-/issues/2159):
501 [18905](https://github.com/civicrm/civicrm-core/pull/18905))**
503 Handles exceptions in Mail:send class.
507 - **Simplify decision as to whether to use a pdf on membership emails
508 ([dev/financial#162](https://lab.civicrm.org/dev/financial/-/issues/162):
509 [19165](https://github.com/civicrm/civicrm-core/pull/19165))**
511 Makes decision to include a PDF in Membership emails dependent on settings
512 instead of whether the tax-amount is non-zero.
514 - **Membership renewal with 0 tax creating extra line item
515 ([dev/core#2024](https://lab.civicrm.org/dev/core/-/issues/2024):
516 [18838](https://github.com/civicrm/civicrm-core/pull/18838))**
520 - **Rename PledgePayment create function
521 ([19298](https://github.com/civicrm/civicrm-core/pull/19298))**
523 Standardizes create function for a pledge payment.
525 - **Pledge: mark needed fields as required in schema
526 ([19309](https://github.com/civicrm/civicrm-core/pull/19309))**
528 ### Joomla Integration
530 - **distmaker - Don't require dummy config file for building Joomla
531 ([19357](https://github.com/civicrm/civicrm-core/pull/19357))**
533 ### WordPress Integration
535 - **Mailing default domain error: force a backend URL for WP
536 ([19319](https://github.com/civicrm/civicrm-core/pull/19319))**
538 - **Allow wp-cli upgrade command to proceed when there is only a single settings
539 file ([224](https://github.com/civicrm/civicrm-wordpress/pull/224))**
541 - **Prevent "add_action" from being called multiple times
542 ([dev/core#2217](https://lab.civicrm.org/dev/core/-/issues/2217):
543 [19061](https://github.com/civicrm/civicrm-core/pull/19061))**
545 ## <a name="misc"></a>Miscellany
547 - **Membership BAO - do not require date fields to be passed in on update
548 ([18794](https://github.com/civicrm/civicrm-core/pull/18794))**
550 - **Rename internal references to contributionTypeId
551 ([19169](https://github.com/civicrm/civicrm-core/pull/19169))**
553 - **Switch to non-static functions
554 ([19164](https://github.com/civicrm/civicrm-core/pull/19164))**
556 - **Duplicate processFormContribution only Membership form
557 ([19211](https://github.com/civicrm/civicrm-core/pull/19211))**
559 - **Only do cms account create from the one relevant place
560 ([19234](https://github.com/civicrm/civicrm-core/pull/19234))**
562 - **Convert previously shared function from static to non-static
563 ([19231](https://github.com/civicrm/civicrm-core/pull/19231))**
565 - **Fix Payment edit form to use Payment.cancel & payment.create api
566 ([19116](https://github.com/civicrm/civicrm-core/pull/19116))**
568 - **Fold deprecated function into the only function that calls it
569 ([19270](https://github.com/civicrm/civicrm-core/pull/19270))**
571 - **Use specific function when formatting money for a default
572 ([19285](https://github.com/civicrm/civicrm-core/pull/19285))**
574 - **Stop using refresh_date in civicrm_group table
575 ([19287](https://github.com/civicrm/civicrm-core/pull/19287))**
577 - **Simplify handling of ids in Authorize.net now that related_contact is no
578 longer used ([19273](https://github.com/civicrm/civicrm-core/pull/19273))**
580 - **CRM_Member_Form_MembershipRenewalTest - Started failing circa Jan 1, 2021
581 ([dev/core#2284](https://lab.civicrm.org/dev/core/-/issues/2284):
582 [19306](https://github.com/civicrm/civicrm-core/pull/19306))**
584 - **preliminary cleanup - extract a couple of functions in the payment processor
585 form for readability (Work Towards
586 [dev/financial#157](https://lab.civicrm.org/dev/financial/-/issues/157):
587 [19072](https://github.com/civicrm/civicrm-core/pull/19072))**
589 - **finish 'this round' of completeOrder cleanup (Work Towards
590 [dev/financial#152](https://lab.civicrm.org/dev/financial/-/issues/152):
591 [19017](https://github.com/civicrm/civicrm-core/pull/19017))**
593 - **Squash 2 if clauses into 1
594 ([19190](https://github.com/civicrm/civicrm-core/pull/19190))**
596 - **Clean up error handling in legacy functions in import parser
597 ([19160](https://github.com/civicrm/civicrm-core/pull/19160))**
599 - **Unused writeLegacyWarnings() in PropertyBag
600 ([19167](https://github.com/civicrm/civicrm-core/pull/19167))**
602 - **Update docs links
603 ([624](https://github.com/civicrm/civicrm-drupal/pull/624))**
605 - **Preliminary cleanup -remove unused params from function signature
606 ([19110](https://github.com/civicrm/civicrm-core/pull/19110))**
608 - **Minor code cleanup
609 ([19220](https://github.com/civicrm/civicrm-core/pull/19220))**
611 - **Move processConfirm function from Utils file back to form class
612 ([19212](https://github.com/civicrm/civicrm-core/pull/19212))**
614 - **Remove use of ignoreException from SMTP settings form
615 ([19315](https://github.com/civicrm/civicrm-core/pull/19315))**
617 - **Remove constant CIVICRM_MYSQL_STRICT
618 ([dev/core#2252](https://lab.civicrm.org/dev/core/-/issues/2252):
619 [19244](https://github.com/civicrm/civicrm-core/pull/19244))**
621 - **Removes default for is_active & is_reserved since they now have DB defaults
622 ([19296](https://github.com/civicrm/civicrm-core/pull/19296))**
624 - **Remove code to retrieve premium data
625 ([19262](https://github.com/civicrm/civicrm-core/pull/19262))**
627 - **Remove use of ignoreException on import form
628 ([19314](https://github.com/civicrm/civicrm-core/pull/19314))**
630 - **Remove unreachable customGroup section in online event receipt
631 ([19069](https://github.com/civicrm/civicrm-core/pull/19069))**
633 - **Remove never-used IMAP_XOAUTH2 option value before it gets more confusing
634 ([dev/core#2264](https://lab.civicrm.org/dev/core/-/issues/2264):
635 [19243](https://github.com/civicrm/civicrm-core/pull/19243))**
637 - **Remove the print_array modifier as it is now supplied in civicrm-core
638 ([314](https://github.com/civicrm/civicrm-packages/pull/314))**
640 - **Remove deprecated function
641 ([19213](https://github.com/civicrm/civicrm-core/pull/19213))**
643 - **Remove some more variable variables + some test cleanup
644 ([19208](https://github.com/civicrm/civicrm-core/pull/19208))**
646 - **Remove unreachable code.
647 ([19203](https://github.com/civicrm/civicrm-core/pull/19203))**
649 - **Remove some deprecated code chunks
650 ([19191](https://github.com/civicrm/civicrm-core/pull/19191))**
652 - **Remove extraneous elses
653 ([19182](https://github.com/civicrm/civicrm-core/pull/19182))**
655 - **Remove obsolete IF
656 ([19108](https://github.com/civicrm/civicrm-core/pull/19108))**
658 - **Remove extraneous elses
659 ([19171](https://github.com/civicrm/civicrm-core/pull/19171))**
661 - **Remove extraneous handling duplicated from createProfileContact
662 ([19109](https://github.com/civicrm/civicrm-core/pull/19109))**
664 - **Remove or hard-code variables from previously shared function
665 ([19227](https://github.com/civicrm/civicrm-core/pull/19227))**
667 - **Remove code deprecated +1 year ago - case_from_XX / case_to_XXX search
668 parameters ([19158](https://github.com/civicrm/civicrm-core/pull/19158))**
670 - **Remove extraneous elses
671 ([19168](https://github.com/civicrm/civicrm-core/pull/19168))**
673 - **Remove meaningless calls to ignoreException
674 ([19155](https://github.com/civicrm/civicrm-core/pull/19155))**
676 - **Remove some unused variables
677 ([19156](https://github.com/civicrm/civicrm-core/pull/19156))**
679 - **Remove functions from EmailCommon that were moved to the trait
680 ([19214](https://github.com/civicrm/civicrm-core/pull/19214))**
682 - **Remove duplicated tax assignments from copied code
683 ([19228](https://github.com/civicrm/civicrm-core/pull/19228))**
685 - **Remove unused tpl assigns
686 ([19226](https://github.com/civicrm/civicrm-core/pull/19226))**
688 - **Remove all handling related to pledge, cms user from newly separated
689 function ([19222](https://github.com/civicrm/civicrm-core/pull/19222))**
691 - **[REF] Extract determination of subscription status information
692 ([19193](https://github.com/civicrm/civicrm-core/pull/19193))**
694 - **[REF] extract getIdsOfMatchingContact
695 ([19172](https://github.com/civicrm/civicrm-core/pull/19172))**
697 - **[REF] Extract function to retrieve the membership labels.
698 ([18854](https://github.com/civicrm/civicrm-core/pull/18854))**
700 - **REF Allow for fields of type Blob or Mediumblob in Apiv4
701 ([19196](https://github.com/civicrm/civicrm-core/pull/19196))**
703 - **#REF Migrate the print_array smarty plugin from in packages into core…
704 ([19206](https://github.com/civicrm/civicrm-core/pull/19206))**
706 - **[REF] Move function to shared parent so MemberForm can use it too
707 ([19205](https://github.com/civicrm/civicrm-core/pull/19205))**
709 - **[REF] Relocate function from DeprecatedUtils to the class that actually
710 calls it ([19247](https://github.com/civicrm/civicrm-core/pull/19247))**
712 - **[REF] Clean up on $ids['contribution']
713 ([19207](https://github.com/civicrm/civicrm-core/pull/19207))**
715 - **[REF] Simplify membership form code towards simplifying BAO
716 ([18855](https://github.com/civicrm/civicrm-core/pull/18855))**
718 - **[REF] Convert previously shared function to non-static, remove unrelated
719 code ([19258](https://github.com/civicrm/civicrm-core/pull/19258))**
721 - **[REF] Move another deprecated function to the class that uses it
722 ([19253](https://github.com/civicrm/civicrm-core/pull/19253))**
724 - **[REF] Switch to using shared function to call deprecated function
725 ([19246](https://github.com/civicrm/civicrm-core/pull/19246))**
727 - **[REF] Relocate another function from DeprecatedUtils to the calling c…
728 ([19249](https://github.com/civicrm/civicrm-core/pull/19249))**
730 - **REF use addRadio function to add in the radio fields to these forms
731 ([19265](https://github.com/civicrm/civicrm-core/pull/19265))**
733 - **[REF] Relocate another deprecated utils function to the only class that
734 calls it. ([19248](https://github.com/civicrm/civicrm-core/pull/19248))**
736 - **[REF] Deprecate passing a blank currecny to CRM_Utils_Money::format a…
737 ([19099](https://github.com/civicrm/civicrm-core/pull/19099))**
739 - **[REF] Fix tax_amount to be consistent & load from the templateContribution
740 ([19274](https://github.com/civicrm/civicrm-core/pull/19274))**
742 - **[REF] Unshared another function back onto Membership_Form
743 ([19269](https://github.com/civicrm/civicrm-core/pull/19269))**
745 - **[REF] Unshare code to build an array of params for the recurring
746 contribution ([19271](https://github.com/civicrm/civicrm-core/pull/19271))**
748 - **[REF] Extract duplicate handling code
749 ([19103](https://github.com/civicrm/civicrm-core/pull/19103))**
751 - **[REF] Duplicate possibly-used parts of createProfileContact onto
752 Parser_Contact ([19098](https://github.com/civicrm/civicrm-core/pull/19098))**
754 - **[REF] use early return for errors rather than confusing assignment
755 ([19102](https://github.com/civicrm/civicrm-core/pull/19102))**
757 - **[REF] Remove unreachable code
758 ([19279](https://github.com/civicrm/civicrm-core/pull/19279))**
760 - **[REF] Minor cleanup, remove variable variables
761 ([19292](https://github.com/civicrm/civicrm-core/pull/19292))**
763 - **REF use centralised addRadio function more
764 ([19272](https://github.com/civicrm/civicrm-core/pull/19272))**
766 - **(REF) Civi\Test\Invasive - Add helper for checking protected/private members
767 ([19294](https://github.com/civicrm/civicrm-core/pull/19294))**
769 - **[REF] Move another deprecated function back to the only class that calls it
770 ([19300](https://github.com/civicrm/civicrm-core/pull/19300))**
772 - **[REF] Minor cleanup on contactGroup function
773 ([19286](https://github.com/civicrm/civicrm-core/pull/19286))**
775 - **[REF] Remove some variables not relevant to backoffice member form
776 ([19284](https://github.com/civicrm/civicrm-core/pull/19284))**
778 - **[REF] Rationalise financialType variable
779 ([19280](https://github.com/civicrm/civicrm-core/pull/19280))**
781 - **[REF] Extract code that assigns isPendingOutcome variable on thank yo…
782 ([19232](https://github.com/civicrm/civicrm-core/pull/19232))**
784 - **[REF] extract and share code to determine if required contact fields are
785 present ([19302](https://github.com/civicrm/civicrm-core/pull/19302))**
787 - **[REF] Fix import signature on activity parser, add preliminary test
788 ([19301](https://github.com/civicrm/civicrm-core/pull/19301))**
790 - **Add test to check pcp notification is sent
791 ([19117](https://github.com/civicrm/civicrm-core/pull/19117))**
793 - **Extend test to cover membership logs
794 ([19023](https://github.com/civicrm/civicrm-core/pull/19023))**
796 - **[tests] Fix join syntax conversion for APIv4 in v3 unit tests
797 ([19318](https://github.com/civicrm/civicrm-core/pull/19318))**
799 - **(NFC) DispatchPolicy - Add comments to docblock
800 ([19215](https://github.com/civicrm/civicrm-core/pull/19215))**
802 - **[NFC] Convert civi.tag-deprecated to use central function
803 ([19179](https://github.com/civicrm/civicrm-core/pull/19179))**
805 - **(NFC) Fix issue reporting link to go to the corresponding `core` project.
806 ([19240](https://github.com/civicrm/civicrm-core/pull/19240))**
808 - **[NFC] Cleanup in test class
809 ([19322](https://github.com/civicrm/civicrm-core/pull/19322))**
811 - **[NFC] Code reformat pledge class
812 ([19336](https://github.com/civicrm/civicrm-core/pull/19336))**
814 - **[NFC] Fix Contribution Soft Credit entity translation
815 ([19351](https://github.com/civicrm/civicrm-core/pull/19351) and
816 [19359](https://github.com/civicrm/civicrm-core/pull/19359))**
818 - **NFC When printing out the result of the correctly update in single va…
819 ([19198](https://github.com/civicrm/civicrm-core/pull/19198))**
821 - **[NFC] Update comments in CRM/Core/Key
822 ([19197](https://github.com/civicrm/civicrm-core/pull/19197))**
824 - **(POC#C) MembershipRenewalTest - Address assertions that started failing
826 ([19305](https://github.com/civicrm/civicrm-core/pull/19305))**
828 - **REF Bump the composer-compile-plugin version
829 ([19377](https://github.com/civicrm/civicrm-core/pull/19377))**
831 - **Test framework - API4 DateTest::testRelativeDateRanges will fail on the last
832 day of Jan, Mar, May, Aug, Oct
833 ([dev/core#2339](https://lab.civicrm.org/dev/core/-/issues/2339):
834 [19466](https://github.com/civicrm/civicrm-core/pull/19466))**
836 - **Fix for ReportTest when launching a pdf
837 ([19497](https://github.com/civicrm/civicrm-core/pull/19497))**
839 This fixes a unit test failure caused by a recent merge on testing Report
842 - **Enotice fix ([19201](https://github.com/civicrm/civicrm-core/pull/19201))**
844 - **Fix notice error on using max() with only one variable
845 ([19149](https://github.com/civicrm/civicrm-core/pull/19149))**
847 - **Minor typos in schema files
848 ([19142](https://github.com/civicrm/civicrm-core/pull/19142))**
850 ## <a name="credits"></a>Credits
852 This release was developed by the following code authors:
854 AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Francis Whittle;
855 Bluehorn Digital - Matt Glaman; CEDC - Laryn Kragt Bakker; Christian Wach;
856 CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Sunil Pawar, Yashodha Chaku;
857 CompuCorp - Ahed; Coop SymbioTIC - Mathieu Lutfy; Dave D; Fuzion - Jitendra
858 Purohit; iXiam - César Ramos, Vangelis Pantazis; Jarek; JMA Consulting - Monish
859 Deb, Seamus Lee; lucky091588; maynardsmith; Megaphone Technology Consulting -
860 Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Nishant
861 Bhorodia; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen
864 Most authors also reviewed code for this release; in addition, the following
865 reviewers contributed their comments:
867 Agileware - Justin Freeman; Artful Robot - Rich Lott; iXiam - Luciano Spiegel;
868 JMA Consulting - Joe Murray; Joinery - Allen Shaw; Nicol Wistreich; Semper IT -
869 Karin Gerritsen; Third Sector Design - Michael McAndrew
871 ## <a name="feedback"></a>Feedback
873 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
874 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm