3 Released November 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 - **Add sort functionality to event summary report
29 ([21501](https://github.com/civicrm/civicrm-core/pull/21501))**
31 Improves Event Summary Report by making it possible to sort columns.
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))**
37 Makes it so users can use regular expressions operators in APIv4.
39 - **APIv4 - Add Contact.age_years extra field to make age calculations easy
40 ([21718](https://github.com/civicrm/civicrm-core/pull/21718))**
42 Adds a calculated field to APIv4 which makes it simple to return or filter on
45 - **APIv4 - Add support for sql equations
46 ([21551](https://github.com/civicrm/civicrm-core/pull/21551))**
48 Allows equations e.g. (1 + 1) as sql expressions in APIv4 queries.
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))**
55 Adds APIv4 entity support for the PrintLabel and Survey entities.
57 - **activity import: prepend custom group title to custom fields
58 ([21318](https://github.com/civicrm/civicrm-core/pull/21318))**
60 Makes it possible to distinguish between core and custom fields on the
61 Activity Import screen.
63 - **No way to distinguish the core and custom fields on Find and Merge Duplicate
65 ([dev/core#2766](https://lab.civicrm.org/dev/core/-/issues/2766):
66 [21728](https://github.com/civicrm/civicrm-core/pull/21728))**
68 Makes it possible to distinguish between core and custom fields on the Find
69 and Merge Duplicate Contacts page.
71 - **Support participant & membership tokens in send-email tasks
72 ([21745](https://github.com/civicrm/civicrm-core/pull/21745))**
74 Makes it so users can use participant & membership tokens in send-email tasks.
76 - **Add participant tokens to pdf task
77 ([21695](https://github.com/civicrm/civicrm-core/pull/21695))**
79 Makes it so users can use participant tokens in PDF tasks.
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))**
92 Standardizes Token usage.
94 - **Add {domain.now}, supporting |crmDate
95 ([21531](https://github.com/civicrm/civicrm-core/pull/21531))**
97 Adds new token {domain.now} that provides the current date.
99 - **Afform - Use search display name as field prefix for url-based field
100 defaults ([21645](https://github.com/civicrm/civicrm-core/pull/21645))**
102 Makes field prefix optional for Afform url-based defaults, and uses search
103 display name as prefix for search forms.
105 - **Afform - Accept default field values from the url
106 ([21606](https://github.com/civicrm/civicrm-core/pull/21606))**
108 Allows default Afform field values to be set from the url.
110 - **Afform Admin add link icon & template cleanup
111 ([21764](https://github.com/civicrm/civicrm-core/pull/21764))**
113 Minor cleanup to improve template efficiency, style afform page link, and add
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))**
120 Adds is_primary as a default SearchKit filter.
122 - **SearchKit - Add UI for arithmetic equations
123 ([21600](https://github.com/civicrm/civicrm-core/pull/21600))**
125 Allows adding, subtracting, dividing and multiplying any number of values in
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))**
132 Enhances the SearchKit UI to allow multiple fields to be acted upon at once in
135 - **SearchKit - Add pseudo-fields for row number and current user
136 ([21435](https://github.com/civicrm/civicrm-core/pull/21435))**
138 Makes a couple calculated fields available for use as columns or tokens in
141 - **SearchKit - Support custom fields in bridge join entities
142 ([21424](https://github.com/civicrm/civicrm-core/pull/21424))**
144 Makes it possible to use relationship custom data throughout Search Kit.
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))**
150 applies Bootstrap table styles to admin tables in SearchKit and Afform.
152 - **SearchKit - Filter search listing by creator
153 ([21388](https://github.com/civicrm/civicrm-core/pull/21388))**
155 Makes it so users can filter the search listing by creator.
157 - **SearchKit - enable tags for Saved Searches
158 ([21376](https://github.com/civicrm/civicrm-core/pull/21376))**
160 Enables tags for saved searches in searchkit.
162 - **SearchKit - Add 'array' option to download API and add test
163 ([21363](https://github.com/civicrm/civicrm-core/pull/21363))**
165 Adds a new option to the SearchKit "Download" api to return a normal array
166 result, which makes testing easier.
168 - **SearchKit - Sortable column fixes/improvements
169 ([21720](https://github.com/civicrm/civicrm-core/pull/21720))**
171 Fixes sortable column headers on SearchKit admin tables and makes
172 click-sortable column headers configurable.
174 - **Add message admin to dist
175 ([21670](https://github.com/civicrm/civicrm-core/pull/21670))**
177 Adds Message admin extension.
179 - **message_admin - Add titles/hints to hyperlinks
180 ([21698](https://github.com/civicrm/civicrm-core/pull/21698))**
182 Adds help text to links on Message Admin Screen.
184 - **Replace expensive query with cheaper one
185 ([21426](https://github.com/civicrm/civicrm-core/pull/21426))**
187 Improves performance.
189 - **Add support for CiviCRM date formats in crmDate
190 ([21508](https://github.com/civicrm/civicrm-core/pull/21508))**
192 Adds support for CiviCRM date formats in crmDate.
194 - **Mailing Unsubscribe Form: Show if email is already unsubscribed
195 ([21174](https://github.com/civicrm/civicrm-core/pull/21174))**
197 Improves languaging on the Mailing Unsubscribe form regarding if the email is
198 already unsubscribed.
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))**
204 Improves usability by improving the Do Not SMS icon.
208 - **Add workflow template for 'recurring edit' workflow
209 ([21356](https://github.com/civicrm/civicrm-core/pull/21356))**
211 Adds workflow template for 'recurring edit' workflow
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))**
217 Improves user experience by reordering the contribution recur links.
219 - **View Contribution page, move the Done button to the last button, currently
221 ([21547](https://github.com/civicrm/civicrm-core/pull/21547))**
223 Reorders buttons on the Contribution page to improve user experience.
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))**
229 Improves labels for Invoice buttons.
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))**
237 Adds support for participant tokens in scheduled reminders.
241 - **CRM-19236 - Fix Flexmailer extension to support unicode urls
242 ([21597](https://github.com/civicrm/civicrm-core/pull/21597))**
244 Updates flexmailer click tracking to support unicode urls.
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))**
250 Installs flexmailer on new installs by default.
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))**
258 Use order api for new membership create in batch.
260 ### WordPress integration
262 - **Add deduping to Quick Add Dashboard Widget
263 ([256](https://github.com/civicrm/civicrm-wordpress/pull/256))**
265 Adds a simple deduplication check when submitting details via the "Quick Add
266 Contact to CiviCRM" Dashboard Widget.
268 ## <a name="bugs"></a>Bugs resolved
272 - **Full Month Names: avoid relying on the operating system's locale for
274 ([dev/translation#71](https://lab.civicrm.org/dev/translation/-/issues/71):
275 [21157](https://github.com/civicrm/civicrm-core/pull/21157))**
277 - **CRM_Utils_Date - Month and day names should match active locale
278 ([21569](https://github.com/civicrm/civicrm-core/pull/21569))**
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))**
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))**
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))**
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))**
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))**
308 Remove code to assign contact to the template in sendEmail.
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))**
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))**
321 Removes some no-longer-used token assigns & adds an upgrade message in case
322 people have templates still referring to them.
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))**
328 Token "filter" can be null so filter[0] doesn't exist.
330 - **Fix contact tokens class to load using apiv4
331 ([21780](https://github.com/civicrm/civicrm-core/pull/21780))**
333 - **Remove case token listing from contact email task
334 ([21787](https://github.com/civicrm/civicrm-core/pull/21787))**
336 - **Fix another instance of double token rendering
337 ([21788](https://github.com/civicrm/civicrm-core/pull/21788))**
339 - **Fix token regression - re-add support for empty tokens
340 ([21756](https://github.com/civicrm/civicrm-core/pull/21756))**
342 - **Fix event custom field tokens in scheduled reminders
343 ([21374](https://github.com/civicrm/civicrm-core/pull/21374))**
345 - **Reference token metadata internally fix custom tokens label bug
346 ([21767](https://github.com/civicrm/civicrm-core/pull/21767))**
348 - **Participant tokens - remove / replace unsupportable from badges (conversion
349 preparation) ([21520](https://github.com/civicrm/civicrm-core/pull/21520))**
351 - **Fix activity tokens
352 ([21489](https://github.com/civicrm/civicrm-core/pull/21489))**
354 - **Ensure TokenSmary::render returns an array
355 ([21461](https://github.com/civicrm/civicrm-core/pull/21461))**
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))**
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))**
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))**
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))**
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))**
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))**
388 Fix upgrade error with rpow installed.
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))**
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))**
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))**
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))**
407 - **Afform - fix loading custom fields for search displays
408 ([21792](https://github.com/civicrm/civicrm-core/pull/21792))**
410 - **Afform - Fix chainSelect to work with anonymous users
411 ([21759](https://github.com/civicrm/civicrm-core/pull/21759))**
413 - **Afform - Fix chain-select of country and address to work on SearchKit forms
414 ([21749](https://github.com/civicrm/civicrm-core/pull/21749))**
416 - **Afform - gracefully handle missing html files
417 ([21436](https://github.com/civicrm/civicrm-core/pull/21436))**
419 - **Afform - fix loading embedded blocks
420 ([21609](https://github.com/civicrm/civicrm-core/pull/21609))**
422 - **Afform - ensure default value data type matches input type
423 ([21643](https://github.com/civicrm/civicrm-core/pull/21643))**
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))**
429 - **APIv4 - Default select clause to exclude "Extra" fields
430 ([21438](https://github.com/civicrm/civicrm-core/pull/21438))**
432 - **APIv4 - Give every SQL expression a title
433 ([21691](https://github.com/civicrm/civicrm-core/pull/21691))**
435 - **APIv4 - Automatically coalesce potentially null field values in equations
436 ([21647](https://github.com/civicrm/civicrm-core/pull/21647))**
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))**
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))**
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))**
450 - **SearchKit - Style buttons for compatability with Shoreditch theme
451 ([21627](https://github.com/civicrm/civicrm-core/pull/21627))**
453 - **SearchKit - tweak button styles for shorditch
454 ([21726](https://github.com/civicrm/civicrm-core/pull/21726))**
456 Tweaks the "Tags" and "Add" buttons in SearchKit to look better in Shoreditch,
457 and tidies up some ts() calls.
459 - **SearchKit - A random stable genius
460 ([21586](https://github.com/civicrm/civicrm-core/pull/21586))**
462 Allows the pager, edit-in-place, and bulk updates to work properly with random
465 - **SearchKit - Fix in-place edit of relationships and dates
466 ([21533](https://github.com/civicrm/civicrm-core/pull/21533))**
468 - **SearchKit - Exclude custom fields from ON clause selector
469 ([21495](https://github.com/civicrm/civicrm-core/pull/21495))**
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.
475 - **SearchKit - Fix links to non-aggregage join fields
476 ([21482](https://github.com/civicrm/civicrm-core/pull/21482))**
478 - **SearchKit - Fix display of links in aggregated columns
479 ([21420](https://github.com/civicrm/civicrm-core/pull/21420))**
481 - **SearchKit - Fix alignment in table headers
482 ([21431](https://github.com/civicrm/civicrm-core/pull/21431))**
484 - **SearchKit - Correctly process filters passed through Afform from js
485 ([21485](https://github.com/civicrm/civicrm-core/pull/21485))**
487 - **SearchKit - Prevent race conditions in search display loading
488 ([21394](https://github.com/civicrm/civicrm-core/pull/21394))**
490 - **[search kit] Semicolon vs comma
491 ([21406](https://github.com/civicrm/civicrm-core/pull/21406))**
493 - **message_admin Style fixes
494 ([21712](https://github.com/civicrm/civicrm-core/pull/21712))**
496 - **message_admin - Fix quirk when using "Create Draft"
497 ([21700](https://github.com/civicrm/civicrm-core/pull/21700))**
499 - **MessageTemplate API - Fix saving of templates with workflow_name sans
500 workflow_id ([21694](https://github.com/civicrm/civicrm-core/pull/21694))**
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))**
506 - **UFMatch - E_NOTICE when nonexistent uf_id
507 ([21576](https://github.com/civicrm/civicrm-core/pull/21576))**
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))**
513 - **Setting::getItem - use deprecatedWarning instead of just logging
514 ([21625](https://github.com/civicrm/civicrm-core/pull/21625))**
516 - **Fix display of subscription frequency on 'Update Subscription' form
517 ([21469](https://github.com/civicrm/civicrm-core/pull/21469))**
519 - **Fix bug where log hook is ignored on custom field create
520 ([21557](https://github.com/civicrm/civicrm-core/pull/21557))**
522 - **Set default for civicrm_message_template.is_reserved
523 ([21651](https://github.com/civicrm/civicrm-core/pull/21651))**
525 - **CiviReport - avoid error in test environments when using built-in php web
526 server ([21560](https://github.com/civicrm/civicrm-core/pull/21560))**
528 - **Update SelfSvcUpdate.php
529 ([21679](https://github.com/civicrm/civicrm-core/pull/21679))**
531 Changes "cancel" text to read "cancel registration".
533 - **Import csv-Fix not importing extension in phones
534 ([20995](https://github.com/civicrm/civicrm-core/pull/20995))**
536 - **Missed message template updates from 5.39/5.40
537 ([21550](https://github.com/civicrm/civicrm-core/pull/21550))**
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))**
542 - **Fix syntax error on a ts() function call
543 ([21518](https://github.com/civicrm/civicrm-core/pull/21518))**
545 - **flushCaches should respect permitCacheFlushMode
546 ([21468](https://github.com/civicrm/civicrm-core/pull/21468))**
548 - **Smarty warning about missing contact subtype on New Individual
549 ([21410](https://github.com/civicrm/civicrm-core/pull/21410))**
551 - **Fix Upgrade step to ensure all fields are converted correctly as well
552 ([21396](https://github.com/civicrm/civicrm-core/pull/21396))**
554 - **Don't specify character set for civicrm_relationship_cache table
555 ([21382](https://github.com/civicrm/civicrm-core/pull/21382))**
557 - **Error about count() on New Email
558 ([21714](https://github.com/civicrm/civicrm-core/pull/21714))**
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))**
564 - **Smarty notices on Find Activities results page
565 ([21422](https://github.com/civicrm/civicrm-core/pull/21422))**
567 - **Smarty notice on Find Activities / Find Cases
568 ([21421](https://github.com/civicrm/civicrm-core/pull/21421))**
571 ([21503](https://github.com/civicrm/civicrm-core/pull/21503))**
573 - **Fix extra apostrophe added in 21636
574 ([21650](https://github.com/civicrm/civicrm-core/pull/21650))**
576 - **avoid back trace when importing preferred communication method
577 ([21433](https://github.com/civicrm/civicrm-core/pull/21433))**
579 - **Fixed issue with sending from do-not-reply@domain address
580 ([21455](https://github.com/civicrm/civicrm-core/pull/21455))**
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))**
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))**
590 - **ensure blank note date in UI defaults to current date.
591 ([21717](https://github.com/civicrm/civicrm-core/pull/21717))**
593 - **System status checks only shows 25 messages
594 ([21748](https://github.com/civicrm/civicrm-core/pull/21748))**
597 ([21723](https://github.com/civicrm/civicrm-core/pull/21723))**
600 ([21689](https://github.com/civicrm/civicrm-core/pull/21689))**
603 ([21782](https://github.com/civicrm/civicrm-core/pull/21782))**
606 ([21732](https://github.com/civicrm/civicrm-core/pull/21732))**
609 ([21702](https://github.com/civicrm/civicrm-core/pull/21702))**
612 ([21655](https://github.com/civicrm/civicrm-core/pull/21655))**
615 ([21636](https://github.com/civicrm/civicrm-core/pull/21636))**
618 ([21631](https://github.com/civicrm/civicrm-core/pull/21631))**
621 ([21579](https://github.com/civicrm/civicrm-core/pull/21579))**
623 - **Fix header e-notices
624 ([21633](https://github.com/civicrm/civicrm-core/pull/21633))**
627 ([21658](https://github.com/civicrm/civicrm-core/pull/21658))**
630 ([21659](https://github.com/civicrm/civicrm-core/pull/21659))**
633 ([21632](https://github.com/civicrm/civicrm-core/pull/21632))**
635 - **enotice fixes in fatal error template
636 ([21639](https://github.com/civicrm/civicrm-core/pull/21639))**
639 ([21543](https://github.com/civicrm/civicrm-core/pull/21543))**
641 - **tpl enotice fixes on extensions page
642 ([21545](https://github.com/civicrm/civicrm-core/pull/21545))**
645 ([21544](https://github.com/civicrm/civicrm-core/pull/21544))**
647 - **Tpl enotice fixes
648 ([21542](https://github.com/civicrm/civicrm-core/pull/21542))**
650 - **Enotice fixes in tpls
651 ([21541](https://github.com/civicrm/civicrm-core/pull/21541))**
654 ([21711](https://github.com/civicrm/civicrm-core/pull/21711))**
656 - **Another enotice fix
657 ([21682](https://github.com/civicrm/civicrm-core/pull/21682))**
660 ([21683](https://github.com/civicrm/civicrm-core/pull/21683))**
662 - **Another one bites the dust
663 ([21684](https://github.com/civicrm/civicrm-core/pull/21684))**
665 - **Fix possibly undefined $form variables in smarty templates
666 ([21735](https://github.com/civicrm/civicrm-core/pull/21735))**
668 - **Fix regression from enotice fixes
669 ([21743](https://github.com/civicrm/civicrm-core/pull/21743))**
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))**
678 - **Fix PHP notices in contributionrecur tpl
679 ([21526](https://github.com/civicrm/civicrm-core/pull/21526))**
681 - **Follow up on removing contributeMode from templates
682 ([21417](https://github.com/civicrm/civicrm-core/pull/21417))**
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))**
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))**
693 Only show contribution statuses on contribution form.
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))**
699 Adds a helper function for formatting.
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))**
707 Ensures that any money fields retrieved by getSubmittedValue are in a machine
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))**
715 - **ContributionRecur modified_date should update to current_timestamp on update
716 ([21472](https://github.com/civicrm/civicrm-core/pull/21472))**
718 - **ensure recur options are present on backend cc contribution form.
719 ([21577](https://github.com/civicrm/civicrm-core/pull/21577))**
723 - **Flush metadata cache on event edit
724 ([21740](https://github.com/civicrm/civicrm-core/pull/21740))**
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))**
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))**
735 - **Fix label for participant role
736 ([21656](https://github.com/civicrm/civicrm-core/pull/21656))**
740 - **flexmailer - Update `[CiviMail Draft]` prefix to match BAO behavior
741 ([21715](https://github.com/civicrm/civicrm-core/pull/21715))**
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))**
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))**
751 ### Drupal Integration
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))**
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))**
761 ### WordPress integration
763 - **Wordpress Profile User Creation Sign On (v2)
764 ([20807](https://github.com/civicrm/civicrm-core/pull/20807))**
766 Ensures user is logged in on profile submission.
768 ## <a name="misc"></a>Miscellany
770 - **MessageTemplate - Deprecate `valueName`. Emphasize `workflow`. Consolidate
771 converters. ([21657](https://github.com/civicrm/civicrm-core/pull/21657))**
773 - **Bump minimum upgradable version to 4.5.9
774 ([21408](https://github.com/civicrm/civicrm-core/pull/21408))**
776 - **Use Case form for case email action
777 ([21688](https://github.com/civicrm/civicrm-core/pull/21688))**
779 - **Contact tokens - use metadata & standardised rendering
780 ([21761](https://github.com/civicrm/civicrm-core/pull/21761))**
782 - **Remove call to legacy getTokenDetails
783 ([21786](https://github.com/civicrm/civicrm-core/pull/21786))**
785 - **Remove extraneous call to legacy token processing in sms task
786 ([21785](https://github.com/civicrm/civicrm-core/pull/21785))**
788 - **Remove stray token code
789 ([21763](https://github.com/civicrm/civicrm-core/pull/21763))**
791 - **Consolidate building of contact token list
792 ([21429](https://github.com/civicrm/civicrm-core/pull/21429))**
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))**
799 - **Add SqlFunction support in addWhere
800 ([21301](https://github.com/civicrm/civicrm-core/pull/21301))**
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))**
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))**
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))**
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))**
839 - **Afform - Add getters/setters to the AfformSubmitEvent class
840 ([21572](https://github.com/civicrm/civicrm-core/pull/21572))**
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))**
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))**
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))**
859 - **Add unique class to price field template
860 ([21484](https://github.com/civicrm/civicrm-core/pull/21484))**
862 - **Clean up UpdateBilling/UpdateSubscription/ContributionRecur to use getters
863 ([21538](https://github.com/civicrm/civicrm-core/pull/21538))**
865 - **[REF] Fix form to call this->setTitle()
866 ([21362](https://github.com/civicrm/civicrm-core/pull/21362))**
868 - **Update use of CRM_Utils_System::setTitle() for legacycustomsearches
869 ([21375](https://github.com/civicrm/civicrm-core/pull/21375))**
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))**
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))**
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))**
880 - **Simplify getRecurFromAddress
881 ([21613](https://github.com/civicrm/civicrm-core/pull/21613))**
883 - **Return another function to the email trait
884 ([21677](https://github.com/civicrm/civicrm-core/pull/21677))**
886 - **Rename test clas to reflect tested class name
887 ([21686](https://github.com/civicrm/civicrm-core/pull/21686))**
889 - **Remove unused function - convertDateFieldsToMySQL
890 ([21617](https://github.com/civicrm/civicrm-core/pull/21617))**
892 - **Remove all references to safe_mode, DEPRECATED as of PHP 5.3.0 and REMOVED
894 ([21594](https://github.com/civicrm/civicrm-core/pull/21594))**
896 - **Remove duplicate global declaration in civicrm.settings.php template
897 ([21409](https://github.com/civicrm/civicrm-core/pull/21409))**
899 - **Remove broken code
900 ([21602](https://github.com/civicrm/civicrm-core/pull/21602))**
902 - **Remove call to the dreaded replaceMultipleContributionTokens
903 ([21652](https://github.com/civicrm/civicrm-core/pull/21652))**
905 - **Remove handling for empty required field
906 ([21623](https://github.com/civicrm/civicrm-core/pull/21623))**
908 - **Remove error handling for core error being returned
909 ([21425](https://github.com/civicrm/civicrm-core/pull/21425))**
911 - **Remove over-copied function
912 ([21641](https://github.com/civicrm/civicrm-core/pull/21641))**
914 - **Remove unused paramter
915 ([21685](https://github.com/civicrm/civicrm-core/pull/21685))**
917 - **Remove deprecated code lines
918 ([21566](https://github.com/civicrm/civicrm-core/pull/21566))**
920 - **Remove workflow_id reference
921 ([21671](https://github.com/civicrm/civicrm-core/pull/21671))**
923 - **Remove now-silly function
924 ([21680](https://github.com/civicrm/civicrm-core/pull/21680))**
927 ([21497](https://github.com/civicrm/civicrm-core/pull/21497))**
929 - **Remove requirement to enter email address on Opt Out
930 ([21350](https://github.com/civicrm/civicrm-core/pull/21350))**
932 - **Remove requirement to enter email address on unsubscribe
933 ([21175](https://github.com/civicrm/civicrm-core/pull/21175))**
935 - **Remove deprecated input variable
936 ([21372](https://github.com/civicrm/civicrm-core/pull/21372))**
938 - **Remove unused private function
939 ([21371](https://github.com/civicrm/civicrm-core/pull/21371))**
941 - **Remove deprecated function
942 ([21361](https://github.com/civicrm/civicrm-core/pull/21361))**
944 - **Remove testing hack
945 ([21360](https://github.com/civicrm/civicrm-core/pull/21360))**
947 - **Remove deprecated function
948 ([21358](https://github.com/civicrm/civicrm-core/pull/21358))**
950 - **Removes duplicate replace on event fee amount.
951 ([21739](https://github.com/civicrm/civicrm-core/pull/21739))**
953 - **Remove function duplicated in error
954 ([21758](https://github.com/civicrm/civicrm-core/pull/21758))**
956 - **Remove now-obsolete getPseudoTokens
957 ([21760](https://github.com/civicrm/civicrm-core/pull/21760))**
959 - **APIv4 - Minor code cleanup to improve efficiency in
960 CreateApi4RequestSubscriber
961 ([21775](https://github.com/civicrm/civicrm-core/pull/21775))**
963 - **Function cleanup following move to non-static function
964 ([21693](https://github.com/civicrm/civicrm-core/pull/21693))**
966 - **[REF] Extract getRedirectUrl method
967 ([21687](https://github.com/civicrm/civicrm-core/pull/21687))**
969 - **[REF] Copy another email trait function back to the trait
970 ([21648](https://github.com/civicrm/civicrm-core/pull/21648))**
972 - **REF - Remove non-functional code from APIv3
973 ([21727](https://github.com/civicrm/civicrm-core/pull/21727))**
975 - **[REF] Do not set input['line_item'] pointlessly
976 ([21311](https://github.com/civicrm/civicrm-core/pull/21311))**
978 - **[REF] Use getSubmittedValue rather than passed values
979 ([21668](https://github.com/civicrm/civicrm-core/pull/21668))**
981 - **(REF) MessageTemplate - Reverse renderTemplate()<=>sendTemplate() call
982 ([21610](https://github.com/civicrm/civicrm-core/pull/21610))**
984 - **[REF] Separate contact tokens from 'tokenCompatSubscriber'
985 ([21626](https://github.com/civicrm/civicrm-core/pull/21626))**
987 - **[Ref] Function signature cleanup
988 ([21618](https://github.com/civicrm/civicrm-core/pull/21618))**
990 - **[REF] Return the sendEmail function to it's owner
991 ([21608](https://github.com/civicrm/civicrm-core/pull/21608))**
993 - **[REF] Remove illusion of looping
994 ([21554](https://github.com/civicrm/civicrm-core/pull/21554))**
996 - **[Ref] Extend email trait test, process more sanely
997 ([21553](https://github.com/civicrm/civicrm-core/pull/21553))**
999 - **[REF] Extract domain tokens to their own class
1000 ([21510](https://github.com/civicrm/civicrm-core/pull/21510))**
1002 - **[REF] add test & static array to participant values tokens
1003 ([21476](https://github.com/civicrm/civicrm-core/pull/21476))**
1005 - **[REF] simplify member_tokens
1006 ([21481](https://github.com/civicrm/civicrm-core/pull/21481))**
1008 - **[Ref] Cleanup on SelectValues::contributeTokens
1009 ([21465](https://github.com/civicrm/civicrm-core/pull/21465))**
1011 - **[Ref] Remove pass-by-reference
1012 ([21466](https://github.com/civicrm/civicrm-core/pull/21466))**
1014 - **[Ref] Remove unnecessary pass-by-reference
1015 ([21463](https://github.com/civicrm/civicrm-core/pull/21463))**
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))**
1021 - **[REF] Remove unused parameter
1022 ([21448](https://github.com/civicrm/civicrm-core/pull/21448))**
1024 - **[REF] Remove unused variable
1025 ([21451](https://github.com/civicrm/civicrm-core/pull/21451))**
1027 - **[REF] Extract code to load the contact in tokenCompat
1028 ([21450](https://github.com/civicrm/civicrm-core/pull/21450))**
1030 - **[REF] Extract function to getDomainTokens
1031 ([21416](https://github.com/civicrm/civicrm-core/pull/21416))**
1033 - **[REF] Remove cruft
1034 ([21418](https://github.com/civicrm/civicrm-core/pull/21418))**
1036 - **[REF] Extract code to get the from address for a recurring contribution.
1037 ([21357](https://github.com/civicrm/civicrm-core/pull/21357))**
1039 - **[Ref] Remove no-longer-used variables
1040 ([21459](https://github.com/civicrm/civicrm-core/pull/21459))**
1042 - **[REF] Update Frequenecy template assignments in UpdateBilling to be
1043 consistent with #21469
1044 ([21635](https://github.com/civicrm/civicrm-core/pull/21635))**
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))**
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))**
1054 - **[REF] stop passing form into createActivities
1055 ([21653](https://github.com/civicrm/civicrm-core/pull/21653))**
1057 - **[REF] Extract function for re-use
1058 ([21778](https://github.com/civicrm/civicrm-core/pull/21778))**
1060 - **[REF] Move getCustomFieldTokens to the tokens class, annotate more
1061 deprecations ([21660](https://github.com/civicrm/civicrm-core/pull/21660))**
1063 - **[REF] APIv4 - Use event instead of hardcoded list to resolve entityName to
1064 className ([21771](https://github.com/civicrm/civicrm-core/pull/21771))**
1066 - **Update contributors for Third Sector Design
1067 ([21516](https://github.com/civicrm/civicrm-core/pull/21516))**
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))**
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))**
1077 - **[NFC/Unit test] - Fix secondary issue with case token consistency test
1078 ([21369](https://github.com/civicrm/civicrm-core/pull/21369))**
1080 - **Authx: README: add note about CMS permissions
1081 ([21439](https://github.com/civicrm/civicrm-core/pull/21439))**
1083 - **[NFC] Add test for new case email url
1084 ([21766](https://github.com/civicrm/civicrm-core/pull/21766))**
1086 - **[NFC] Afform - Add array shape annotations to FormDataModel
1087 ([21765](https://github.com/civicrm/civicrm-core/pull/21765))**
1089 - **[NFC] Unit test fixes for the problem of quickform rules going missing
1090 ([21725](https://github.com/civicrm/civicrm-core/pull/21725))**
1092 - **NFC - Update code comments
1093 ([21675](https://github.com/civicrm/civicrm-core/pull/21675))**
1095 - **[NFC] Unit test for file-on-case
1096 ([21678](https://github.com/civicrm/civicrm-core/pull/21678))**
1098 - **[NFC] [test] minor cleanup in test
1099 ([21498](https://github.com/civicrm/civicrm-core/pull/21498))**
1101 - **[NFC] Fix Fatal error on php 8 due to mis matched function declaration
1102 ([21487](https://github.com/civicrm/civicrm-core/pull/21487))**
1104 - **[NFC] Put back email test without tokens and enhance a little
1105 ([21398](https://github.com/civicrm/civicrm-core/pull/21398))**
1107 - **[NFC] Extend send email test to cover for contact tokens being replaced
1108 ([21386](https://github.com/civicrm/civicrm-core/pull/21386))**
1110 - **[NFC] Add in type hints to template upgrade functions
1111 ([21390](https://github.com/civicrm/civicrm-core/pull/21390))**
1113 - **NFC Clarify description for ckeditor4 plugin
1114 ([21349](https://github.com/civicrm/civicrm-core/pull/21349))**
1116 - **Improve test readability, use schema labels for membership tokens
1117 ([21708](https://github.com/civicrm/civicrm-core/pull/21708))**
1119 - **Add test to cancel subscription form
1120 ([21588](https://github.com/civicrm/civicrm-core/pull/21588))**
1122 - **Fix test to test trait not deprecated function
1123 ([21373](https://github.com/civicrm/civicrm-core/pull/21373))**
1126 ([21585](https://github.com/civicrm/civicrm-core/pull/21585))**
1128 - **Tests - update to use postProcess
1129 ([21637](https://github.com/civicrm/civicrm-core/pull/21637))**
1131 - **Basic IDE cleanup on test class
1132 ([21661](https://github.com/civicrm/civicrm-core/pull/21661))**
1135 ([21662](https://github.com/civicrm/civicrm-core/pull/21662))**
1137 - **tests/events/*.php - Enforce general compliance with hook/event signatures
1138 ([21615](https://github.com/civicrm/civicrm-core/pull/21615))**
1140 - **HttpTestTrait - Allow one to easily authenticate subrequests
1141 ([21261](https://github.com/civicrm/civicrm-core/pull/21261))**
1143 - **Test regression fix
1144 ([21649](https://github.com/civicrm/civicrm-core/pull/21649))**
1146 - **Test tearDown fixes
1147 ([21548](https://github.com/civicrm/civicrm-core/pull/21548))**
1149 - **Convert more tests to call postProcess
1150 ([21628](https://github.com/civicrm/civicrm-core/pull/21628))**
1152 - **Stop testing for gender_id output that was described as 'legacy' years ago
1153 ([21558](https://github.com/civicrm/civicrm-core/pull/21558))**
1156 ([21622](https://github.com/civicrm/civicrm-core/pull/21622))**
1158 - **Fix test to use postProcess
1159 ([21630](https://github.com/civicrm/civicrm-core/pull/21630))**
1161 - **Test cleanup -convert to use postProcess
1162 ([21629](https://github.com/civicrm/civicrm-core/pull/21629))**
1164 - **Add test and fix for API4 failing to decode strings stored as HTML
1165 ([21549](https://github.com/civicrm/civicrm-core/pull/21549))**
1167 - **Initial test on event tokens
1168 ([21563](https://github.com/civicrm/civicrm-core/pull/21563))**
1170 - **Cleanup on test tear downs
1171 ([21552](https://github.com/civicrm/civicrm-core/pull/21552))**
1173 - **Attempt to fix test site 500 errors on activity pdf
1174 ([21504](https://github.com/civicrm/civicrm-core/pull/21504))**
1176 ## <a name="credits"></a>Credits
1178 This release was developed by the following code authors:
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
1192 Most authors also reviewed code for this release; in addition, the following
1193 reviewers contributed their comments:
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
1202 ## <a name="feedback"></a>Feedback
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`.