Merge pull request #23972 from colemanw/primaryLocationWrite
[civicrm-core.git] / release-notes / 5.44.0.md
CommitLineData
d76352a6
AH
1# CiviCRM 5.44.0
2
aabed68a 3Released December 1, 2021
d76352a6 4
aabed68a 5- **[Synopsis](#synopsis)**
d76352a6
AH
6- **[Features](#features)**
7- **[Bugs resolved](#bugs)**
8- **[Miscellany](#misc)**
9- **[Credits](#credits)**
aabed68a 10- **[Feedback](#feedback)**
a725e42f 11
aabed68a
AH
12## <a name="synopsis"></a>Synopsis
13
14| *Does this version...?* | |
15|:--------------------------------------------------------------- |:-------:|
a725e42f
AF
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** |
d76352a6
AH
23
24## <a name="features"></a>Features
25
d76352a6
AH
26### Core CiviCRM
27
a725e42f
AF
28- **APIv4 - Add managed entity functionality
29 ([21955](https://github.com/civicrm/civicrm-core/pull/21955))**
d76352a6 30
a725e42f 31 APIv4 support for managed entities.
d76352a6 32
a725e42f
AF
33- **APIv4 - Add 'match' param to save action
34 ([21857](https://github.com/civicrm/civicrm-core/pull/21857))**
d76352a6 35
a725e42f 36 Adds a 'match' param to the APIv4 save action.
d76352a6 37
a725e42f
AF
38- **RelationshipCache - Add case_id column
39 ([21845](https://github.com/civicrm/civicrm-core/pull/21845))**
d76352a6 40
a725e42f 41 Makes it possible to show case relationships in SearchKit.
d76352a6 42
a725e42f
AF
43- **SearchKit - Support download formats xlsx, ods, pdf
44 ([21351](https://github.com/civicrm/civicrm-core/pull/21351))**
d76352a6 45
a725e42f 46 Extends download format support for SearchKit to include xlsx, ods and pdf.
d76352a6 47
a725e42f 48- **SearchKit - default displays and ACL-aware links
3970411f
AH
49 ([21929](https://github.com/civicrm/civicrm-core/pull/21929) and
50 [22108](https://github.com/civicrm/civicrm-core/pull/22108))**
d76352a6 51
a725e42f
AF
52 Gives every SavedSearch an auto-generated table display, and makes use
53 of it in the UI to more conveniently view or embed a saved search without
54 needing to manually create a display. In the UI it's referred to as the
55 "Search results table" to emphasize the fact that it's the same table as
56 shown on the "compose search" screen, and is not configurable like other
57 displays.
d76352a6 58
a725e42f
AF
59- **SearchKit server-side rendering
60 ([21820](https://github.com/civicrm/civicrm-core/pull/21820))**
d76352a6 61
a725e42f
AF
62 Improves SearchKit by doing more of the rendering work server-side. This
63 allows for more nuanced permission checks of actions, better rendering of
64 spreadsheets, and opens the door for advanced token formatting.
d76352a6 65
a725e42f
AF
66- **User experience improvement - CiviCRM Manage Events page, expand the Find
67 Events criteria by default
68 ([21953](https://github.com/civicrm/civicrm-core/pull/21953))**
d76352a6 69
a725e42f
AF
70 Improves user experience on the Manage Events page by making the Find Events
71 Criteria open by default.
d76352a6 72
a725e42f
AF
73- **add 'minute' as recurring unit
74 ([21893](https://github.com/civicrm/civicrm-core/pull/21893))**
d76352a6 75
a725e42f 76 Adds minute as a recurring unit option.
d76352a6 77
a725e42f 78 ### Wordpress Integration
d76352a6 79
a725e42f
AF
80- **Introduce "Shortcode Display Mode" setting and functionality
81 ([258](https://github.com/civicrm/civicrm-wordpress/pull/258))**
d76352a6 82
a725e42f 83 Introduces a new metabox with a "Shortcode Display Mode" setting.
d76352a6 84
a725e42f 85## <a name="bugs"></a>Bugs resolved
d76352a6 86
a725e42f 87### Core CiviCRM
d76352a6 88
a725e42f
AF
89- **DB upgrade fails for 5.15->5.36
90 ([dev/core#2550](https://lab.civicrm.org/dev/core/-/issues/2550):
91 [21997](https://github.com/civicrm/civicrm-core/pull/21997))**
d76352a6 92
a725e42f
AF
93- **Meta - token usage 5.43 standardisation effort (Work Towards
94 [dev/core#2864](https://lab.civicrm.org/dev/core/-/issues/2864):
95 [21816](https://github.com/civicrm/civicrm-core/pull/21816) and
96 [21847](https://github.com/civicrm/civicrm-core/pull/21847)**
d76352a6 97
a725e42f
AF
98 Removes call to getTokenDetails from Contribute pdf letter and standardizes
99 two pledge templates to use tokens.
d76352a6 100
a725e42f
AF
101- **Message about dependent extensions when installing an extension uses "key"
102 instead of label
103 ([dev/core#2876](https://lab.civicrm.org/dev/core/-/issues/2876):
104 [21852](https://github.com/civicrm/civicrm-core/pull/21852))**
d76352a6 105
a725e42f
AF
106- **Emails can't resolve tokens for non-contact components for recipients added
107 to the list after email form was opened
108 ([dev/core#2895](https://lab.civicrm.org/dev/core/-/issues/2895):
109 [21815](https://github.com/civicrm/civicrm-core/pull/21815))**
110
111- **Remove reference to CiviCRM forum in HTTP error message
112 ([dev/core#2903](https://lab.civicrm.org/dev/core/-/issues/2903):
113 [21844](https://github.com/civicrm/civicrm-core/pull/21844))**
114
115- **Repair "Norwegian Bokmål"
116 ([dev/core#2909](https://lab.civicrm.org/dev/core/-/issues/2909):
117 [21974](https://github.com/civicrm/civicrm-core/pull/21974) and
118 [21813](https://github.com/civicrm/civicrm-core/pull/21813))**
119
120- **APIv4 - Add backticks around fields in join criteria
121 ([22051](https://github.com/civicrm/civicrm-core/pull/22051))**
d76352a6 122
a725e42f
AF
123- **APIv4 - Fix performance drag caused by getInfoItem calling the API
124 ([21920](https://github.com/civicrm/civicrm-core/pull/21920))**
d76352a6 125
a725e42f
AF
126- **SearchKit - Fix permission to access default display and download
127 spreadsheets ([21977](https://github.com/civicrm/civicrm-core/pull/21977))**
d76352a6 128
a725e42f
AF
129- **SearchKit - Fix incorrect pager count when using filters
130 ([21967](https://github.com/civicrm/civicrm-core/pull/21967))**
d76352a6 131
a725e42f
AF
132- **SearchKit - Conditional style rules for rows/cells
133 ([21947](https://github.com/civicrm/civicrm-core/pull/21947))**
d76352a6 134
a725e42f
AF
135- **Use null variables rather than isset in Core_Block
136 ([21957](https://github.com/civicrm/civicrm-core/pull/21957))**
d76352a6 137
a725e42f
AF
138- **GroupContactCache: Drop temp table *after* releasing lock
139 ([21942](https://github.com/civicrm/civicrm-core/pull/21942))**
d76352a6 140
a725e42f
AF
141- **Ensure no_licence is assigned for drop.tpl
142 ([21934](https://github.com/civicrm/civicrm-core/pull/21934))**
d76352a6 143
a725e42f
AF
144- **Handling for intermittent Im->getfields error
145 ([21952](https://github.com/civicrm/civicrm-core/pull/21952))**
d76352a6 146
a725e42f
AF
147- **Avoid hardcoded text in error strings; make translatable
148 ([21948](https://github.com/civicrm/civicrm-core/pull/21948))**
d76352a6 149
a725e42f
AF
150- **Don't hardcode Period Type in Manage Premiums template.
151 ([21954](https://github.com/civicrm/civicrm-core/pull/21954))**
d76352a6 152
a725e42f
AF
153- **Avoid harcoded text in setStatus calls; make translatable
154 ([21949](https://github.com/civicrm/civicrm-core/pull/21949))**
d76352a6 155
a725e42f
AF
156- **Make miscellaneous strings translatable
157 ([21950](https://github.com/civicrm/civicrm-core/pull/21950))**
d76352a6 158
a725e42f
AF
159- **Make hardcoded labels passed to setTitle translatable
160 ([21917](https://github.com/civicrm/civicrm-core/pull/21917))**
d76352a6 161
a725e42f
AF
162- **Remove use of hardcoded strings in Dedupe templates
163 ([21843](https://github.com/civicrm/civicrm-core/pull/21843))**
d76352a6 164
a725e42f
AF
165- **Makes hardcoded placeholder strings translatable
166 ([21842](https://github.com/civicrm/civicrm-core/pull/21842))**
d76352a6 167
a725e42f
AF
168- **Make hardcoded strings translatable.
169 ([21810](https://github.com/civicrm/civicrm-core/pull/21810))**
d76352a6 170
a725e42f
AF
171- **Make error message translatable - remove tag tasks.
172 ([21904](https://github.com/civicrm/civicrm-core/pull/21904))**
d76352a6 173
a725e42f
AF
174- **Make error messages translatable.
175 ([21905](https://github.com/civicrm/civicrm-core/pull/21905))**
d76352a6 176
a725e42f
AF
177- **Ensure communityMessages is assigned to the template.
178 ([21951](https://github.com/civicrm/civicrm-core/pull/21951))**
d76352a6 179
a725e42f
AF
180- **Accessibility: Fix label associations for DepupeFind template.
181 ([21946](https://github.com/civicrm/civicrm-core/pull/21946))**
d76352a6 182
3970411f
AH
183- **Searchkit: can't use HAVING
184 ([dev/core#2954](https://lab.civicrm.org/dev/core/-/issues/2954):
185 [22130](https://github.com/civicrm/civicrm-core/pull/22130) and
186 [dev/report#83](https://lab.civicrm.org/dev/report/-/issues/83):
187 [22170](https://github.com/civicrm/civicrm-core/pull/22170))**
188
189 This resolves a 5.43.0 regression in the SearchKit UI where the `HAVING`
190 clause could not handle functions.
191
a725e42f
AF
192- **Updates centering of text and tables for Workflow Message Templates
193 ([21888](https://github.com/civicrm/civicrm-core/pull/21888),
194 [21890](https://github.com/civicrm/civicrm-core/pull/21890),
195 [21889](https://github.com/civicrm/civicrm-core/pull/21889),
196 [21861](https://github.com/civicrm/civicrm-core/pull/21861),
197 [21887](https://github.com/civicrm/civicrm-core/pull/21887),
198 [21860](https://github.com/civicrm/civicrm-core/pull/21860),
199 [21886](https://github.com/civicrm/civicrm-core/pull/21886),
200 [21859](https://github.com/civicrm/civicrm-core/pull/21859),
201 [21883](https://github.com/civicrm/civicrm-core/pull/21883),
202 [21881](https://github.com/civicrm/civicrm-core/pull/21881),
203 [21885](https://github.com/civicrm/civicrm-core/pull/21885),
204 [21862](https://github.com/civicrm/civicrm-core/pull/21862),
205 [21884](https://github.com/civicrm/civicrm-core/pull/21884),
206 [21882](https://github.com/civicrm/civicrm-core/pull/21882),
207 [21871](https://github.com/civicrm/civicrm-core/pull/21871),
208 [21879](https://github.com/civicrm/civicrm-core/pull/21879),
209 [21870](https://github.com/civicrm/civicrm-core/pull/21870),
210 [21880](https://github.com/civicrm/civicrm-core/pull/21880),
211 [21869](https://github.com/civicrm/civicrm-core/pull/21869),
212 [21877](https://github.com/civicrm/civicrm-core/pull/21877),
213 [21872](https://github.com/civicrm/civicrm-core/pull/21872),
214 [21875](https://github.com/civicrm/civicrm-core/pull/21875),
215 [21873](https://github.com/civicrm/civicrm-core/pull/21873),
216 [21874](https://github.com/civicrm/civicrm-core/pull/21874),
217 [21876](https://github.com/civicrm/civicrm-core/pull/21876),
218 [21878](https://github.com/civicrm/civicrm-core/pull/21878),
219 [21850](https://github.com/civicrm/civicrm-core/pull/21850) and
220 [21863](https://github.com/civicrm/civicrm-core/pull/21863))**
d76352a6 221
a725e42f
AF
222- **Add help tip to comment block
223 ([21902](https://github.com/civicrm/civicrm-core/pull/21902))**
d76352a6 224
a725e42f
AF
225- **Use HTML_Purifier from composer and rely on autoloader
226 ([334](https://github.com/civicrm/civicrm-packages/pull/334))**
d76352a6 227
a725e42f
AF
228- **Use HTMLPurifier from composer instead of packages
229 ([21620](https://github.com/civicrm/civicrm-core/pull/21620))**
d76352a6 230
a725e42f
AF
231- **Change DAO's that have `'default' => 'NULL'` into `'default' => NULL`,
232 i.e. true NULL ([21573](https://github.com/civicrm/civicrm-core/pull/21573))**
d76352a6 233
a725e42f
AF
234- **Correct CMS name on profile UF group types
235 ([21900](https://github.com/civicrm/civicrm-core/pull/21900))**
d76352a6 236
a725e42f
AF
237- **Prevent Undefined Index PHP notices with Afform entity metadata without an
238 icon ([21898](https://github.com/civicrm/civicrm-core/pull/21898))**
d76352a6 239
a725e42f
AF
240- **Export - Fix undefined tpl var
241 ([21891](https://github.com/civicrm/civicrm-core/pull/21891))**
d76352a6 242
a725e42f 243- **typo fixes ([21868](https://github.com/civicrm/civicrm-core/pull/21868))**
d76352a6 244
a725e42f
AF
245- **Add alt attribute to image on PCPInfo template.
246 ([21808](https://github.com/civicrm/civicrm-core/pull/21808))**
d76352a6 247
a725e42f
AF
248- **Miscellaneous spelling fixes
249 ([21918](https://github.com/civicrm/civicrm-core/pull/21918))**
d76352a6 250
a725e42f
AF
251- **Fix unreplaced template vars in civicrm.settings.php when using wp-cli
252 installer ([257](https://github.com/civicrm/civicrm-wordpress/pull/257))**
d76352a6 253
a725e42f
AF
254- **$sid doesn't get set on upgrade runFinish
255 ([21798](https://github.com/civicrm/civicrm-core/pull/21798))**
d76352a6 256
a725e42f
AF
257- **Do not find references for empty values
258 ([21799](https://github.com/civicrm/civicrm-core/pull/21799))**
d76352a6 259
a725e42f
AF
260- **Fix hookTokens to be clearable outside the class
261 ([21836](https://github.com/civicrm/civicrm-core/pull/21836))**
d76352a6 262
a725e42f
AF
263- **Use SVG for 'Empowered by' logo
264 ([21841](https://github.com/civicrm/civicrm-core/pull/21841))**
d76352a6 265
a725e42f 266### CiviCampaign
d76352a6 267
a725e42f
AF
268- **Stop flushing caches on enable civiCampaign
269 ([21833](https://github.com/civicrm/civicrm-core/pull/21833))**
d76352a6 270
a725e42f 271### CiviContribute
d76352a6 272
a725e42f
AF
273- **Financial record processing - extract to new class to faciliate cleanup
274 (Work Towards [dev/core#2715](https://lab.civicrm.org/dev/core/-/issues/2715):
275 [21391](https://github.com/civicrm/civicrm-core/pull/21391))**
d76352a6 276
a725e42f 277 Removes the mystery `self::_trxns` property.
d76352a6 278
a725e42f
AF
279- **Add financial validation check (to the extent we can)
280 ([21848](https://github.com/civicrm/civicrm-core/pull/21848))**
d76352a6 281
a725e42f 282### CiviEvent
d76352a6 283
a725e42f
AF
284- **ensure events with single quotes can be share via social
285 ([21811](https://github.com/civicrm/civicrm-core/pull/21811))**
d76352a6 286
a725e42f
AF
287- **event token values missing from pdf export from participant search
288 ([dev/core#2947](https://lab.civicrm.org/dev/core/-/issues/2947):
289 [22046](https://github.com/civicrm/civicrm-core/pull/22046))**
d76352a6 290
a725e42f 291### CiviMail
d76352a6 292
a725e42f
AF
293- **Handle checking smartgroups when generating list of groups to unsubscribe
294 ([21176](https://github.com/civicrm/civicrm-core/pull/21176))**
d76352a6 295
a725e42f
AF
296- **CiviCRM APIv3, Improve API Exception error message when trying to subscribe
297 to a non-Public Mailing Group
298 ([21697](https://github.com/civicrm/civicrm-core/pull/21697))**
d76352a6 299
3970411f
AH
300- **OAUTH2 account creation broken
301 ([dev/mail#105](https://lab.civicrm.org/dev/mail/-/issues/105):
302 [22169](https://github.com/civicrm/civicrm-core/pull/22169))**
303
57fc82d4
TO
304### CiviMember
305
306- **Membership status update breaks if override is removed
307 ([dev/core#2974](https://lab.civicrm.org/dev/core/-/issues/2974):
308 [22182](https://github.com/civicrm/civicrm-core/pull/22182))**
309
a725e42f 310### Drupal Integration
d76352a6 311
a725e42f
AF
312- **"Your browser session has expired and we are unable to complete your form
313 submission" on all D9.2 anonymous sessions
314 ([dev/drupal#169](https://lab.civicrm.org/dev/drupal/-/issues/169):
315 [22071](https://github.com/civicrm/civicrm-core/pull/22071))**
d76352a6 316
a725e42f
AF
317- **Prevent autoload conflicts if HTML_Purifier is already in Drupal libraries
318 ([649](https://github.com/civicrm/civicrm-drupal/pull/649))**
d76352a6 319
a725e42f 320### Joomla Integration
d76352a6 321
a725e42f
AF
322- **Fatal error on visiting CiviCRM paths having `task` query param in it twice
323 ([dev/joomla#36](https://lab.civicrm.org/dev/joomla/-/issues/36):
324 [21922](https://github.com/civicrm/civicrm-core/pull/21922))**
d76352a6 325
a725e42f 326### WordPress Integration
d76352a6 327
a725e42f
AF
328- **Displaying map for contact address causes WP error
329 ([dev/core#2942](https://lab.civicrm.org/dev/core/-/issues/2942):
330 [21980](https://github.com/civicrm/civicrm-core/pull/21980))**
d76352a6 331
a725e42f
AF
332- **Resources are not loaded for nested shortcodes - breaks usage
333 with Divi, Avada, etc.
334 ([dev/wordpress#105](https://lab.civicrm.org/dev/wordpress/-/issues/105):
335 [259](https://github.com/civicrm/civicrm-wordpress/pull/259))**
d76352a6 336
a725e42f 337## <a name="misc"></a>Miscellany
d76352a6 338
a725e42f
AF
339- **Switch replaceGreetingTokens over
340 ([21790](https://github.com/civicrm/civicrm-core/pull/21790))**
d76352a6 341
a725e42f
AF
342- **Simplify usage of getting domain from email
343 ([21925](https://github.com/civicrm/civicrm-core/pull/21925))**
d76352a6 344
a725e42f
AF
345- **AllCoreTables - Allow virtual entities to share a DAO class
346 ([21853](https://github.com/civicrm/civicrm-core/pull/21853))**
d76352a6 347
a725e42f
AF
348- **Restrict "Oops" to administrative errors
349 ([21838](https://github.com/civicrm/civicrm-core/pull/21838))**
d76352a6 350
a725e42f
AF
351- **Update docblock for alterPaymentProcessorParams because rawParams might be
352 a payment propertyBag
353 ([21897](https://github.com/civicrm/civicrm-core/pull/21897))**
d76352a6 354
a725e42f
AF
355- **Fix cleanup on test, also NFC cleanup
356 ([21910](https://github.com/civicrm/civicrm-core/pull/21910))**
d76352a6 357
a725e42f
AF
358- **Fix unreplaced template vars in civicrm.settings.php when using legacy
359 installer ([21692](https://github.com/civicrm/civicrm-core/pull/21692))**
d76352a6 360
a725e42f
AF
361- **Remove use of spacer.gif img elements in CRM_Utils_Weight
362 ([21807](https://github.com/civicrm/civicrm-core/pull/21807))**
d76352a6 363
a725e42f
AF
364- **Remove reference to CiviCRM forum in HTTP error message
365 ([21840](https://github.com/civicrm/civicrm-core/pull/21840))**
d76352a6 366
a725e42f
AF
367- **Remove unnecessary pass-by-reference
368 ([21903](https://github.com/civicrm/civicrm-core/pull/21903))**
d76352a6 369
a725e42f
AF
370- **Remove unused function
371 ([21928](https://github.com/civicrm/civicrm-core/pull/21928))**
d76352a6 372
a725e42f
AF
373- **Remove unused function from GroupContactCache
374 ([21938](https://github.com/civicrm/civicrm-core/pull/21938))**
d76352a6 375
a725e42f
AF
376- **Remove "Connections" from navigation menu
377 ([21930](https://github.com/civicrm/civicrm-core/pull/21930))**
d76352a6 378
a725e42f
AF
379- **Remove calls to CRM_Utils_Token::getDomainTokenReplacement
380 ([21964](https://github.com/civicrm/civicrm-core/pull/21964))**
d76352a6 381
a725e42f
AF
382- **Remove remaining usages of contact & domain values in participant templates
383 ([21963](https://github.com/civicrm/civicrm-core/pull/21963))**
d76352a6 384
a725e42f
AF
385- **Remove call to getTokenDetails
386 ([21972](https://github.com/civicrm/civicrm-core/pull/21972))**
d76352a6 387
a725e42f
AF
388- **Remove another call to getTokenDetails
389 ([21794](https://github.com/civicrm/civicrm-core/pull/21794))**
d76352a6 390
a725e42f
AF
391- **Add in 5.43.1 and 5.43.2 Release Notes
392 ([22085](https://github.com/civicrm/civicrm-core/pull/22085))**
d76352a6 393
a725e42f
AF
394- **[REF] Parameter simplification
395 ([21804](https://github.com/civicrm/civicrm-core/pull/21804))**
d76352a6 396
a725e42f
AF
397- **[Ref] Make functions private to protect them
398 ([21915](https://github.com/civicrm/civicrm-core/pull/21915))**
d76352a6 399
a725e42f
AF
400- **[REF] Move another function to the FinancialProcessor
401 ([21914](https://github.com/civicrm/civicrm-core/pull/21914))**
d76352a6 402
a725e42f
AF
403- **[REF] Update date formatting in the html template to match the text
404 template and regenerate civicrm_generated file
405 ([21961](https://github.com/civicrm/civicrm-core/pull/21961))**
d76352a6 406
a725e42f
AF
407- **[REF] Regenerate generated civicrm file after recent template updates
408 ([21970](https://github.com/civicrm/civicrm-core/pull/21970))**
d76352a6 409
a725e42f
AF
410- **[REF] Skip testCutesyTokenData on php8 for the moment
411 ([22043](https://github.com/civicrm/civicrm-core/pull/22043))**
d76352a6 412
a725e42f
AF
413- **[REF] Upgrade CKEditor to 4.17
414 ([22092](https://github.com/civicrm/civicrm-core/pull/22092))**
d76352a6 415
a725e42f
AF
416- **[REF] CRM_Core_Menu - Fix syntax, undefined variables, unused code,
417 pass-by-ref ([21926](https://github.com/civicrm/civicrm-core/pull/21926))**
d76352a6 418
a725e42f
AF
419- **Improve tests around the Order.create API and membership
420 ([21892](https://github.com/civicrm/civicrm-core/pull/21892))**
d76352a6 421
a725e42f
AF
422- **Convert more tests to use full form flow
423 ([21931](https://github.com/civicrm/civicrm-core/pull/21931))**
d76352a6 424
a725e42f
AF
425- **Fix test to use postProcess flow
426 ([21849](https://github.com/civicrm/civicrm-core/pull/21849))**
d76352a6 427
a725e42f
AF
428- **Preparatory cleanup in test class
429 ([21846](https://github.com/civicrm/civicrm-core/pull/21846))**
d76352a6 430
a725e42f
AF
431- **Add test for selvSvcUpdate, switch to using tokens
432 ([21937](https://github.com/civicrm/civicrm-core/pull/21937))**
d76352a6 433
a725e42f
AF
434- **Add test for selvsvctransfer, remove use of `$contact` from template
435 ([21855](https://github.com/civicrm/civicrm-core/pull/21855))**
d76352a6 436
a725e42f
AF
437- **[NFC] [Tests] remove code smell - unnecessary double quotes
438 ([21932](https://github.com/civicrm/civicrm-core/pull/21932))**
d76352a6 439
a725e42f
AF
440- **[NFC] [REF] Test class cleanup
441 ([21921](https://github.com/civicrm/civicrm-core/pull/21921))**
d76352a6 442
a725e42f
AF
443- **(NFC) Fix quote style for valid HTML - notifications.tpl
444 ([21791](https://github.com/civicrm/civicrm-core/pull/21791))**
d76352a6 445
a725e42f
AF
446- **Fix a few more tests to use a more realistic flow
447 ([21907](https://github.com/civicrm/civicrm-core/pull/21907))**
d76352a6 448
a725e42f
AF
449- **Fix more tests to use the full form flow
450 ([21906](https://github.com/civicrm/civicrm-core/pull/21906))**
d76352a6
AH
451
452## <a name="credits"></a>Credits
453
454This release was developed by the following code authors:
455
a725e42f
AF
456AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Francis Whittle,
457Justin Freeman; BrightMinded Ltd - Bradley Taylor; Christian Wach;
458CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Dave D;
459Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit;
460Jens Schuppe; JMA Consulting - Seamus Lee; Maria; Megaphone Technology
461Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive
462Technology Project - Jamie McClelland; Skvare - Sunil Pawar;
463Wikimedia Foundation - Eileen McNaughton
d76352a6
AH
464
465Most authors also reviewed code for this release; in addition, the following
466reviewers contributed their comments:
467
a725e42f
AF
468Artful Robot - Rich Lott; Australian Greens - John Twyman;
469Coop SymbioTIC - Mathieu Lutfy; Fuzion - Peter Davis;
470JMA Consulting - Monish Deb; Semper IT - Karin Gerritsen;
471Tadpole Collective - Kevin Cristiano; Third Sector Design - Kurund Jalmi
aabed68a
AH
472
473## <a name="feedback"></a>Feedback
474
475These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
476to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
477and contact `@agh1`.