582b85f49ee331343931ad6676b20b3e5603bbe7
[civicrm-core.git] / release-notes / 5.43.0.md
1 # CiviCRM 5.43.0
2
3 Released November 3, 2021
4
5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
11
12 ## <a name="synopsis"></a>Synopsis
13
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** |
23
24 ## <a name="features"></a>Features
25
26 ### Core CiviCRM
27
28 - **Add sort functionality to event summary report
29 ([21501](https://github.com/civicrm/civicrm-core/pull/21501))**
30
31 Improves Event Summary Report by making it possible to sort columns.
32
33 - **Add REGEXP/NOT REGEXP operators to API4
34 ([dev/core#2793](https://lab.civicrm.org/dev/core/-/issues/2793):
35 [21288](https://github.com/civicrm/civicrm-core/pull/21288))**
36
37 Makes it so users can use regular expressions operators in APIv4.
38
39 - **APIv4 - Add Contact.age_years extra field to make age calculations easy
40 ([21718](https://github.com/civicrm/civicrm-core/pull/21718))**
41
42 Adds a calculated field to APIv4 which makes it simple to return or filter on
43 a contact's age.
44
45 - **APIv4 - Add support for sql equations
46 ([21551](https://github.com/civicrm/civicrm-core/pull/21551))**
47
48 Allows equations e.g. (1 + 1) as sql expressions in APIv4 queries.
49
50 - **Apiv4 entity parity (Work Towards
51 [dev/core#2486](https://lab.civicrm.org/dev/core/-/issues/2486):
52 [21355](https://github.com/civicrm/civicrm-core/pull/21355) and
53 [21500](https://github.com/civicrm/civicrm-core/pull/21500))**
54
55 Adds APIv4 entity support for the PrintLabel and Survey entities.
56
57 - **activity import: prepend custom group title to custom fields
58 ([21318](https://github.com/civicrm/civicrm-core/pull/21318))**
59
60 Makes it possible to distinguish between core and custom fields on the
61 Activity Import screen.
62
63 - **No way to distinguish the core and custom fields on Find and Merge Duplicate
64 Contacts page
65 ([dev/core#2766](https://lab.civicrm.org/dev/core/-/issues/2766):
66 [21728](https://github.com/civicrm/civicrm-core/pull/21728))**
67
68 Makes it possible to distinguish between core and custom fields on the Find
69 and Merge Duplicate Contacts page.
70
71 - **Support participant & membership tokens in send-email tasks
72 ([21745](https://github.com/civicrm/civicrm-core/pull/21745))**
73
74 Makes it so users can use participant & membership tokens in send-email tasks.
75
76 - **Add participant tokens to pdf task
77 ([21695](https://github.com/civicrm/civicrm-core/pull/21695))**
78
79 Makes it so users can use participant tokens in PDF tasks.
80
81 - **Meta - token usage 5.43 standardisation effort
82 ([dev/core#2864](https://lab.civicrm.org/dev/core/-/issues/2864):
83 [21428](https://github.com/civicrm/civicrm-core/pull/21428),
84 [21605](https://github.com/civicrm/civicrm-core/pull/21605),
85 [21713](https://github.com/civicrm/civicrm-core/pull/21713),
86 [21584](https://github.com/civicrm/civicrm-core/pull/21584),
87 [21523](https://github.com/civicrm/civicrm-core/pull/21523),
88 [21706](https://github.com/civicrm/civicrm-core/pull/21706),
89 [21530](https://github.com/civicrm/civicrm-core/pull/21530) and
90 [21537](https://github.com/civicrm/civicrm-core/pull/21537))**
91
92 Standardizes Token usage.
93
94 - **Add {domain.now}, supporting |crmDate
95 ([21531](https://github.com/civicrm/civicrm-core/pull/21531))**
96
97 Adds new token {domain.now} that provides the current date.
98
99 - **Afform - Use search display name as field prefix for url-based field
100 defaults ([21645](https://github.com/civicrm/civicrm-core/pull/21645))**
101
102 Makes field prefix optional for Afform url-based defaults, and uses search
103 display name as prefix for search forms.
104
105 - **Afform - Accept default field values from the url
106 ([21606](https://github.com/civicrm/civicrm-core/pull/21606))**
107
108 Allows default Afform field values to be set from the url.
109
110 - **Afform Admin add link icon & template cleanup
111 ([21764](https://github.com/civicrm/civicrm-core/pull/21764))**
112
113 Minor cleanup to improve template efficiency, style afform page link, and add
114 a page title.
115
116 - **Search kit - default filter - primary
117 ([dev/core#2852](https://lab.civicrm.org/dev/core/-/issues/2852):
118 [21574](https://github.com/civicrm/civicrm-core/pull/21574))**
119
120 Adds is_primary as a default SearchKit filter.
121
122 - **SearchKit - Add UI for arithmetic equations
123 ([21600](https://github.com/civicrm/civicrm-core/pull/21600))**
124
125 Allows adding, subtracting, dividing and multiplying any number of values in
126 SearchKit.
127
128 - **SearchKit - Support multiple arguments to field transformations aka SQL
129 functions ([21528](https://github.com/civicrm/civicrm-core/pull/21528) and
130 [21535](https://github.com/civicrm/civicrm-core/pull/21535))**
131
132 Enhances the SearchKit UI to allow multiple fields to be acted upon at once in
133 a function.
134
135 - **SearchKit - Add pseudo-fields for row number and current user
136 ([21435](https://github.com/civicrm/civicrm-core/pull/21435))**
137
138 Makes a couple calculated fields available for use as columns or tokens in
139 SearchKit.
140
141 - **SearchKit - Support custom fields in bridge join entities
142 ([21424](https://github.com/civicrm/civicrm-core/pull/21424))**
143
144 Makes it possible to use relationship custom data throughout Search Kit.
145
146 - **SearchKit & Afform - Use Bootstrap table styles on admin screens
147 ([21405](https://github.com/civicrm/civicrm-core/pull/21405) and
148 [21397](https://github.com/civicrm/civicrm-core/pull/21397))**
149
150 applies Bootstrap table styles to admin tables in SearchKit and Afform.
151
152 - **SearchKit - Filter search listing by creator
153 ([21388](https://github.com/civicrm/civicrm-core/pull/21388))**
154
155 Makes it so users can filter the search listing by creator.
156
157 - **SearchKit - enable tags for Saved Searches
158 ([21376](https://github.com/civicrm/civicrm-core/pull/21376))**
159
160 Enables tags for saved searches in searchkit.
161
162 - **SearchKit - Add 'array' option to download API and add test
163 ([21363](https://github.com/civicrm/civicrm-core/pull/21363))**
164
165 Adds a new option to the SearchKit "Download" api to return a normal array
166 result, which makes testing easier.
167
168 - **SearchKit - Sortable column fixes/improvements
169 ([21720](https://github.com/civicrm/civicrm-core/pull/21720))**
170
171 Fixes sortable column headers on SearchKit admin tables and makes
172 click-sortable column headers configurable.
173
174 - **Add message admin to dist
175 ([21670](https://github.com/civicrm/civicrm-core/pull/21670))**
176
177 Adds Message admin extension.
178
179 - **message_admin - Add titles/hints to hyperlinks
180 ([21698](https://github.com/civicrm/civicrm-core/pull/21698))**
181
182 Adds help text to links on Message Admin Screen.
183
184 - **Replace expensive query with cheaper one
185 ([21426](https://github.com/civicrm/civicrm-core/pull/21426))**
186
187 Improves performance.
188
189 - **Add support for CiviCRM date formats in crmDate
190 ([21508](https://github.com/civicrm/civicrm-core/pull/21508))**
191
192 Adds support for CiviCRM date formats in crmDate.
193
194 - **Mailing Unsubscribe Form: Show if email is already unsubscribed
195 ([21174](https://github.com/civicrm/civicrm-core/pull/21174))**
196
197 Improves languaging on the Mailing Unsubscribe form regarding if the email is
198 already unsubscribed.
199
200 - **Change Do Not SMS privacy icon
201 ([dev/core#2754](https://lab.civicrm.org/dev/core/-/issues/2754):
202 [21354](https://github.com/civicrm/civicrm-core/pull/21354))**
203
204 Improves usability by improving the Do Not SMS icon.
205
206 ### CiviContribute
207
208 - **Add workflow template for 'recurring edit' workflow
209 ([21356](https://github.com/civicrm/civicrm-core/pull/21356))**
210
211 Adds workflow template for 'recurring edit' workflow
212
213 - **Can we re-order the 'recur links'
214 ([dev/core#2843](https://lab.civicrm.org/dev/core/-/issues/2843):
215 [21529](https://github.com/civicrm/civicrm-core/pull/21529))**
216
217 Improves user experience by reordering the contribution recur links.
218
219 - **View Contribution page, move the Done button to the last button, currently
220 shown in the middle
221 ([21547](https://github.com/civicrm/civicrm-core/pull/21547))**
222
223 Reorders buttons on the Contribution page to improve user experience.
224
225 - **Replace "Print Invoice" and "Print Invoice and Credit Note" buttons with
226 label "Download Invoice" and "Download Invoice and Credit Note"
227 ([21546](https://github.com/civicrm/civicrm-core/pull/21546))**
228
229 Improves labels for Invoice buttons.
230
231 ### CiviEvent
232
233 - **Custom Participant tokens not working in scheduled reminders
234 ([dev/core#348](https://lab.civicrm.org/dev/core/-/issues/348):
235 [21666](https://github.com/civicrm/civicrm-core/pull/21666))**
236
237 Adds support for participant tokens in scheduled reminders.
238
239 ### CiviMail
240
241 - **CRM-19236 - Fix Flexmailer extension to support unicode urls
242 ([21597](https://github.com/civicrm/civicrm-core/pull/21597))**
243
244 Updates flexmailer click tracking to support unicode urls.
245
246 - **Install flexmailer by default on new installs
247 ([dev/core#2836](https://lab.civicrm.org/dev/core/-/issues/2836):
248 [21522](https://github.com/civicrm/civicrm-core/pull/21522))**
249
250 Installs flexmailer on new installs by default.
251
252 ### CiviMember
253
254 - **Fix code to use Order api to create Memberships in core forms (Work Towards
255 [dev/core#2717](https://lab.civicrm.org/dev/core/-/issues/2717):
256 [21152](https://github.com/civicrm/civicrm-core/pull/21152))**
257
258 Use order api for new membership create in batch.
259
260 ### WordPress integration
261
262 - **Add deduping to Quick Add Dashboard Widget
263 ([256](https://github.com/civicrm/civicrm-wordpress/pull/256))**
264
265 Adds a simple deduplication check when submitting details via the "Quick Add
266 Contact to CiviCRM" Dashboard Widget.
267
268 ## <a name="bugs"></a>Bugs resolved
269
270 ### Core CiviCRM
271
272 - **Full Month Names: avoid relying on the operating system's locale for
273 translation
274 ([dev/translation#71](https://lab.civicrm.org/dev/translation/-/issues/71):
275 [21157](https://github.com/civicrm/civicrm-core/pull/21157))**
276
277 - **CRM_Utils_Date - Month and day names should match active locale
278 ([21569](https://github.com/civicrm/civicrm-core/pull/21569))**
279
280 - **System Workflow Messages - Improve localization experience (Work Towards
281 [dev/mail#83](https://lab.civicrm.org/dev/mail/-/issues/83):
282 [21773](https://github.com/civicrm/civicrm-core/pull/21773),
283 [21747](https://github.com/civicrm/civicrm-core/pull/21747),
284 [21774](https://github.com/civicrm/civicrm-core/pull/21774),
285 [21772](https://github.com/civicrm/civicrm-core/pull/21772),
286 [21590](https://github.com/civicrm/civicrm-core/pull/21590),
287 [21338](https://github.com/civicrm/civicrm-core/pull/21338),
288 [21480](https://github.com/civicrm/civicrm-core/pull/21480) and
289 [21486](https://github.com/civicrm/civicrm-core/pull/21486))**
290
291 - **When extensions do upgrades and add fields to tables, trigger-based logging
292 tables require the extension to do the right thing
293 ([dev/core#1618](https://lab.civicrm.org/dev/core/-/issues/1618):
294 [21135](https://github.com/civicrm/civicrm-core/pull/21135))**
295
296 - **Special characters become "?" On PDF report
297 ([dev/core#2126](https://lab.civicrm.org/dev/core/-/issues/2126):
298 [21423](https://github.com/civicrm/civicrm-core/pull/21423))**
299
300 - **Send an Email / Cancel button does not work
301 ([dev/core#2318](https://lab.civicrm.org/dev/core/-/issues/2318):
302 [21474](https://github.com/civicrm/civicrm-core/pull/21474))**
303
304 - **hook_civicrm_tokenValues inconsistent data
305 ([dev/core#2554](https://lab.civicrm.org/dev/core/-/issues/2554):
306 [21490](https://github.com/civicrm/civicrm-core/pull/21490))**
307
308 Remove code to assign contact to the template in sendEmail.
309
310 - **Use consistent token syntax for pseudoconstants
311 ([dev/core#2650](https://lab.civicrm.org/dev/core/-/issues/2650):
312 [21477](https://github.com/civicrm/civicrm-core/pull/21477),
313 [21464](https://github.com/civicrm/civicrm-core/pull/21464),
314 [21570](https://github.com/civicrm/civicrm-core/pull/21570) and
315 [21705](https://github.com/civicrm/civicrm-core/pull/21705))**
316
317 - **Remove unused token assigns (Work Towards
318 [dev/core#2748](https://lab.civicrm.org/dev/core/-/issues/2748):
319 [21059](https://github.com/civicrm/civicrm-core/pull/21059))**
320
321 Removes some no-longer-used token assigns & adds an upgrade message in case
322 people have templates still referring to them.
323
324 - **Something something tokens something tokens
325 ([dev/core#2856](https://lab.civicrm.org/dev/core/-/issues/2856):
326 [21580](https://github.com/civicrm/civicrm-core/pull/21580))**
327
328 Token "filter" can be null so filter[0] doesn't exist.
329
330 - **Fix contact tokens class to load using apiv4
331 ([21780](https://github.com/civicrm/civicrm-core/pull/21780))**
332
333 - **Remove case token listing from contact email task
334 ([21787](https://github.com/civicrm/civicrm-core/pull/21787))**
335
336 - **Fix another instance of double token rendering
337 ([21788](https://github.com/civicrm/civicrm-core/pull/21788))**
338
339 - **Fix token regression - re-add support for empty tokens
340 ([21756](https://github.com/civicrm/civicrm-core/pull/21756))**
341
342 - **Fix event custom field tokens in scheduled reminders
343 ([21374](https://github.com/civicrm/civicrm-core/pull/21374))**
344
345 - **Reference token metadata internally fix custom tokens label bug
346 ([21767](https://github.com/civicrm/civicrm-core/pull/21767))**
347
348 - **Participant tokens - remove / replace unsupportable from badges (conversion
349 preparation) ([21520](https://github.com/civicrm/civicrm-core/pull/21520))**
350
351 - **Fix activity tokens
352 ([21489](https://github.com/civicrm/civicrm-core/pull/21489))**
353
354 - **Ensure TokenSmary::render returns an array
355 ([21461](https://github.com/civicrm/civicrm-core/pull/21461))**
356
357 - **Replace event type token in action schedule changes event.event_type_id to
358 participant.event_type_id:label
359 ([dev/core#2892](https://lab.civicrm.org/dev/core/-/issues/2892):
360 [21738](https://github.com/civicrm/civicrm-core/pull/21738))**
361
362 - **Custom field multiselect of type int crashes when saving
363 ([dev/core#2772](https://lab.civicrm.org/dev/core/-/issues/2772):
364 [21186](https://github.com/civicrm/civicrm-core/pull/21186))**
365
366 - **Deduping produces bad results after a rule change
367 ([dev/core#2820](https://lab.civicrm.org/dev/core/-/issues/2820):
368 [21509](https://github.com/civicrm/civicrm-core/pull/21509))**
369
370 - **[REF] Extend 'managed' api to provide information about 'status' (Clean up
371 towards [dev/core#2823](https://lab.civicrm.org/dev/core/-/issues/2823):
372 [21399](https://github.com/civicrm/civicrm-core/pull/21399),
373 [21440](https://github.com/civicrm/civicrm-core/pull/21440),
374 [21400](https://github.com/civicrm/civicrm-core/pull/21400),
375 [21401](https://github.com/civicrm/civicrm-core/pull/21401),
376 [21412](https://github.com/civicrm/civicrm-core/pull/21412) and
377 [21395](https://github.com/civicrm/civicrm-core/pull/21395))**
378
379 - **Dashboard error `Trying to access array offset on value of type null`
380 ([dev/core#2829](https://lab.civicrm.org/dev/core/-/issues/2829):
381 [21441](https://github.com/civicrm/civicrm-core/pull/21441) and
382 [21437](https://github.com/civicrm/civicrm-core/pull/21437))**
383
384 - **Upgrade error - upgrading to 5.43
385 ([dev/core#2870](https://lab.civicrm.org/dev/core/-/issues/2870):
386 [21640](https://github.com/civicrm/civicrm-core/pull/21640))**
387
388 Fix upgrade error with rpow installed.
389
390 - **Search Builder: Fails validation when state_province location type is
391 "primary" and operator is "IN"
392 ([dev/core#2874](https://lab.civicrm.org/dev/core/-/issues/2874):
393 [21646](https://github.com/civicrm/civicrm-core/pull/21646))**
394
395 - **APIv3 "replace" action is broken when there is > 25 records to replace.
396 ([dev/core#2881](https://lab.civicrm.org/dev/core/-/issues/2881):
397 [21681](https://github.com/civicrm/civicrm-core/pull/21681))**
398
399 - **Add contacts to Group action missing custom fields
400 ([dev/core#2885](https://lab.civicrm.org/dev/core/-/issues/2885):
401 [21716](https://github.com/civicrm/civicrm-core/pull/21716))**
402
403 - **Find Activities + Send Email task always says the contact is on hold or
404 deceased etc ([dev/core#2901](https://lab.civicrm.org/dev/core/-/issues/2901):
405 [21781](https://github.com/civicrm/civicrm-core/pull/21781))**
406
407 - **Afform - fix loading custom fields for search displays
408 ([21792](https://github.com/civicrm/civicrm-core/pull/21792))**
409
410 - **Afform - Fix chainSelect to work with anonymous users
411 ([21759](https://github.com/civicrm/civicrm-core/pull/21759))**
412
413 - **Afform - Fix chain-select of country and address to work on SearchKit forms
414 ([21749](https://github.com/civicrm/civicrm-core/pull/21749))**
415
416 - **Afform - gracefully handle missing html files
417 ([21436](https://github.com/civicrm/civicrm-core/pull/21436))**
418
419 - **Afform - fix loading embedded blocks
420 ([21609](https://github.com/civicrm/civicrm-core/pull/21609))**
421
422 - **Afform - ensure default value data type matches input type
423 ([21643](https://github.com/civicrm/civicrm-core/pull/21643))**
424
425 - **api4 explorer - entity displays as `\undefined` in the generated code sample
426 ([dev/core#2867](https://lab.civicrm.org/dev/core/-/issues/2867):
427 [21634](https://github.com/civicrm/civicrm-core/pull/21634))**
428
429 - **APIv4 - Default select clause to exclude "Extra" fields
430 ([21438](https://github.com/civicrm/civicrm-core/pull/21438))**
431
432 - **APIv4 - Give every SQL expression a title
433 ([21691](https://github.com/civicrm/civicrm-core/pull/21691))**
434
435 - **APIv4 - Automatically coalesce potentially null field values in equations
436 ([21647](https://github.com/civicrm/civicrm-core/pull/21647))**
437
438 - **UX: Deleting a saved Search Kit search should warn/delete associated afforms
439 ([dev/core#2824](https://lab.civicrm.org/dev/core/-/issues/2824):
440 [21457](https://github.com/civicrm/civicrm-core/pull/21457))**
441
442 - **search kit: deleting a search has weird confirmation dialog box
443 ([dev/core#2826](https://lab.civicrm.org/dev/core/-/issues/2826):
444 [21404](https://github.com/civicrm/civicrm-core/pull/21404))**
445
446 - **New download spreadsheet search kit feature broken
447 ([dev/core#2888](https://lab.civicrm.org/dev/core/-/issues/2888):
448 [21724](https://github.com/civicrm/civicrm-core/pull/21724))**
449
450 - **SearchKit - Style buttons for compatability with Shoreditch theme
451 ([21627](https://github.com/civicrm/civicrm-core/pull/21627))**
452
453 - **SearchKit - tweak button styles for shorditch
454 ([21726](https://github.com/civicrm/civicrm-core/pull/21726))**
455
456 Tweaks the "Tags" and "Add" buttons in SearchKit to look better in Shoreditch,
457 and tidies up some ts() calls.
458
459 - **SearchKit - A random stable genius
460 ([21586](https://github.com/civicrm/civicrm-core/pull/21586))**
461
462 Allows the pager, edit-in-place, and bulk updates to work properly with random
463 sorting.
464
465 - **SearchKit - Fix in-place edit of relationships and dates
466 ([21533](https://github.com/civicrm/civicrm-core/pull/21533))**
467
468 - **SearchKit - Exclude custom fields from ON clause selector
469 ([21495](https://github.com/civicrm/civicrm-core/pull/21495))**
470
471 Custom fields cannot as-yet be added to an ON clause in APIv4 because they do
472 not belong to the tables being joined. This removes the tripping hazard from
473 the UI, by making custom fields unavailable to select in an ON clause.
474
475 - **SearchKit - Fix links to non-aggregage join fields
476 ([21482](https://github.com/civicrm/civicrm-core/pull/21482))**
477
478 - **SearchKit - Fix display of links in aggregated columns
479 ([21420](https://github.com/civicrm/civicrm-core/pull/21420))**
480
481 - **SearchKit - Fix alignment in table headers
482 ([21431](https://github.com/civicrm/civicrm-core/pull/21431))**
483
484 - **SearchKit - Correctly process filters passed through Afform from js
485 ([21485](https://github.com/civicrm/civicrm-core/pull/21485))**
486
487 - **SearchKit - Prevent race conditions in search display loading
488 ([21394](https://github.com/civicrm/civicrm-core/pull/21394))**
489
490 - **[search kit] Semicolon vs comma
491 ([21406](https://github.com/civicrm/civicrm-core/pull/21406))**
492
493 - **message_admin Style fixes
494 ([21712](https://github.com/civicrm/civicrm-core/pull/21712))**
495
496 - **message_admin - Fix quirk when using "Create Draft"
497 ([21700](https://github.com/civicrm/civicrm-core/pull/21700))**
498
499 - **MessageTemplate API - Fix saving of templates with workflow_name sans
500 workflow_id ([21694](https://github.com/civicrm/civicrm-core/pull/21694))**
501
502 - **Find Activities Search, default search option for Activity Text is set to
503 "both" in the code, but should actually be set to 6 which is the value for
504 "both" ([21598](https://github.com/civicrm/civicrm-core/pull/21598))**
505
506 - **UFMatch - E_NOTICE when nonexistent uf_id
507 ([21576](https://github.com/civicrm/civicrm-core/pull/21576))**
508
509 - **flushCaches should respect permitCacheFlushMode. Also flush caches which
510 have a NULL cache_date
511 ([21430](https://github.com/civicrm/civicrm-core/pull/21430))**
512
513 - **Setting::getItem - use deprecatedWarning instead of just logging
514 ([21625](https://github.com/civicrm/civicrm-core/pull/21625))**
515
516 - **Fix display of subscription frequency on 'Update Subscription' form
517 ([21469](https://github.com/civicrm/civicrm-core/pull/21469))**
518
519 - **Fix bug where log hook is ignored on custom field create
520 ([21557](https://github.com/civicrm/civicrm-core/pull/21557))**
521
522 - **Set default for civicrm_message_template.is_reserved
523 ([21651](https://github.com/civicrm/civicrm-core/pull/21651))**
524
525 - **CiviReport - avoid error in test environments when using built-in php web
526 server ([21560](https://github.com/civicrm/civicrm-core/pull/21560))**
527
528 - **Update SelfSvcUpdate.php
529 ([21679](https://github.com/civicrm/civicrm-core/pull/21679))**
530
531 Changes "cancel" text to read "cancel registration".
532
533 - **Import csv-Fix not importing extension in phones
534 ([20995](https://github.com/civicrm/civicrm-core/pull/20995))**
535
536 - **Missed message template updates from 5.39/5.40
537 ([21550](https://github.com/civicrm/civicrm-core/pull/21550))**
538
539 - **Don't clear the GroupContactCache until we're ready to insert the new
540 version ([21384](https://github.com/civicrm/civicrm-core/pull/21384))**
541
542 - **Fix syntax error on a ts() function call
543 ([21518](https://github.com/civicrm/civicrm-core/pull/21518))**
544
545 - **flushCaches should respect permitCacheFlushMode
546 ([21468](https://github.com/civicrm/civicrm-core/pull/21468))**
547
548 - **Smarty warning about missing contact subtype on New Individual
549 ([21410](https://github.com/civicrm/civicrm-core/pull/21410))**
550
551 - **Fix Upgrade step to ensure all fields are converted correctly as well
552 ([21396](https://github.com/civicrm/civicrm-core/pull/21396))**
553
554 - **Don't specify character set for civicrm_relationship_cache table
555 ([21382](https://github.com/civicrm/civicrm-core/pull/21382))**
556
557 - **Error about count() on New Email
558 ([21714](https://github.com/civicrm/civicrm-core/pull/21714))**
559
560 - **Fix generating civicrm.settings.php by ensuring that CMSdbSSL and dbSSL
561 variables are properly removed from the DSNs
562 ([63](https://github.com/civicrm/civicrm-joomla/pull/63))**
563
564 - **Smarty notices on Find Activities results page
565 ([21422](https://github.com/civicrm/civicrm-core/pull/21422))**
566
567 - **Smarty notice on Find Activities / Find Cases
568 ([21421](https://github.com/civicrm/civicrm-core/pull/21421))**
569
570 - **Tpl notice fixes
571 ([21503](https://github.com/civicrm/civicrm-core/pull/21503))**
572
573 - **Fix extra apostrophe added in 21636
574 ([21650](https://github.com/civicrm/civicrm-core/pull/21650))**
575
576 - **avoid back trace when importing preferred communication method
577 ([21433](https://github.com/civicrm/civicrm-core/pull/21433))**
578
579 - **Fixed issue with sending from do-not-reply@domain address
580 ([21455](https://github.com/civicrm/civicrm-core/pull/21455))**
581
582 - **Find Activities Search, the default search option of "With" criteria
583 excludes Activities by default. Confuses End Users when 0 results are returned
584 when criteria appears to be correct.
585 ([21595](https://github.com/civicrm/civicrm-core/pull/21595))**
586
587 - **Do not send email notification to the user if `notify` is not set in the
588 params ([21562](https://github.com/civicrm/civicrm-core/pull/21562))**
589
590 - **ensure blank note date in UI defaults to current date.
591 ([21717](https://github.com/civicrm/civicrm-core/pull/21717))**
592
593 - **System status checks only shows 25 messages
594 ([21748](https://github.com/civicrm/civicrm-core/pull/21748))**
595
596 - **Enotice fixes
597 ([21723](https://github.com/civicrm/civicrm-core/pull/21723))**
598
599 - **Enotice tpl fix
600 ([21689](https://github.com/civicrm/civicrm-core/pull/21689))**
601
602 - **Enotice fix
603 ([21782](https://github.com/civicrm/civicrm-core/pull/21782))**
604
605 - **Enotice fix
606 ([21732](https://github.com/civicrm/civicrm-core/pull/21732))**
607
608 - **enotice fix
609 ([21702](https://github.com/civicrm/civicrm-core/pull/21702))**
610
611 - **typo fixes
612 ([21655](https://github.com/civicrm/civicrm-core/pull/21655))**
613
614 - **Enotice fix
615 ([21636](https://github.com/civicrm/civicrm-core/pull/21636))**
616
617 - **enotice fix
618 ([21631](https://github.com/civicrm/civicrm-core/pull/21631))**
619
620 - **Enotice fix
621 ([21579](https://github.com/civicrm/civicrm-core/pull/21579))**
622
623 - **Fix header e-notices
624 ([21633](https://github.com/civicrm/civicrm-core/pull/21633))**
625
626 - **Enotice fix
627 ([21658](https://github.com/civicrm/civicrm-core/pull/21658))**
628
629 - **Enotice fixes
630 ([21659](https://github.com/civicrm/civicrm-core/pull/21659))**
631
632 - **Enotice fixes
633 ([21632](https://github.com/civicrm/civicrm-core/pull/21632))**
634
635 - **enotice fixes in fatal error template
636 ([21639](https://github.com/civicrm/civicrm-core/pull/21639))**
637
638 - **Tpl notice fix
639 ([21543](https://github.com/civicrm/civicrm-core/pull/21543))**
640
641 - **tpl enotice fixes on extensions page
642 ([21545](https://github.com/civicrm/civicrm-core/pull/21545))**
643
644 - **Tpl notice fixes
645 ([21544](https://github.com/civicrm/civicrm-core/pull/21544))**
646
647 - **Tpl enotice fixes
648 ([21542](https://github.com/civicrm/civicrm-core/pull/21542))**
649
650 - **Enotice fixes in tpls
651 ([21541](https://github.com/civicrm/civicrm-core/pull/21541))**
652
653 - **Add missing ts
654 ([21711](https://github.com/civicrm/civicrm-core/pull/21711))**
655
656 - **Another enotice fix
657 ([21682](https://github.com/civicrm/civicrm-core/pull/21682))**
658
659 - **And another one
660 ([21683](https://github.com/civicrm/civicrm-core/pull/21683))**
661
662 - **Another one bites the dust
663 ([21684](https://github.com/civicrm/civicrm-core/pull/21684))**
664
665 - **Fix possibly undefined $form variables in smarty templates
666 ([21735](https://github.com/civicrm/civicrm-core/pull/21735))**
667
668 - **Fix regression from enotice fixes
669 ([21743](https://github.com/civicrm/civicrm-core/pull/21743))**
670
671 ### CiviCase
672
673 - **For latest iteration of case email form, don't fail when there's no To
674 contact ([21737](https://github.com/civicrm/civicrm-core/pull/21737))**
675
676 ### CiviContribute
677
678 - **Fix PHP notices in contributionrecur tpl
679 ([21526](https://github.com/civicrm/civicrm-core/pull/21526))**
680
681 - **Follow up on removing contributeMode from templates
682 ([21417](https://github.com/civicrm/civicrm-core/pull/21417))**
683
684 - **Getting system status message about contributeMode after upgrade to 5.43
685 when it seems like it shouldn't
686 ([dev/core#2828](https://lab.civicrm.org/dev/core/-/issues/2828):
687 [21434](https://github.com/civicrm/civicrm-core/pull/21434))**
688
689 - **Participant Status: pending refund can have two conflicting meanings (Work
690 Towards [dev/core#2629](https://lab.civicrm.org/dev/core/-/issues/2629):
691 [21624](https://github.com/civicrm/civicrm-core/pull/21624))**
692
693 Only show contribution statuses on contribution form.
694
695 - **Money - create new Civi:: facade - now format helper (Work Towards:
696 [dev/core#2638](https://lab.civicrm.org/dev/core/-/issues/2638):
697 [21599](https://github.com/civicrm/civicrm-core/pull/21599))**
698
699 Adds a helper function for formatting.
700
701 - **CiviCRM 5.35.1, truncation of money values where $1,000 donation is recorded
702 as $1 which appears to be truncating at the thousand separator when using the
703 Australian (AU) and US Locale (Work Towards
704 [dev/core#2493](https://lab.civicrm.org/dev/core/-/issues/2493):
705 [21555](https://github.com/civicrm/civicrm-core/pull/21555))**
706
707 Ensures that any money fields retrieved by getSubmittedValue are in a machine
708 usable format.
709
710 - **[regression-ish] When a recurring contribution template has no line items,
711 the contact contribution tab crashes
712 ([dev/financial#187](https://lab.civicrm.org/dev/financial/-/issues/187):
713 [21729](https://github.com/civicrm/civicrm-core/pull/21729))**
714
715 - **ContributionRecur modified_date should update to current_timestamp on update
716 ([21472](https://github.com/civicrm/civicrm-core/pull/21472))**
717
718 - **ensure recur options are present on backend cc contribution form.
719 ([21577](https://github.com/civicrm/civicrm-core/pull/21577))**
720
721 ### CiviEvent
722
723 - **Flush metadata cache on event edit
724 ([21740](https://github.com/civicrm/civicrm-core/pull/21740))**
725
726 - **Fix Badge to use token processor
727 ([dev/core#2834](https://lab.civicrm.org/dev/core/-/issues/2834):
728 [21458](https://github.com/civicrm/civicrm-core/pull/21458) and
729 [21587](https://github.com/civicrm/civicrm-core/pull/21587))**
730
731 - **Event confirmation emails should go to the email submitted, not primary
732 email ([dev/event#64](https://lab.civicrm.org/dev/event/-/issues/64):
733 [21669](https://github.com/civicrm/civicrm-core/pull/21669))**
734
735 - **Fix label for participant role
736 ([21656](https://github.com/civicrm/civicrm-core/pull/21656))**
737
738 ### CiviMail
739
740 - **flexmailer - Update `[CiviMail Draft]` prefix to match BAO behavior
741 ([21715](https://github.com/civicrm/civicrm-core/pull/21715))**
742
743 - **update_email_resetdate job does not consider opt out on hold
744 ([dev/core#2850](https://lab.civicrm.org/dev/core/-/issues/2850):
745 [21564](https://github.com/civicrm/civicrm-core/pull/21564))**
746
747 - **Start phasing out 'preferred_mail_format' (Work Towards
748 [dev/core#2866](https://lab.civicrm.org/dev/core/-/issues/2866):
749 [21676](https://github.com/civicrm/civicrm-core/pull/21676))**
750
751 ### Drupal Integration
752
753 - **Contact Image uploaded from Drupal Webform doesn't render on Drupal View as
754 a thumbnail. ([dev/drupal#13](https://lab.civicrm.org/dev/drupal/issues/13):
755 [524](https://github.com/civicrm/civicrm-drupal/pull/524))**
756
757 - **Session erroneously getting set to NULL on Drupal user login
758 ([dev/drupal#163](https://lab.civicrm.org/dev/drupal/-/issues/163):
759 [21403](https://github.com/civicrm/civicrm-core/pull/21403))**
760
761 ### WordPress integration
762
763 - **Wordpress Profile User Creation Sign On (v2)
764 ([20807](https://github.com/civicrm/civicrm-core/pull/20807))**
765
766 Ensures user is logged in on profile submission.
767
768 ## <a name="misc"></a>Miscellany
769
770 - **MessageTemplate - Deprecate `valueName`. Emphasize `workflow`. Consolidate
771 converters. ([21657](https://github.com/civicrm/civicrm-core/pull/21657))**
772
773 - **Bump minimum upgradable version to 4.5.9
774 ([21408](https://github.com/civicrm/civicrm-core/pull/21408))**
775
776 - **Use Case form for case email action
777 ([21688](https://github.com/civicrm/civicrm-core/pull/21688))**
778
779 - **Contact tokens - use metadata & standardised rendering
780 ([21761](https://github.com/civicrm/civicrm-core/pull/21761))**
781
782 - **Remove call to legacy getTokenDetails
783 ([21786](https://github.com/civicrm/civicrm-core/pull/21786))**
784
785 - **Remove extraneous call to legacy token processing in sms task
786 ([21785](https://github.com/civicrm/civicrm-core/pull/21785))**
787
788 - **Remove stray token code
789 ([21763](https://github.com/civicrm/civicrm-core/pull/21763))**
790
791 - **Consolidate building of contact token list
792 ([21429](https://github.com/civicrm/civicrm-core/pull/21429))**
793
794 - **Stop using `replaceContributionTokens` in core
795 ([dev/core#2851](https://lab.civicrm.org/dev/core/-/issues/2851):
796 [21525](https://github.com/civicrm/civicrm-core/pull/21525) and
797 [21565](https://github.com/civicrm/civicrm-core/pull/21565))**
798
799 - **Add SqlFunction support in addWhere
800 ([21301](https://github.com/civicrm/civicrm-core/pull/21301))**
801
802 - **Deprecate `replaceEntityTokens`, stop using in core
803 ([dev/core#2832](https://lab.civicrm.org/dev/core/-/issues/2832):
804 [21506](https://github.com/civicrm/civicrm-core/pull/21506),
805 [21521](https://github.com/civicrm/civicrm-core/pull/21521),
806 [21452](https://github.com/civicrm/civicrm-core/pull/21452) and
807 [21453](https://github.com/civicrm/civicrm-core/pull/21453))**
808
809 - **Deprecate `replaceCaseTokens` in core
810 ([dev/core#2817](https://lab.civicrm.org/dev/core/-/issues/2817):
811 [21380](https://github.com/civicrm/civicrm-core/pull/21380),
812 [21445](https://github.com/civicrm/civicrm-core/pull/21445),
813 [21383](https://github.com/civicrm/civicrm-core/pull/21383),
814 [21381](https://github.com/civicrm/civicrm-core/pull/21381),
815 [21447](https://github.com/civicrm/civicrm-core/pull/21447) and
816 [21475](https://github.com/civicrm/civicrm-core/pull/21475))**
817
818 - **Stop using replaceContactTokens in core (Work Towards
819 [dev/core#2814](https://lab.civicrm.org/dev/core/-/issues/2814):
820 [21365](https://github.com/civicrm/civicrm-core/pull/21365),
821 [21414](https://github.com/civicrm/civicrm-core/pull/21414),
822 [21364](https://github.com/civicrm/civicrm-core/pull/21364),
823 [21379](https://github.com/civicrm/civicrm-core/pull/21379),
824 [21377](https://github.com/civicrm/civicrm-core/pull/21377),
825 [21378](https://github.com/civicrm/civicrm-core/pull/21378),
826 [21568](https://github.com/civicrm/civicrm-core/pull/21568),
827 [21494](https://github.com/civicrm/civicrm-core/pull/21494),
828 [21367](https://github.com/civicrm/civicrm-core/pull/21367) and
829 [21449](https://github.com/civicrm/civicrm-core/pull/21449))**
830
831 - **[REF] Cleanup pdf classes to use a trait like we do for email classes
832 ([dev/core#2790](https://lab.civicrm.org/dev/core/-/issues/2790):
833 [21478](https://github.com/civicrm/civicrm-core/pull/21478),
834 [21479](https://github.com/civicrm/civicrm-core/pull/21479),
835 [21366](https://github.com/civicrm/civicrm-core/pull/21366),
836 [21359](https://github.com/civicrm/civicrm-core/pull/21359) and
837 [21335](https://github.com/civicrm/civicrm-core/pull/21335))**
838
839 - **Afform - Add getters/setters to the AfformSubmitEvent class
840 ([21572](https://github.com/civicrm/civicrm-core/pull/21572))**
841
842 - **Api v4 contact delete bug (Cleanup Towards
843 [dev/core#2757](https://lab.civicrm.org/dev/core/-/issues/2757):
844 [21210](https://github.com/civicrm/civicrm-core/pull/21210),
845 [21198](https://github.com/civicrm/civicrm-core/pull/21198),
846 [21211](https://github.com/civicrm/civicrm-core/pull/21211) and
847 [21199](https://github.com/civicrm/civicrm-core/pull/21199))**
848
849 - **[REF] Separate repeattransaction from completeorder function - only call the
850 latter from payment.create
851 (Cleanup Towards [dev/core#2716](https://lab.civicrm.org/dev/core/-/issues/2716):
852 [20856](https://github.com/civicrm/civicrm-core/pull/20856))**
853
854 - **Financial record processing - extract to new class to faciliate cleanup
855 (Work Towards [dev/core#2715](https://lab.civicrm.org/dev/core/-/issues/2715):
856 [20985](https://github.com/civicrm/civicrm-core/pull/20985) and
857 [21370](https://github.com/civicrm/civicrm-core/pull/21370))**
858
859 - **Add unique class to price field template
860 ([21484](https://github.com/civicrm/civicrm-core/pull/21484))**
861
862 - **Clean up UpdateBilling/UpdateSubscription/ContributionRecur to use getters
863 ([21538](https://github.com/civicrm/civicrm-core/pull/21538))**
864
865 - **[REF] Fix form to call this->setTitle()
866 ([21362](https://github.com/civicrm/civicrm-core/pull/21362))**
867
868 - **Update use of CRM_Utils_System::setTitle() for legacycustomsearches
869 ([21375](https://github.com/civicrm/civicrm-core/pull/21375))**
870
871 - **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle()
872 part 2 ([21202](https://github.com/civicrm/civicrm-core/pull/21202))**
873
874 - **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle()
875 part 3 ([21352](https://github.com/civicrm/civicrm-core/pull/21352))**
876
877 - **Switch to CRM_Core_Form::setTitle() instead of CRM_Utils_System::setTitle()
878 part 4 ([21368](https://github.com/civicrm/civicrm-core/pull/21368))**
879
880 - **Simplify getRecurFromAddress
881 ([21613](https://github.com/civicrm/civicrm-core/pull/21613))**
882
883 - **Return another function to the email trait
884 ([21677](https://github.com/civicrm/civicrm-core/pull/21677))**
885
886 - **Rename test clas to reflect tested class name
887 ([21686](https://github.com/civicrm/civicrm-core/pull/21686))**
888
889 - **Remove unused function - convertDateFieldsToMySQL
890 ([21617](https://github.com/civicrm/civicrm-core/pull/21617))**
891
892 - **Remove all references to safe_mode, DEPRECATED as of PHP 5.3.0 and REMOVED
893 as of PHP 5.4.0
894 ([21594](https://github.com/civicrm/civicrm-core/pull/21594))**
895
896 - **Remove duplicate global declaration in civicrm.settings.php template
897 ([21409](https://github.com/civicrm/civicrm-core/pull/21409))**
898
899 - **Remove broken code
900 ([21602](https://github.com/civicrm/civicrm-core/pull/21602))**
901
902 - **Remove call to the dreaded replaceMultipleContributionTokens
903 ([21652](https://github.com/civicrm/civicrm-core/pull/21652))**
904
905 - **Remove handling for empty required field
906 ([21623](https://github.com/civicrm/civicrm-core/pull/21623))**
907
908 - **Remove error handling for core error being returned
909 ([21425](https://github.com/civicrm/civicrm-core/pull/21425))**
910
911 - **Remove over-copied function
912 ([21641](https://github.com/civicrm/civicrm-core/pull/21641))**
913
914 - **Remove unused paramter
915 ([21685](https://github.com/civicrm/civicrm-core/pull/21685))**
916
917 - **Remove deprecated code lines
918 ([21566](https://github.com/civicrm/civicrm-core/pull/21566))**
919
920 - **Remove workflow_id reference
921 ([21671](https://github.com/civicrm/civicrm-core/pull/21671))**
922
923 - **Remove now-silly function
924 ([21680](https://github.com/civicrm/civicrm-core/pull/21680))**
925
926 - **Remove fugly bit
927 ([21497](https://github.com/civicrm/civicrm-core/pull/21497))**
928
929 - **Remove requirement to enter email address on Opt Out
930 ([21350](https://github.com/civicrm/civicrm-core/pull/21350))**
931
932 - **Remove requirement to enter email address on unsubscribe
933 ([21175](https://github.com/civicrm/civicrm-core/pull/21175))**
934
935 - **Remove deprecated input variable
936 ([21372](https://github.com/civicrm/civicrm-core/pull/21372))**
937
938 - **Remove unused private function
939 ([21371](https://github.com/civicrm/civicrm-core/pull/21371))**
940
941 - **Remove deprecated function
942 ([21361](https://github.com/civicrm/civicrm-core/pull/21361))**
943
944 - **Remove testing hack
945 ([21360](https://github.com/civicrm/civicrm-core/pull/21360))**
946
947 - **Remove deprecated function
948 ([21358](https://github.com/civicrm/civicrm-core/pull/21358))**
949
950 - **Removes duplicate replace on event fee amount.
951 ([21739](https://github.com/civicrm/civicrm-core/pull/21739))**
952
953 - **Remove function duplicated in error
954 ([21758](https://github.com/civicrm/civicrm-core/pull/21758))**
955
956 - **Remove now-obsolete getPseudoTokens
957 ([21760](https://github.com/civicrm/civicrm-core/pull/21760))**
958
959 - **APIv4 - Minor code cleanup to improve efficiency in
960 CreateApi4RequestSubscriber
961 ([21775](https://github.com/civicrm/civicrm-core/pull/21775))**
962
963 - **Function cleanup following move to non-static function
964 ([21693](https://github.com/civicrm/civicrm-core/pull/21693))**
965
966 - **[REF] Extract getRedirectUrl method
967 ([21687](https://github.com/civicrm/civicrm-core/pull/21687))**
968
969 - **[REF] Copy another email trait function back to the trait
970 ([21648](https://github.com/civicrm/civicrm-core/pull/21648))**
971
972 - **REF - Remove non-functional code from APIv3
973 ([21727](https://github.com/civicrm/civicrm-core/pull/21727))**
974
975 - **[REF] Do not set input['line_item'] pointlessly
976 ([21311](https://github.com/civicrm/civicrm-core/pull/21311))**
977
978 - **[REF] Use getSubmittedValue rather than passed values
979 ([21668](https://github.com/civicrm/civicrm-core/pull/21668))**
980
981 - **(REF) MessageTemplate - Reverse renderTemplate()<=>sendTemplate() call
982 ([21610](https://github.com/civicrm/civicrm-core/pull/21610))**
983
984 - **[REF] Separate contact tokens from 'tokenCompatSubscriber'
985 ([21626](https://github.com/civicrm/civicrm-core/pull/21626))**
986
987 - **[Ref] Function signature cleanup
988 ([21618](https://github.com/civicrm/civicrm-core/pull/21618))**
989
990 - **[REF] Return the sendEmail function to it's owner
991 ([21608](https://github.com/civicrm/civicrm-core/pull/21608))**
992
993 - **[REF] Remove illusion of looping
994 ([21554](https://github.com/civicrm/civicrm-core/pull/21554))**
995
996 - **[Ref] Extend email trait test, process more sanely
997 ([21553](https://github.com/civicrm/civicrm-core/pull/21553))**
998
999 - **[REF] Extract domain tokens to their own class
1000 ([21510](https://github.com/civicrm/civicrm-core/pull/21510))**
1001
1002 - **[REF] add test & static array to participant values tokens
1003 ([21476](https://github.com/civicrm/civicrm-core/pull/21476))**
1004
1005 - **[REF] simplify member_tokens
1006 ([21481](https://github.com/civicrm/civicrm-core/pull/21481))**
1007
1008 - **[Ref] Cleanup on SelectValues::contributeTokens
1009 ([21465](https://github.com/civicrm/civicrm-core/pull/21465))**
1010
1011 - **[Ref] Remove pass-by-reference
1012 ([21466](https://github.com/civicrm/civicrm-core/pull/21466))**
1013
1014 - **[Ref] Remove unnecessary pass-by-reference
1015 ([21463](https://github.com/civicrm/civicrm-core/pull/21463))**
1016
1017 - **[REF] Use OO when determining what to suggest for settings.php prefixes for
1018 drupal/backdrop views, instead of scattered "if cms =="
1019 ([21042](https://github.com/civicrm/civicrm-core/pull/21042))**
1020
1021 - **[REF] Remove unused parameter
1022 ([21448](https://github.com/civicrm/civicrm-core/pull/21448))**
1023
1024 - **[REF] Remove unused variable
1025 ([21451](https://github.com/civicrm/civicrm-core/pull/21451))**
1026
1027 - **[REF] Extract code to load the contact in tokenCompat
1028 ([21450](https://github.com/civicrm/civicrm-core/pull/21450))**
1029
1030 - **[REF] Extract function to getDomainTokens
1031 ([21416](https://github.com/civicrm/civicrm-core/pull/21416))**
1032
1033 - **[REF] Remove cruft
1034 ([21418](https://github.com/civicrm/civicrm-core/pull/21418))**
1035
1036 - **[REF] Extract code to get the from address for a recurring contribution.
1037 ([21357](https://github.com/civicrm/civicrm-core/pull/21357))**
1038
1039 - **[Ref] Remove no-longer-used variables
1040 ([21459](https://github.com/civicrm/civicrm-core/pull/21459))**
1041
1042 - **[REF] Update Frequenecy template assignments in UpdateBilling to be
1043 consistent with #21469
1044 ([21635](https://github.com/civicrm/civicrm-core/pull/21635))**
1045
1046 - **[REF] Update Product Create to use hooks and also switch the manage
1047 product/premium page to use APIv4 Product Entity
1048 ([20822](https://github.com/civicrm/civicrm-core/pull/20822))**
1049
1050 - **[REF] Add in upgrade step to align the relationship cache table collation
1051 and charset with the other tables
1052 ([21389](https://github.com/civicrm/civicrm-core/pull/21389))**
1053
1054 - **[REF] stop passing form into createActivities
1055 ([21653](https://github.com/civicrm/civicrm-core/pull/21653))**
1056
1057 - **[REF] Extract function for re-use
1058 ([21778](https://github.com/civicrm/civicrm-core/pull/21778))**
1059
1060 - **[REF] Move getCustomFieldTokens to the tokens class, annotate more
1061 deprecations ([21660](https://github.com/civicrm/civicrm-core/pull/21660))**
1062
1063 - **[REF] APIv4 - Use event instead of hardcoded list to resolve entityName to
1064 className ([21771](https://github.com/civicrm/civicrm-core/pull/21771))**
1065
1066 - **Update contributors for Third Sector Design
1067 ([21516](https://github.com/civicrm/civicrm-core/pull/21516))**
1068
1069 - **[NFC/Unit test] - Fix test fail on php 7.4
1070 CRM_Core_BAO_MessageTemplateTest::testCaseActivityCopyTemplate
1071 ([21443](https://github.com/civicrm/civicrm-core/pull/21443))**
1072
1073 - **[NFC/Unit Test] Remove wombats and bananas from
1074 sites/default/files/civicrm/custom
1075 ([21768](https://github.com/civicrm/civicrm-core/pull/21768))**
1076
1077 - **[NFC/Unit test] - Fix secondary issue with case token consistency test
1078 ([21369](https://github.com/civicrm/civicrm-core/pull/21369))**
1079
1080 - **Authx: README: add note about CMS permissions
1081 ([21439](https://github.com/civicrm/civicrm-core/pull/21439))**
1082
1083 - **[NFC] Add test for new case email url
1084 ([21766](https://github.com/civicrm/civicrm-core/pull/21766))**
1085
1086 - **[NFC] Afform - Add array shape annotations to FormDataModel
1087 ([21765](https://github.com/civicrm/civicrm-core/pull/21765))**
1088
1089 - **[NFC] Unit test fixes for the problem of quickform rules going missing
1090 ([21725](https://github.com/civicrm/civicrm-core/pull/21725))**
1091
1092 - **NFC - Update code comments
1093 ([21675](https://github.com/civicrm/civicrm-core/pull/21675))**
1094
1095 - **[NFC] Unit test for file-on-case
1096 ([21678](https://github.com/civicrm/civicrm-core/pull/21678))**
1097
1098 - **[NFC] [test] minor cleanup in test
1099 ([21498](https://github.com/civicrm/civicrm-core/pull/21498))**
1100
1101 - **[NFC] Fix Fatal error on php 8 due to mis matched function declaration
1102 ([21487](https://github.com/civicrm/civicrm-core/pull/21487))**
1103
1104 - **[NFC] Put back email test without tokens and enhance a little
1105 ([21398](https://github.com/civicrm/civicrm-core/pull/21398))**
1106
1107 - **[NFC] Extend send email test to cover for contact tokens being replaced
1108 ([21386](https://github.com/civicrm/civicrm-core/pull/21386))**
1109
1110 - **[NFC] Add in type hints to template upgrade functions
1111 ([21390](https://github.com/civicrm/civicrm-core/pull/21390))**
1112
1113 - **NFC Clarify description for ckeditor4 plugin
1114 ([21349](https://github.com/civicrm/civicrm-core/pull/21349))**
1115
1116 - **Improve test readability, use schema labels for membership tokens
1117 ([21708](https://github.com/civicrm/civicrm-core/pull/21708))**
1118
1119 - **Add test to cancel subscription form
1120 ([21588](https://github.com/civicrm/civicrm-core/pull/21588))**
1121
1122 - **Fix test to test trait not deprecated function
1123 ([21373](https://github.com/civicrm/civicrm-core/pull/21373))**
1124
1125 - **Fix test
1126 ([21585](https://github.com/civicrm/civicrm-core/pull/21585))**
1127
1128 - **Tests - update to use postProcess
1129 ([21637](https://github.com/civicrm/civicrm-core/pull/21637))**
1130
1131 - **Basic IDE cleanup on test class
1132 ([21661](https://github.com/civicrm/civicrm-core/pull/21661))**
1133
1134 - **Test fix
1135 ([21662](https://github.com/civicrm/civicrm-core/pull/21662))**
1136
1137 - **tests/events/*.php - Enforce general compliance with hook/event signatures
1138 ([21615](https://github.com/civicrm/civicrm-core/pull/21615))**
1139
1140 - **HttpTestTrait - Allow one to easily authenticate subrequests
1141 ([21261](https://github.com/civicrm/civicrm-core/pull/21261))**
1142
1143 - **Test regression fix
1144 ([21649](https://github.com/civicrm/civicrm-core/pull/21649))**
1145
1146 - **Test tearDown fixes
1147 ([21548](https://github.com/civicrm/civicrm-core/pull/21548))**
1148
1149 - **Convert more tests to call postProcess
1150 ([21628](https://github.com/civicrm/civicrm-core/pull/21628))**
1151
1152 - **Stop testing for gender_id output that was described as 'legacy' years ago
1153 ([21558](https://github.com/civicrm/civicrm-core/pull/21558))**
1154
1155 - **Test cleanup
1156 ([21622](https://github.com/civicrm/civicrm-core/pull/21622))**
1157
1158 - **Fix test to use postProcess
1159 ([21630](https://github.com/civicrm/civicrm-core/pull/21630))**
1160
1161 - **Test cleanup -convert to use postProcess
1162 ([21629](https://github.com/civicrm/civicrm-core/pull/21629))**
1163
1164 - **Add test and fix for API4 failing to decode strings stored as HTML
1165 ([21549](https://github.com/civicrm/civicrm-core/pull/21549))**
1166
1167 - **Initial test on event tokens
1168 ([21563](https://github.com/civicrm/civicrm-core/pull/21563))**
1169
1170 - **Cleanup on test tear downs
1171 ([21552](https://github.com/civicrm/civicrm-core/pull/21552))**
1172
1173 - **Attempt to fix test site 500 errors on activity pdf
1174 ([21504](https://github.com/civicrm/civicrm-core/pull/21504))**
1175
1176 ## <a name="credits"></a>Credits
1177
1178 This release was developed by the following code authors:
1179
1180 AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; Andy
1181 Burns; Benjamin W; Christian Wach; CiviCoop - Jaap Jansma; CiviCRM - Coleman
1182 Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy;
1183 Dave D; Digitalcourage - Detlev Sieber; Francesc Bassas i Bullich; Fuzion -
1184 Jitendra Purohit; Greenpeace Central and Eastern Europe - Patrick Figel; iXiam -
1185 Rubén Pineda; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth;
1186 Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology
1187 Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology
1188 Project - Jamie McClelland; Third Sector Design - Kurund Jalmi, Michael
1189 McAndrew, William Mortada; Valéry Gouleau; Wikimedia Foundation - Eileen
1190 McNaughton
1191
1192 Most authors also reviewed code for this release; in addition, the following
1193 reviewers contributed their comments:
1194
1195 AGH Strategies - Eli Lisseck; Artful Robot - Rich Lott; Black Brick Software -
1196 David Hayes; CiviCRM - Josh Gowans; CiviDesk - Yashodha Chaku; CompuCorp - Omar
1197 Abu Hussein; Freeform Solutions - Herb van den Dool; Humanists UK - Andrew West;
1198 Lemniscus - Noah Miller; OPEN - dewy; Richard Baugh; Richard van Oosterhout;
1199 Semper IT - Karin Gerritsen; Skvare - Mark Hanna; Squiffle Consulting - Aidan
1200 Saunders; Tadpole Collective - Kevin Cristiano
1201
1202 ## <a name="feedback"></a>Feedback
1203
1204 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
1205 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
1206 and contact `@agh1`.