Merge pull request #23493 from eileenmcnaughton/import_rel
[civicrm-core.git] / release-notes / 5.50.0.md
1 # CiviCRM 5.50.0
2
3 Released June 1, 2022
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? | no |
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 - **System Check - Add a reminder about CIVICRM_SIGN_KEYS.
29 ([23224](https://github.com/civicrm/civicrm-core/pull/23224))**
30
31 Adds a system status check regarding CIVICRM_SIGN_KEYS.
32
33 - **Restrict allowed uploads - contact image
34 ([23147](https://github.com/civicrm/civicrm-core/pull/23147))**
35
36 Restrict file types allowed for the contact image field.
37
38 - **Add tracking table for import jobs
39 ([dev/core#1307](https://lab.civicrm.org/dev/core/-/issues/1307):
40 [23199](https://github.com/civicrm/civicrm-core/pull/23199) and
41 [23245](https://github.com/civicrm/civicrm-core/pull/23245))**
42
43 Adds a table for the purpose of tracking user jobs (imports) and associated
44 temp tables and starts tracking the submittedValues and data source with it.
45
46 - **CustomFields - Improve metadata about which custom groups belong to which
47 entities ([23336](https://github.com/civicrm/civicrm-core/pull/23336))**
48
49 Makes the relationship between Custom Field Groups, entity types and subtypes
50 discoverable via APIv4 metadata.
51
52 - **Api4 - minor fixes and updates
53 ([23310](https://github.com/civicrm/civicrm-core/pull/23310))**
54
55 A few minor tweaks to APIv4 to improve working with extensions that have
56 virtual entities.
57
58 - **APIv4 - Add NOW() date function
59 ([23378](https://github.com/civicrm/civicrm-core/pull/23378))**
60
61 Adds a function for NOW to APIv4 which returns the full date+time, and
62 distinguishes it from CURDATE which just returns the date part.
63
64 - **APIv4 - Add MONTH sql function
65 ([23377](https://github.com/civicrm/civicrm-core/pull/23377))**
66
67 Adds the MONTH function to APIv4 & SearchKit, which enables e.g. filtering
68 birthdays by month.
69
70 - **APIv4 - Add `is_active` extra field to Domain entity
71 ([22159](https://github.com/civicrm/civicrm-core/pull/22159))**
72
73 Adds a new calculated field to APIv4 making it easier to get the current
74 active domain.
75
76 - **APIv4 - Add `Managed::reconcile` action.
77 ([23243](https://github.com/civicrm/civicrm-core/pull/23243))**
78
79 Adds APIv4 wrapper around ManagedEntities->reconcile();
80
81 - **Implement countFetched() and countMatched() on api4 results.
82 ([22115](https://github.com/civicrm/civicrm-core/pull/22115))**
83
84 Provides clearer methods for finding out how many API4 results you've got.
85
86 - **SearchKit - Add data segmentation functionality
87 ([23059](https://github.com/civicrm/civicrm-core/pull/23059))**
88
89 Creates virtual fields based on flexible segmentation criteria.
90
91 - **SearchKit - Add date pseudo-fields
92 ([23381](https://github.com/civicrm/civicrm-core/pull/23381))**
93
94 Exposes date pseudo-fields to SearchKit.
95
96 - **make survey title available in form builder
97 ([23322](https://github.com/civicrm/civicrm-core/pull/23322))**
98
99 Makes the Survey title field available in Afform.
100
101 - **Afform - Dispatch event to alter admin metadata; provide mixin
102 ([23303](https://github.com/civicrm/civicrm-core/pull/23303))**
103
104 Makes Form-Builder more extensible by allowing extensions to add to the list
105 of available entities, elements, input types, styles, etc.
106
107 - **Afform - Improve dragging into dropzones
108 ([23239](https://github.com/civicrm/civicrm-core/pull/23239))**
109
110 Improves the drag-n-drop UX in Afform when composing complex layouts.
111
112 - **AfformGui - Optional reset button for search and submit forms
113 ([dev/core#3430](https://lab.civicrm.org/dev/core/-/issues/3430):
114 [23334](https://github.com/civicrm/civicrm-core/pull/23334))**
115
116 Adds a "reset" button for search forms.
117
118 - **Add icons for SavedSearch and SearchDisplay entities
119 ([23149](https://github.com/civicrm/civicrm-core/pull/23149))**
120
121 Improves user experience by adding icons for Saved Search and Search Display
122 entities.
123
124 - **Simplify and improve performance of query to insert updated cache
125 ([21943](https://github.com/civicrm/civicrm-core/pull/21943))**
126
127 Caching performance improvement.
128
129 ### CiviCampaign
130
131 - **Make links to sign a petition easily accessible on the form.
132 ([23316](https://github.com/civicrm/civicrm-core/pull/23316))**
133
134 Adds links to the bottom of the petition edit form so users can more easily
135 publicize their petition.
136
137 ### CiviCase
138
139 - **Activity Type + Activity Status + Case Type not being Combined Correctly in
140 Search Builder
141 ([dev/core#3249](https://lab.civicrm.org/dev/core/-/issues/3249):
142 [23313](https://github.com/civicrm/civicrm-core/pull/23313))**
143
144 Makes casetype a managed entity.
145
146 ### CiviContribute
147
148 - **Define return parameters for doPayment
149 ([dev/financial#141](https://lab.civicrm.org/dev/financial/-/issues/141):
150 [22683](https://github.com/civicrm/civicrm-core/pull/22683))**
151
152 Updates return parameters on all payment processors to match expected results.
153
154 ### Drupal Integration
155
156 - **Extend command drush civicrm-ext-list for Drupal 8
157 ([72](https://github.com/civicrm/civicrm-drupal-8/pull/72))**
158
159 Extends the `drush civicrm-ext-list` command to work for drupal 8.
160
161 ### Wordpress Integration
162
163 - **WordPress - Display site-theme/decorations on error screens
164 ([22805](https://github.com/civicrm/civicrm-core/pull/22805))**
165
166 Improve error screen user experience by displaying site theme/decorations.
167
168 ## <a name="bugs"></a>Bugs resolved
169
170 ### Core CiviCRM
171
172 - **Improve validation of start and end dates for events, contribution pages and
173 more (Work Towards
174 [dev/core#2846](https://lab.civicrm.org/dev/core/-/issues/2846):
175 [21513](https://github.com/civicrm/civicrm-core/pull/21513))**
176
177 Applies form-level validation to start and end dates.
178
179 - **Report Filter Statistics don't show filters with value of "0"
180 ([dev/core#3164](https://lab.civicrm.org/dev/core/-/issues/3164):
181 [23191](https://github.com/civicrm/civicrm-core/pull/23191))**
182
183 - **Manage Extensions - Hide nag for core exts
184 ([dev/core#3171](https://lab.civicrm.org/dev/core/-/issues/3171):
185 [23204](https://github.com/civicrm/civicrm-core/pull/23204))**
186
187 - **AuthX: Breaks sites when Basic Auth is enabled
188 ([dev/core#3416](https://lab.civicrm.org/dev/core/-/issues/3416):
189 [22837](https://github.com/civicrm/civicrm-core/pull/22837))**
190
191 - **Save button on API4 explorer is misleading
192 ([dev/core#3155](https://lab.civicrm.org/dev/core/-/issues/3155):
193 [23144](https://github.com/civicrm/civicrm-core/pull/23144))**
194
195 - **APIv4 - Support pseudoconstant suffixes in getFields
196 ([23348](https://github.com/civicrm/civicrm-core/pull/23348))**
197
198 - **APIv4 - Deprecate unnecessary event
199 ([23311](https://github.com/civicrm/civicrm-core/pull/23311))**
200
201 - **SearchKit - Consistently check for date field
202 ([23354](https://github.com/civicrm/civicrm-core/pull/23354))**
203
204 - **SearchKit - Ensure all date and timestamp fields are presented with datepicker
205 ([23335](https://github.com/civicrm/civicrm-core/pull/23335))**
206
207 - **SearchKit - Keep label when switching entity
208 ([23319](https://github.com/civicrm/civicrm-core/pull/23319))**
209
210 - **SearchKit - Move grid css to its own file
211 ([23315](https://github.com/civicrm/civicrm-core/pull/23315))**
212
213 - **add missing Parishes of Bermuda (civicrm_state_province)
214 ([23339](https://github.com/civicrm/civicrm-core/pull/23339))**
215
216 - **PR 22070 follow-up: reinstate respecting no_display on report column headers
217 ([23321](https://github.com/civicrm/civicrm-core/pull/23321))**
218
219 Respect no_display on report column headers.
220
221 - **Remove preferred email format from inline edit
222 ([23269](https://github.com/civicrm/civicrm-core/pull/23269))**
223
224 - **Do not escape wizard class - procede straight to Hogwarts
225 ([23185](https://github.com/civicrm/civicrm-core/pull/23185))**
226
227 - **jira/browse/CRM-18217 On the website front-end, CiviCRM page heading should
228 start from h2 and not h1
229 ([23324](https://github.com/civicrm/civicrm-core/pull/23324))**
230
231 - **Disable scrolling on time inputs
232 ([dev/user-interface#47](https://lab.civicrm.org/dev/user-interface/-/issues/47):
233 [23264](https://github.com/civicrm/civicrm-core/pull/23264))**
234
235 - **SearchKit - Fix selection of fields when creating a Data Segment
236 ([23265](https://github.com/civicrm/civicrm-core/pull/23265))**
237
238 - **APIv4 - Fix fatal error on getFields when passing in contact id
239 ([23389](https://github.com/civicrm/civicrm-core/pull/23389))**
240
241 - **ACLCache: Efficiency. Fix duplicate inserts
242 ([21993](https://github.com/civicrm/civicrm-core/pull/21993))**
243
244 - **Update expired root certs (5.50)
245 ([23387](https://github.com/civicrm/civicrm-core/pull/23387))**
246
247 - **Fix 'Table already exists' error when running 5.50 upgrade twice
248 ([23355](https://github.com/civicrm/civicrm-core/pull/23355))**
249
250 - **5.50.alpha1.mysql.tpl - Escape `grouping` (reserved word in MySQL 8.0)
251 ([23396](https://github.com/civicrm/civicrm-core/pull/23396))**
252
253 - **Import code cleanup (Work Towards
254 [dev/core#3414](https://lab.civicrm.org/dev/core/-/issues/3414):
255 [23291](https://github.com/civicrm/civicrm-core/pull/23291))**
256
257 Stop dropping temp table on finish of contact import job.
258
259 - **[Import] Upgrade saved import names for contacts
260 ([23288](https://github.com/civicrm/civicrm-core/pull/23288))**
261
262 Fixes the Contact import such that the name field hold the name of the field
263 being upgraded to rather than the label (and fixes the import such that it
264 expects name going forwards).
265
266 - **[Import] Enotice fix on contact import field mapping screen
267 ([23306](https://github.com/civicrm/civicrm-core/pull/23306))**
268
269 - **[Import] Output errors, duplicates csvs directly from the user job table
270 ([23292](https://github.com/civicrm/civicrm-core/pull/23292))**
271
272 - **Import - fix comment
273 ([23361](https://github.com/civicrm/civicrm-core/pull/23361))**
274
275 - **resolve TypeError: unsupported operand types: string + int;
276 ([23015](https://github.com/civicrm/civicrm-core/pull/23015))**
277
278 - **Ensure tags fields are assigned to tpl for email form test
279 ([23183](https://github.com/civicrm/civicrm-core/pull/23183))**
280
281 - **Don't overescape links in pledge tab
282 ([23206](https://github.com/civicrm/civicrm-core/pull/23206))**
283
284 - **Don't overescape tab links
285 ([23205](https://github.com/civicrm/civicrm-core/pull/23205))**
286
287 - **🪲 🪳 Bug Fix: The option "Enable multiple bulk email address for a contact"
288 does not apply when editing a Contact, only works for inline edit of email
289 addresses ([23082](https://github.com/civicrm/civicrm-core/pull/23082))**
290
291 - **Translation - distinguish between 'On' for date and 'On'/'Off'
292 ([23379](https://github.com/civicrm/civicrm-core/pull/23379))**
293
294 - **getSelfServiceEligibility: fix string translation
295 ([23163](https://github.com/civicrm/civicrm-core/pull/23163))**
296
297 - **Centralise skipColumnHeader to one function (fixes notices, cleans code)
298 ([23135](https://github.com/civicrm/civicrm-core/pull/23135))**
299
300 - **✍🏼 Fix spelling of "additional". Numerous uses of "additonal"
301 ([23162](https://github.com/civicrm/civicrm-core/pull/23162))**
302
303 - **Ensure deleteURL variable for ContactImage.tpl
304 ([23150](https://github.com/civicrm/civicrm-core/pull/23150))**
305
306 - **Don't overescape weights in default-escape mode
307 ([23152](https://github.com/civicrm/civicrm-core/pull/23152))**
308
309 - **Avoid PHP notices on FinancialAccount table
310 ([23151](https://github.com/civicrm/civicrm-core/pull/23151))**
311
312 - **Apply nodefaults to row actions
313 ([23207](https://github.com/civicrm/civicrm-core/pull/23207))**
314
315 - **Add nodefaults to access.tpl
316 ([23208](https://github.com/civicrm/civicrm-core/pull/23208))**
317
318 - **Add nodefaults to group edit form
319 ([23225](https://github.com/civicrm/civicrm-core/pull/23225))**
320
321 - **Add smarty:nodefaults to ManageEvent page.
322 ([23173](https://github.com/civicrm/civicrm-core/pull/23173))**
323
324 - **Add smarty:nodefaults to default.tpl form.
325 ([23153](https://github.com/civicrm/civicrm-core/pull/23153))**
326
327 - **Apply nodefaults to contact tabs for escape-on-output
328 ([23232](https://github.com/civicrm/civicrm-core/pull/23232))**
329
330 ### CiviCampaign
331
332 - **update-supporter-url
333 ([23287](https://github.com/civicrm/civicrm-core/pull/23287))**
334
335 ### CiviCase
336
337 - **Case Resources cuts off at 25 contacts when creating case activity
338 ([dev/core#3431](https://lab.civicrm.org/dev/core/-/issues/3431):
339 [23327](https://github.com/civicrm/civicrm-core/pull/23327))**
340
341 Case activity only has 25 contacts listed from Case Resources in the Send Copy
342 section.
343
344 ### CiviContribute
345
346 - **Paypal pro, a.net ipn - do not update start date, status
347 ([23156](https://github.com/civicrm/civicrm-core/pull/23156))**
348
349 - **Compare currencies as well as amounts on template Contribution change
350 ([23298](https://github.com/civicrm/civicrm-core/pull/23298))**
351
352 - **Start to fix misnamed FinancialTrxn bao
353 ([23190](https://github.com/civicrm/civicrm-core/pull/23190))**
354
355 - **ensure checkbox custom fields on contributions import properly
356 ([23246](https://github.com/civicrm/civicrm-core/pull/23246))**
357
358 - **Always assign pay_later_receipt
359 ([23080](https://github.com/civicrm/civicrm-core/pull/23080))**
360
361 - **Contribution dashboard links work in escape-on-output mode
362 ([23174](https://github.com/civicrm/civicrm-core/pull/23174))**
363
364 - **Improve financial trxn spec to require required fields
365 ([22571](https://github.com/civicrm/civicrm-core/pull/22571))**
366
367 - **Always use cancelSubscription form for cancelling recurring contributions
368 ([23210](https://github.com/civicrm/civicrm-core/pull/23210))**
369
370 - **financialacls core extension uses a global callback in
371 hook_civicrm_container, which might be iffy
372 ([dev/core#3184](https://lab.civicrm.org/dev/core/-/issues/3184):
373 [23268](https://github.com/civicrm/civicrm-core/pull/23268))**
374
375 Definitively load main files during bootstrap.
376
377 ### CiviEvent
378
379 - **batch geocode API does not process event addresses
380 ([dev/core#3439](https://lab.civicrm.org/dev/core/-/issues/3439):
381 [23351](https://github.com/civicrm/civicrm-core/pull/23351))**
382
383 - **Event template scheduled reminders lost when creating a new event using API4
384 ([dev/core#3183](https://lab.civicrm.org/dev/core/-/issues/3183):
385 [23238](https://github.com/civicrm/civicrm-core/pull/23238))**
386
387 - **Scheduled Reminders "Additional Recipients" feature sends at wrong time, is
388 incompatible with tokens
389 ([dev/core#1836](https://lab.civicrm.org/dev/core/-/issues/1836):
390 [23101](https://github.com/civicrm/civicrm-core/pull/23101))**
391
392 - **Event self-service cancel: allow cancelling Waitlist registration
393 ([23164](https://github.com/civicrm/civicrm-core/pull/23164))**
394
395 ### CiviMail
396
397 - **send group subscription welcome email only if template is enabled
398 ([23139](https://github.com/civicrm/civicrm-core/pull/23139))**
399
400 ### CiviMember
401
402 - **Limit issue fix
403 ([23229](https://github.com/civicrm/civicrm-core/pull/23229))**
404
405 Remove limit when printing labels from member search action.
406
407 - **Set default values on MembershipView to stop PHP notices
408 ([22664](https://github.com/civicrm/civicrm-core/pull/22664))**
409
410 ### Drupal Integration
411
412 - **Epic: Drupal 10 readiness (Work Towards
413 [dev/drupal#176](https://lab.civicrm.org/dev/drupal/-/issues/176):
414 [23302](https://github.com/civicrm/civicrm-core/pull/23302))**
415
416 Fixes the 'Error: Class "Symfony\Cmf\Component\Routing\RouteObjectInterface"
417 not found' when using cv in drupal 9 and 10.
418
419 ## <a name="misc"></a>Miscellany
420
421 - **ManagedEntities - Allow targeted reconciliation. Add hook parameter.
422 Simplify logic.
423 ([22959](https://github.com/civicrm/civicrm-core/pull/22959))**
424
425 - **DAOs out of date
426 ([23362](https://github.com/civicrm/civicrm-core/pull/23362))**
427
428 - **[Import] Rename dedupe rule id field from dedupe to dedupe_rule_id field
429 ([23263](https://github.com/civicrm/civicrm-core/pull/23263))**
430
431 - **Add import function to parser
432 ([23338](https://github.com/civicrm/civicrm-core/pull/23338))**
433
434 - **I have no words
435 ([23244](https://github.com/civicrm/civicrm-core/pull/23244))**
436
437 - **Update phpleague/csv from 9.2 to 9.6 (supports php 8)
438 ([dev/core#3172](https://lab.civicrm.org/dev/core/-/issues/3172):
439 [23180](https://github.com/civicrm/civicrm-core/pull/23180))**
440
441 - **Stop adding obsolete currencies to new installs
442 ([23345](https://github.com/civicrm/civicrm-core/pull/23345))**
443
444 - **Managed entity cleanup
445 ([23251](https://github.com/civicrm/civicrm-core/pull/23251))**
446
447 - **Take a reality check on moneyCleaning in test
448 ([23215](https://github.com/civicrm/civicrm-core/pull/23215))**
449
450 - **Minor simplification of getAmountLevelText
451 ([23159](https://github.com/civicrm/civicrm-core/pull/23159))**
452
453 - **Standardise activity datasource text
454 ([23217](https://github.com/civicrm/civicrm-core/pull/23217))**
455
456 - **Standardise participant import text
457 ([23218](https://github.com/civicrm/civicrm-core/pull/23218))**
458
459 - **Standardize DataSource file for Contribution & Membership
460 ([23186](https://github.com/civicrm/civicrm-core/pull/23186))**
461
462 - **Release - Set version compatibility for core extensions when updating core
463 ([23143](https://github.com/civicrm/civicrm-core/pull/23143))**
464
465 - **Make static function static - processCaseTags
466 ([23278](https://github.com/civicrm/civicrm-core/pull/23278))**
467
468 - **Whitespace cleanup in template file
469 ([23277](https://github.com/civicrm/civicrm-core/pull/23277))**
470
471 - **IDE cheer - cast var explicitly to an int
472 ([23350](https://github.com/civicrm/civicrm-core/pull/23350))**
473
474 - **Remove unused variable
475 ([23352](https://github.com/civicrm/civicrm-core/pull/23352))**
476
477 - **Minor function simplification in private function
478 ([23364](https://github.com/civicrm/civicrm-core/pull/23364))**
479
480 - **ManagedEntities - Update version number for mgd-php
481 ([23422](https://github.com/civicrm/civicrm-core/pull/23422))**
482
483 - **Minor readability improvement
484 ([23157](https://github.com/civicrm/civicrm-core/pull/23157))**
485
486 - **Cleanup crmMailing/Templates.js
487 ([23188](https://github.com/civicrm/civicrm-core/pull/23188))**
488
489 - **Further simplify variable retrieval
490 ([23172](https://github.com/civicrm/civicrm-core/pull/23172))**
491
492 - **Remove unused parameter from private function
493 ([23194](https://github.com/civicrm/civicrm-core/pull/23194))**
494
495 - **Remove code only needed by Drupal6
496 ([23212](https://github.com/civicrm/civicrm-core/pull/23212))**
497
498 - **Remove unused function
499 ([23200](https://github.com/civicrm/civicrm-core/pull/23200))**
500
501 - **Remove an unset variable
502 ([23285](https://github.com/civicrm/civicrm-core/pull/23285))**
503
504 - **Remove some copy & paste
505 ([23171](https://github.com/civicrm/civicrm-core/pull/23171))**
506
507 - **Remove another good intention - unused variables
508 ([23275](https://github.com/civicrm/civicrm-core/pull/23275))**
509
510 - **Reduce use of reference
511 ([23165](https://github.com/civicrm/civicrm-core/pull/23165))**
512
513 - **Remove-single-value-loop
514 ([23155](https://github.com/civicrm/civicrm-core/pull/23155))**
515
516 - **[REF] [Import] Use shared file instead of now-identical files
517 ([23216](https://github.com/civicrm/civicrm-core/pull/23216))**
518
519 - **[REF] [Import] Standardise import text for CustomData import
520 ([23219](https://github.com/civicrm/civicrm-core/pull/23219))**
521
522 - **[Ref] [Import] [csv] Remove non-functional code
523 ([23195](https://github.com/civicrm/civicrm-core/pull/23195))**
524
525 - **[REF] [Import] Handle limit with more sanity
526 ([23262](https://github.com/civicrm/civicrm-core/pull/23262))**
527
528 - **[Import] [Ref] Simplify string concatenation
529 ([23330](https://github.com/civicrm/civicrm-core/pull/23330))**
530
531 - **[REF][Import] (minor) Extract getHightlightedFields
532 ([23304](https://github.com/civicrm/civicrm-core/pull/23304))**
533
534 - **[REF] [Import] Obsolete if removal
535 ([23253](https://github.com/civicrm/civicrm-core/pull/23253))**
536
537 - **[REF] [Import] [Custom] Remove another in-between class
538 ([23222](https://github.com/civicrm/civicrm-core/pull/23222))**
539
540 - **[REF] [Import] [Trivial] Minor test fixes
541 ([23341](https://github.com/civicrm/civicrm-core/pull/23341))**
542
543 - **[REF] [Import] Trivial - simplify variable
544 ([23347](https://github.com/civicrm/civicrm-core/pull/23347))**
545
546 - **[REF] [Import] Ensure jobID is set in contact flow
547 ([23280](https://github.com/civicrm/civicrm-core/pull/23280))**
548
549 - **[REF] [Import] call non-deprecated function instead of deprecated
550 ([23293](https://github.com/civicrm/civicrm-core/pull/23293))**
551
552 - **[REF] [Import] [Trivial] Make 'mapper' field available as a submittable
553 value throughout the flow
554 ([23308](https://github.com/civicrm/civicrm-core/pull/23308))**
555
556 - **[REF] [Import] Extract getContactType
557 ([23284](https://github.com/civicrm/civicrm-core/pull/23284))**
558
559 - **[REF] [Import] [Trivial] Make mapperKeys parameter optional in construct
560 ([23307](https://github.com/civicrm/civicrm-core/pull/23307))**
561
562 - **[REF] [Import] [Trivial] Extract duplicate match options
563 ([23300](https://github.com/civicrm/civicrm-core/pull/23300))**
564
565 - **[REF] [Import] Remove another good intention from the import class
566 ([23261](https://github.com/civicrm/civicrm-core/pull/23261))**
567
568 - **[REF] [Import] Stop overloading dataSource form
569 ([23237](https://github.com/civicrm/civicrm-core/pull/23237))**
570
571 - **[REF] [Import] Remove meaningless code
572 ([23242](https://github.com/civicrm/civicrm-core/pull/23242))**
573
574 - **[REF] [Import] remove pointless fini functions.
575 ([23241](https://github.com/civicrm/civicrm-core/pull/23241))**
576
577 - **[REF] [Import] Remove warning count - never returned
578 ([23240](https://github.com/civicrm/civicrm-core/pull/23240))**
579
580 - **[Ref] [Import] Remove another good intention....mapField
581 ([23236](https://github.com/civicrm/civicrm-core/pull/23236))**
582
583 - **[REF] [Import] Remove last in-between parser class
584 ([23227](https://github.com/civicrm/civicrm-core/pull/23227))**
585
586 - **[Ref] [Import] Remove another 'in-between' class
587 ([23221](https://github.com/civicrm/civicrm-core/pull/23221))**
588
589 - **[REF] [Import] [Contact] Remove in-between class
590 ([23223](https://github.com/civicrm/civicrm-core/pull/23223))**
591
592 - **[Ref] [Import] Cleanup cleanup on old tables for form re-submission
593 ([23276](https://github.com/civicrm/civicrm-core/pull/23276))**
594
595 - **[REF] [Import] Trivial - simplify variable
596 ([23360](https://github.com/civicrm/civicrm-core/pull/23360))**
597
598 - **[REF][Import] [Contact] Clean up preview screen
599 ([23340](https://github.com/civicrm/civicrm-core/pull/23340))**
600
601 - **[Import] [Ref] [Contact] Extract row mapping and add test
602 ([23342](https://github.com/civicrm/civicrm-core/pull/23342))**
603
604 - **[Ref] [Import] Add extra functions to DataSource
605 ([23344](https://github.com/civicrm/civicrm-core/pull/23344))**
606
607 - **[REF] [Import] Trivial - simplify variable
608 ([23349](https://github.com/civicrm/civicrm-core/pull/23349))**
609
610 - **(REF) CryptoRegistry - Fix type declaration
611 ([23220](https://github.com/civicrm/civicrm-core/pull/23220))**
612
613 - **[REF] [Import] extract validation functionality
614 ([23371](https://github.com/civicrm/civicrm-core/pull/23371))**
615
616 - **[REF] [Import] Trivial - simplify variables
617 ([23369](https://github.com/civicrm/civicrm-core/pull/23369))**
618
619 - **[Ref] Get rid of private deprecated legacy function
620 ([23375](https://github.com/civicrm/civicrm-core/pull/23375))**
621
622 - **[REF] Do not treat site having a default location type as optional
623 ([23282](https://github.com/civicrm/civicrm-core/pull/23282))**
624
625 - **[REF] Minor code simplifcation - reduce silly lines
626 ([23368](https://github.com/civicrm/civicrm-core/pull/23368))**
627
628 - **[REF] [Import] Remove unused tpl assign showColNames
629 ([23366](https://github.com/civicrm/civicrm-core/pull/23366))**
630
631 - **[Import] [Ref] [Minor] Simplify error handling with a try-catch block
632 ([23370](https://github.com/civicrm/civicrm-core/pull/23370))**
633
634 - **[Ref][Import] Remove another good intention - random email counting
635 ([23367](https://github.com/civicrm/civicrm-core/pull/23367))**
636
637 - **[REF] [Import] Simplify dataSource contract - remove unused preProcess
638 ([23272](https://github.com/civicrm/civicrm-core/pull/23272))**
639
640 - **[REF] [Import] Trivial - simplify variables
641 ([23363](https://github.com/civicrm/civicrm-core/pull/23363))**
642
643 - **(REF) Fix test to use full flow
644 ([23160](https://github.com/civicrm/civicrm-core/pull/23160))**
645
646 - **[REF] Extract getContributionRecurID
647 ([23158](https://github.com/civicrm/civicrm-core/pull/23158))**
648
649 - **[REF] [Import] Stop passing submittedValues as parameters
650 ([23343](https://github.com/civicrm/civicrm-core/pull/23343))**
651
652 - **[REF] [Import] Remove another good intention - import 'conflicts'
653 ([23380](https://github.com/civicrm/civicrm-core/pull/23380))**
654
655 - **[REF] Code cleanup on location entities for the Contact Summary screen
656 ([22967](https://github.com/civicrm/civicrm-core/pull/22967))**
657
658 - **[REF] Fix test to use form flow / helper
659 ([23211](https://github.com/civicrm/civicrm-core/pull/23211))**
660
661 - **[REF][Test] Update loadMappingTest to use form flow
662 ([23286](https://github.com/civicrm/civicrm-core/pull/23286))**
663
664 - **[REF] Do not pass form properties within the form
665 ([23213](https://github.com/civicrm/civicrm-core/pull/23213))**
666
667 - **(NFC) authx - Update descriptions and links in `info.xml`
668 ([23169](https://github.com/civicrm/civicrm-core/pull/23169))**
669
670 - **(NFC) mixin/**.php - Add @since tags
671 ([23423](https://github.com/civicrm/civicrm-core/pull/23423))**
672
673 - **(NFC) Skip CliRunnerTest on php80+drush+Backdrop
674 ([23184](https://github.com/civicrm/civicrm-core/pull/23184))**
675
676 - **NFC Minor cleanup to Participant confirm
677 ([23357](https://github.com/civicrm/civicrm-core/pull/23357))**
678
679 - **[NFC] Fix APIv4 docblock annotations for Managed API
680 ([23359](https://github.com/civicrm/civicrm-core/pull/23359))**
681
682 - **E2E_Core_ErrorTest - Demonstrate whether error pages are well-formed
683 ([23257](https://github.com/civicrm/civicrm-core/pull/23257))**
684
685 - **(E2E) `testErrorChrome` - Update assertions for page-chrome
686 ([23397](https://github.com/civicrm/civicrm-core/pull/23397))**
687
688 - **(E2E) testErrorChrome - Skip Backdrop and D8+ (much like D7)
689 ([23398](https://github.com/civicrm/civicrm-core/pull/23398))**
690
691 ## <a name="credits"></a>Credits
692
693 This release was developed by the following code authors:
694
695 AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman;
696 Benjamin W; BrightMinded Ltd - Bradley Taylor; Circle Interactive - Pradeep
697 Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop
698 SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Freeform Solutions - Herb
699 van den Dool; Ginkgo Street Labs - Michael Z Daryabeygi; iXiam - Luciano
700 Spiegel; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Joinery -
701 Allen Shaw; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone
702 Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive
703 Technology Project - Jamie McClelland; Third Sector Design - Kurund Jalmi;
704 Wikimedia Foundation - Eileen McNaughton
705
706 Most authors also reviewed code for this release; in addition, the following
707 reviewers contributed their comments:
708
709 Andreas Howiller; Andy Burns; Artful Robot - Rich Lott; Australian Greens - John
710 Twyman; Betty Dolfing; Christian Wach; Circle Interactive - Dave Jenkins, Matt
711 Trim; CiviCoop - Jaap Jansma; iXiam - Vangelis Pantazis; JMA Consulting - Edsel
712 Lopez; John Kingsnorth; Joinery - Allen Shaw; Nicol Wistreich; Tadpole
713 Collective - Kevin Cristiano;
714
715 ## <a name="feedback"></a>Feedback
716
717 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
718 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
719 and contact `@agh1`.