5 - **[Synopsis](#synopsis)**
6 - **[Security advisories](#security)**
7 - **[Features](#features)**
8 - **[Bugs resolved](#bugs)**
9 - **[Miscellany](#misc)**
10 - **[Credits](#credits)**
11 - **[Feedback](#feedback)**
13 ## <a name="synopsis"></a>Synopsis
15 | *Does this version...?* | |
16 |:--------------------------------------------------------------- |:-------:|
17 | Fix security vulnerabilities? | **yes** |
18 | **Change the database schema?** | **yes** |
19 | **Alter the API?** | **yes** |
20 | Require attention to configuration options? | no |
21 | **Fix problems installing or upgrading to a previous version?** | **yes** |
22 | **Introduce features?** | **yes** |
23 | **Fix bugs?** | **yes** |
25 ## <a name="security"></a>Security advisories
27 - **[CIVI-SA-2022-07: APIv3 Access Bypass](https://civicrm.org/advisory/civi-sa-2022-07-apiv3-access-bypass)**
29 ## <a name="features"></a>Features
33 - **System Check - Add a reminder about CIVICRM_SIGN_KEYS.
34 ([23224](https://github.com/civicrm/civicrm-core/pull/23224))**
36 Adds a system status check that generates a reminder about cryptographic
39 - **Restrict allowed uploads - contact image
40 ([23147](https://github.com/civicrm/civicrm-core/pull/23147))**
42 Restrict file types allowed for the contact image field.
44 - **Add tracking table for import jobs
45 ([dev/core#1307](https://lab.civicrm.org/dev/core/-/issues/1307):
46 [23199](https://github.com/civicrm/civicrm-core/pull/23199) and
47 [23245](https://github.com/civicrm/civicrm-core/pull/23245))**
49 This adds a new table for the purpose of tracking user jobs (e.g. imports) and
50 associated temp tables and starts tracking the submittedValues and data source
53 - **CustomFields - Improve metadata about which custom groups belong to which
54 entities ([23336](https://github.com/civicrm/civicrm-core/pull/23336))**
56 Makes the relationship between Custom Field Groups, entity types and subtypes
57 discoverable via APIv4 metadata.
59 - **Upgrader - Add support for automatic snapshots
60 ([23522](https://github.com/civicrm/civicrm-core/pull/23522) and
61 [23544](https://github.com/civicrm/civicrm-core/pull/23594))**
63 This adds a utility for recording a snapshot of certain columns in a database
64 table prior to applying any upgrade steps to it. This will make it easier to
65 roll back or compare changes if necessary after the upgrade.
67 The snapshot tables begin with the prefix `snap_civicrm_` and will be cleaned
68 up after a certain number of minor version upgrades. For now, the feature is
69 disabled by default, but you may enable it by adding
71 define('CIVICRM_UPGRADE_SNAPSHOT', TRUE);
75 - **Api4 - minor fixes and updates
76 ([23310](https://github.com/civicrm/civicrm-core/pull/23310))**
78 A few minor tweaks to APIv4 to improve working with extensions that have
81 - **APIv4 - Add NOW() date function
82 ([23378](https://github.com/civicrm/civicrm-core/pull/23378))**
84 Adds a function for NOW to APIv4 which returns the full date+time, and
85 distinguishes it from CURDATE which just returns the date part.
87 - **APIv4 - Add MONTH sql function
88 ([23377](https://github.com/civicrm/civicrm-core/pull/23377))**
90 Adds the MONTH function to APIv4 & SearchKit, which enables e.g. filtering
93 - **APIv4 - Add `is_active` extra field to Domain entity
94 ([22159](https://github.com/civicrm/civicrm-core/pull/22159))**
96 Adds a new calculated field to APIv4 making it easier to get the current
99 - **APIv4 - Add `Managed::reconcile` action.
100 ([23243](https://github.com/civicrm/civicrm-core/pull/23243))**
102 Adds APIv4 wrapper around ManagedEntities->reconcile();
104 - **Implement countFetched() and countMatched() on api4 results.
105 ([22115](https://github.com/civicrm/civicrm-core/pull/22115))**
107 Provides clearer methods for finding out how many API4 results you've got.
109 - **SearchKit - Add data segmentation functionality
110 ([23059](https://github.com/civicrm/civicrm-core/pull/23059))**
112 Creates virtual fields based on flexible segmentation criteria.
114 - **SearchKit - Add date pseudo-fields
115 ([23381](https://github.com/civicrm/civicrm-core/pull/23381))**
117 Exposes date pseudo-fields to SearchKit.
119 - **make survey title available in form builder
120 ([23322](https://github.com/civicrm/civicrm-core/pull/23322))**
122 Makes the Survey title field available in Afform.
124 - **Afform - Dispatch event to alter admin metadata; provide mixin
125 ([23303](https://github.com/civicrm/civicrm-core/pull/23303))**
127 Makes Form-Builder more extensible by allowing extensions to add to the list
128 of available entities, elements, input types, styles, etc.
130 - **Afform - Improve dragging into dropzones
131 ([23239](https://github.com/civicrm/civicrm-core/pull/23239))**
133 Improves the drag-n-drop UX in Afform when composing complex layouts.
135 - **AfformGui - Optional reset button for search and submit forms
136 ([dev/core#3430](https://lab.civicrm.org/dev/core/-/issues/3430):
137 [23334](https://github.com/civicrm/civicrm-core/pull/23334))**
139 Adds a "reset" button for search forms.
141 - **Add icons for SavedSearch and SearchDisplay entities
142 ([23149](https://github.com/civicrm/civicrm-core/pull/23149))**
144 Improves user experience by adding icons for Saved Search and Search Display
147 - **Simplify and improve performance of query to insert updated cache
148 ([21943](https://github.com/civicrm/civicrm-core/pull/21943))**
150 Caching performance improvement.
154 - **Make links to sign a petition easily accessible on the form.
155 ([23316](https://github.com/civicrm/civicrm-core/pull/23316))**
157 Adds links to the bottom of the petition edit form so users can more easily
158 publicize their petition.
162 - **Activity Type + Activity Status + Case Type not being Combined Correctly in
164 ([dev/core#3249](https://lab.civicrm.org/dev/core/-/issues/3249):
165 [23313](https://github.com/civicrm/civicrm-core/pull/23313))**
167 This makes `CaseType` in APIv4 a managed entity. This is part of a move
168 towards having all cases defined in configuration and deprecating XML-defined
173 - **Define return parameters for doPayment
174 ([dev/financial#141](https://lab.civicrm.org/dev/financial/-/issues/141):
175 [22683](https://github.com/civicrm/civicrm-core/pull/22683))**
177 Updates return parameters on all payment processors to match expected results.
179 ### Drupal Integration
181 - **Extend command drush civicrm-ext-list for Drupal 8
182 ([72](https://github.com/civicrm/civicrm-drupal-8/pull/72))**
184 Extends the `drush civicrm-ext-list` command to work for drupal 8.
186 ### Wordpress Integration
188 - **WordPress - Display site-theme/decorations on error screens
189 ([22805](https://github.com/civicrm/civicrm-core/pull/22805))**
191 Improve error screen user experience by displaying site theme/decorations.
193 ## <a name="bugs"></a>Bugs resolved
197 - **Improve validation of start and end dates for events, contribution pages and
199 [dev/core#2846](https://lab.civicrm.org/dev/core/-/issues/2846):
200 [21513](https://github.com/civicrm/civicrm-core/pull/21513))**
202 Applies form-level validation to start and end dates.
204 - **Report Filter Statistics don't show filters with value of "0"
205 ([dev/core#3164](https://lab.civicrm.org/dev/core/-/issues/3164):
206 [23191](https://github.com/civicrm/civicrm-core/pull/23191))**
208 - **Fix 'Authorization Failed' regression when submitting eg. webform via
209 checksum ([23607](https://github.com/civicrm/civicrm-core/pull/23607))**
211 This resolves a bug where accessing an entity through APIv3, coming in via a
212 checksum link, results in a failed authorization for the step of updating the
213 recent items stack via APIv4.
215 - **Manage Extensions - Hide nag for core exts
216 ([dev/core#3171](https://lab.civicrm.org/dev/core/-/issues/3171):
217 [23204](https://github.com/civicrm/civicrm-core/pull/23204))**
219 - **AuthX: Breaks sites when Basic Auth is enabled
220 ([dev/core#3416](https://lab.civicrm.org/dev/core/-/issues/3416):
221 [22837](https://github.com/civicrm/civicrm-core/pull/22837))**
223 - **Save button on API4 explorer is misleading
224 ([dev/core#3155](https://lab.civicrm.org/dev/core/-/issues/3155):
225 [23144](https://github.com/civicrm/civicrm-core/pull/23144))**
227 - **APIv4 - Support pseudoconstant suffixes in getFields
228 ([23348](https://github.com/civicrm/civicrm-core/pull/23348))**
230 - **APIv4 - Deprecate unnecessary event
231 ([23311](https://github.com/civicrm/civicrm-core/pull/23311))**
233 - **SearchKit - Consistently check for date field
234 ([23354](https://github.com/civicrm/civicrm-core/pull/23354))**
236 - **SearchKit - Ensure all date and timestamp fields are presented with datepicker
237 ([23335](https://github.com/civicrm/civicrm-core/pull/23335))**
239 - **SearchKit - Keep label when switching entity
240 ([23319](https://github.com/civicrm/civicrm-core/pull/23319))**
242 - **SearchKit - Move grid css to its own file
243 ([23315](https://github.com/civicrm/civicrm-core/pull/23315))**
245 - **SearchKit - Fix 'undefined var' error after import
246 ([23572](https://github.com/civicrm/civicrm-core/pull/23572))**
248 Fixes an unresponsive screen after importing multiple records into SearchKit
249 (using the Import dialog).
251 - **add missing Parishes of Bermuda (civicrm_state_province)
252 ([23339](https://github.com/civicrm/civicrm-core/pull/23339))**
254 - **PR 22070 follow-up: reinstate respecting no_display on report column headers
255 ([23321](https://github.com/civicrm/civicrm-core/pull/23321))**
257 Respect no_display on report column headers.
259 - **Remove preferred email format from inline edit
260 ([23269](https://github.com/civicrm/civicrm-core/pull/23269))**
262 - **Do not escape wizard class - procede straight to Hogwarts
263 ([23185](https://github.com/civicrm/civicrm-core/pull/23185))**
265 - **jira/browse/CRM-18217 On the website front-end, CiviCRM page heading should
266 start from h2 and not h1
267 ([23324](https://github.com/civicrm/civicrm-core/pull/23324))**
269 - **Disable scrolling on time inputs
270 ([dev/user-interface#47](https://lab.civicrm.org/dev/user-interface/-/issues/47):
271 [23264](https://github.com/civicrm/civicrm-core/pull/23264))**
273 - **SearchKit - Fix selection of fields when creating a Data Segment
274 ([23265](https://github.com/civicrm/civicrm-core/pull/23265))**
276 - **APIv4 - Fix fatal error on getFields when passing in contact id
277 ([23389](https://github.com/civicrm/civicrm-core/pull/23389))**
279 - **ACLCache: Efficiency. Fix duplicate inserts
280 ([21993](https://github.com/civicrm/civicrm-core/pull/21993))**
282 - **Update expired root certs (5.50)
283 ([23387](https://github.com/civicrm/civicrm-core/pull/23387))**
285 - **Fix 'Table already exists' error when running 5.50 upgrade twice
286 ([23355](https://github.com/civicrm/civicrm-core/pull/23355))**
288 - **5.50.alpha1.mysql.tpl - Escape `grouping` (reserved word in MySQL 8.0)
289 ([23396](https://github.com/civicrm/civicrm-core/pull/23396))**
291 - **Import code cleanup (Work Towards
292 [dev/core#3414](https://lab.civicrm.org/dev/core/-/issues/3414):
293 [23291](https://github.com/civicrm/civicrm-core/pull/23291))**
295 Stop dropping temp table on finish of contact import job.
297 - **[Import] Upgrade saved import names for contacts
298 ([23288](https://github.com/civicrm/civicrm-core/pull/23288))**
300 Fixes the Contact import such that the name field hold the name of the field
301 being upgraded to rather than the label (and fixes the import such that it
302 expects name going forwards).
304 - **[Import] Enotice fix on contact import field mapping screen
305 ([23306](https://github.com/civicrm/civicrm-core/pull/23306))**
307 - **[Import] Output errors, duplicates csvs directly from the user job table
308 ([23292](https://github.com/civicrm/civicrm-core/pull/23292))**
310 - **Import - fix comment
311 ([23361](https://github.com/civicrm/civicrm-core/pull/23361))**
313 - **resolve TypeError: unsupported operand types: string + int;
314 ([23015](https://github.com/civicrm/civicrm-core/pull/23015))**
316 - **Ensure tags fields are assigned to tpl for email form test
317 ([23183](https://github.com/civicrm/civicrm-core/pull/23183))**
319 - **Don't overescape links in pledge tab
320 ([23206](https://github.com/civicrm/civicrm-core/pull/23206))**
322 - **Don't overescape tab links
323 ([23205](https://github.com/civicrm/civicrm-core/pull/23205))**
325 - **🪲 🪳 Bug Fix: The option "Enable multiple bulk email address for a contact"
326 does not apply when editing a Contact, only works for inline edit of email
327 addresses ([23082](https://github.com/civicrm/civicrm-core/pull/23082))**
329 - **Translation - distinguish between 'On' for date and 'On'/'Off'
330 ([23379](https://github.com/civicrm/civicrm-core/pull/23379))**
332 - **getSelfServiceEligibility: fix string translation
333 ([23163](https://github.com/civicrm/civicrm-core/pull/23163))**
335 - **Centralise skipColumnHeader to one function (fixes notices, cleans code)
336 ([23135](https://github.com/civicrm/civicrm-core/pull/23135))**
338 - **✍🏼 Fix spelling of "additional". Numerous uses of "additonal"
339 ([23162](https://github.com/civicrm/civicrm-core/pull/23162))**
341 - **Ensure deleteURL variable for ContactImage.tpl
342 ([23150](https://github.com/civicrm/civicrm-core/pull/23150))**
344 - **Don't overescape weights in default-escape mode
345 ([23152](https://github.com/civicrm/civicrm-core/pull/23152))**
347 - **Avoid PHP notices on FinancialAccount table
348 ([23151](https://github.com/civicrm/civicrm-core/pull/23151))**
350 - **Apply nodefaults to row actions
351 ([23207](https://github.com/civicrm/civicrm-core/pull/23207))**
353 - **Add nodefaults to access.tpl
354 ([23208](https://github.com/civicrm/civicrm-core/pull/23208))**
356 - **Add nodefaults to group edit form
357 ([23225](https://github.com/civicrm/civicrm-core/pull/23225))**
359 - **Add smarty:nodefaults to ManageEvent page.
360 ([23173](https://github.com/civicrm/civicrm-core/pull/23173))**
362 - **Add smarty:nodefaults to default.tpl form.
363 ([23153](https://github.com/civicrm/civicrm-core/pull/23153))**
365 - **Apply nodefaults to contact tabs for escape-on-output
366 ([23232](https://github.com/civicrm/civicrm-core/pull/23232))**
368 - **MultipleRecordFieldsListing.tpl - JS strings should us JS escaping
369 ([23499](https://github.com/civicrm/civicrm-core/pull/23499))**
373 - **update-supporter-url
374 ([23287](https://github.com/civicrm/civicrm-core/pull/23287))**
378 - **Case Resources cuts off at 25 contacts when creating case activity
379 ([dev/core#3431](https://lab.civicrm.org/dev/core/-/issues/3431):
380 [23327](https://github.com/civicrm/civicrm-core/pull/23327))**
382 Case activity only has 25 contacts listed from Case Resources in the Send Copy
387 - **Paypal pro, a.net ipn - do not update start date, status
388 ([23156](https://github.com/civicrm/civicrm-core/pull/23156))**
390 - **Compare currencies as well as amounts on template Contribution change
391 ([23298](https://github.com/civicrm/civicrm-core/pull/23298))**
393 - **Start to fix misnamed FinancialTrxn bao
394 ([23190](https://github.com/civicrm/civicrm-core/pull/23190))**
396 - **ensure checkbox custom fields on contributions import properly
397 ([23246](https://github.com/civicrm/civicrm-core/pull/23246))**
399 - **Always assign pay_later_receipt
400 ([23080](https://github.com/civicrm/civicrm-core/pull/23080))**
402 - **Contribution dashboard links work in escape-on-output mode
403 ([23174](https://github.com/civicrm/civicrm-core/pull/23174))**
405 - **Improve financial trxn spec to require required fields
406 ([22571](https://github.com/civicrm/civicrm-core/pull/22571))**
408 - **Always use cancelSubscription form for cancelling recurring contributions
409 ([23210](https://github.com/civicrm/civicrm-core/pull/23210))**
411 - **financialacls core extension uses a global callback in
412 hook_civicrm_container, which might be iffy
413 ([dev/core#3184](https://lab.civicrm.org/dev/core/-/issues/3184):
414 [23268](https://github.com/civicrm/civicrm-core/pull/23268))**
416 Definitively load main files during bootstrap.
418 - **Fix empty money handling
419 ([23528](https://github.com/civicrm/civicrm-core/pull/23528))**
421 Tokens representing money fields will now default to 0 for empty values.
423 - **Calculate unit_price based on qty
424 ([23566](https://github.com/civicrm/civicrm-core/pull/23566))**
426 This resolves a bug when a template contribution was created for a recurring
427 contribution: the unit_price on the line item was set to match the line_total,
432 - **batch geocode API does not process event addresses
433 ([dev/core#3439](https://lab.civicrm.org/dev/core/-/issues/3439):
434 [23351](https://github.com/civicrm/civicrm-core/pull/23351))**
436 - **Event template scheduled reminders lost when creating a new event using API4
437 ([dev/core#3183](https://lab.civicrm.org/dev/core/-/issues/3183):
438 [23238](https://github.com/civicrm/civicrm-core/pull/23238))**
440 - **Scheduled Reminders "Additional Recipients" feature sends at wrong time, is
441 incompatible with tokens
442 ([dev/core#1836](https://lab.civicrm.org/dev/core/-/issues/1836):
443 [23101](https://github.com/civicrm/civicrm-core/pull/23101))**
445 - **Event self-service cancel: allow cancelling Waitlist registration
446 ([23164](https://github.com/civicrm/civicrm-core/pull/23164))**
450 - **send group subscription welcome email only if template is enabled
451 ([23139](https://github.com/civicrm/civicrm-core/pull/23139))**
456 ([23229](https://github.com/civicrm/civicrm-core/pull/23229))**
458 Remove limit when printing labels from member search action.
460 - **Set default values on MembershipView to stop PHP notices
461 ([22664](https://github.com/civicrm/civicrm-core/pull/22664))**
463 ### Drupal Integration
465 - **Epic: Drupal 10 readiness (Work Towards
466 [dev/drupal#176](https://lab.civicrm.org/dev/drupal/-/issues/176):
467 [23302](https://github.com/civicrm/civicrm-core/pull/23302))**
469 Fixes the 'Error: Class "Symfony\Cmf\Component\Routing\RouteObjectInterface"
470 not found' when using cv in drupal 9 and 10.
472 ## <a name="misc"></a>Miscellany
474 - **ManagedEntities - Allow targeted reconciliation. Add hook parameter.
476 ([22959](https://github.com/civicrm/civicrm-core/pull/22959))**
479 ([23362](https://github.com/civicrm/civicrm-core/pull/23362))**
481 - **[Import] Rename dedupe rule id field from dedupe to dedupe_rule_id field
482 ([23263](https://github.com/civicrm/civicrm-core/pull/23263))**
484 - **Add import function to parser
485 ([23338](https://github.com/civicrm/civicrm-core/pull/23338))**
488 ([23244](https://github.com/civicrm/civicrm-core/pull/23244))**
490 - **Update phpleague/csv from 9.2 to 9.6 (supports php 8)
491 ([dev/core#3172](https://lab.civicrm.org/dev/core/-/issues/3172):
492 [23180](https://github.com/civicrm/civicrm-core/pull/23180))**
494 - **Stop adding obsolete currencies to new installs
495 ([23345](https://github.com/civicrm/civicrm-core/pull/23345))**
497 - **Managed entity cleanup
498 ([23251](https://github.com/civicrm/civicrm-core/pull/23251))**
500 - **Take a reality check on moneyCleaning in test
501 ([23215](https://github.com/civicrm/civicrm-core/pull/23215))**
503 - **Minor simplification of getAmountLevelText
504 ([23159](https://github.com/civicrm/civicrm-core/pull/23159))**
506 - **Standardise activity datasource text
507 ([23217](https://github.com/civicrm/civicrm-core/pull/23217))**
509 - **Standardise participant import text
510 ([23218](https://github.com/civicrm/civicrm-core/pull/23218))**
512 - **Standardize DataSource file for Contribution & Membership
513 ([23186](https://github.com/civicrm/civicrm-core/pull/23186))**
515 - **Release - Set version compatibility for core extensions when updating core
516 ([23143](https://github.com/civicrm/civicrm-core/pull/23143))**
518 - **Make static function static - processCaseTags
519 ([23278](https://github.com/civicrm/civicrm-core/pull/23278))**
521 - **Whitespace cleanup in template file
522 ([23277](https://github.com/civicrm/civicrm-core/pull/23277))**
524 - **IDE cheer - cast var explicitly to an int
525 ([23350](https://github.com/civicrm/civicrm-core/pull/23350))**
527 - **Remove unused variable
528 ([23352](https://github.com/civicrm/civicrm-core/pull/23352))**
530 - **Minor function simplification in private function
531 ([23364](https://github.com/civicrm/civicrm-core/pull/23364))**
533 - **ManagedEntities - Update version number for mgd-php
534 ([23422](https://github.com/civicrm/civicrm-core/pull/23422))**
536 - **Minor readability improvement
537 ([23157](https://github.com/civicrm/civicrm-core/pull/23157))**
539 - **Cleanup crmMailing/Templates.js
540 ([23188](https://github.com/civicrm/civicrm-core/pull/23188))**
542 - **Further simplify variable retrieval
543 ([23172](https://github.com/civicrm/civicrm-core/pull/23172))**
545 - **Remove unused parameter from private function
546 ([23194](https://github.com/civicrm/civicrm-core/pull/23194))**
548 - **Remove code only needed by Drupal6
549 ([23212](https://github.com/civicrm/civicrm-core/pull/23212))**
551 - **Remove unused function
552 ([23200](https://github.com/civicrm/civicrm-core/pull/23200))**
554 - **Remove an unset variable
555 ([23285](https://github.com/civicrm/civicrm-core/pull/23285))**
557 - **Remove some copy & paste
558 ([23171](https://github.com/civicrm/civicrm-core/pull/23171))**
560 - **Remove another good intention - unused variables
561 ([23275](https://github.com/civicrm/civicrm-core/pull/23275))**
563 - **Reduce use of reference
564 ([23165](https://github.com/civicrm/civicrm-core/pull/23165))**
566 - **Remove-single-value-loop
567 ([23155](https://github.com/civicrm/civicrm-core/pull/23155))**
569 - **[REF] [Import] Use shared file instead of now-identical files
570 ([23216](https://github.com/civicrm/civicrm-core/pull/23216))**
572 - **[REF] [Import] Standardise import text for CustomData import
573 ([23219](https://github.com/civicrm/civicrm-core/pull/23219))**
575 - **[Ref] [Import] [csv] Remove non-functional code
576 ([23195](https://github.com/civicrm/civicrm-core/pull/23195))**
578 - **[REF] [Import] Handle limit with more sanity
579 ([23262](https://github.com/civicrm/civicrm-core/pull/23262))**
581 - **[Import] [Ref] Simplify string concatenation
582 ([23330](https://github.com/civicrm/civicrm-core/pull/23330))**
584 - **[REF][Import] (minor) Extract getHightlightedFields
585 ([23304](https://github.com/civicrm/civicrm-core/pull/23304))**
587 - **[REF] [Import] Obsolete if removal
588 ([23253](https://github.com/civicrm/civicrm-core/pull/23253))**
590 - **[REF] [Import] [Custom] Remove another in-between class
591 ([23222](https://github.com/civicrm/civicrm-core/pull/23222))**
593 - **[REF] [Import] [Trivial] Minor test fixes
594 ([23341](https://github.com/civicrm/civicrm-core/pull/23341))**
596 - **[REF] [Import] Trivial - simplify variable
597 ([23347](https://github.com/civicrm/civicrm-core/pull/23347))**
599 - **[REF] [Import] Ensure jobID is set in contact flow
600 ([23280](https://github.com/civicrm/civicrm-core/pull/23280))**
602 - **[REF] [Import] call non-deprecated function instead of deprecated
603 ([23293](https://github.com/civicrm/civicrm-core/pull/23293))**
605 - **[REF] [Import] [Trivial] Make 'mapper' field available as a submittable
606 value throughout the flow
607 ([23308](https://github.com/civicrm/civicrm-core/pull/23308))**
609 - **[REF] [Import] Extract getContactType
610 ([23284](https://github.com/civicrm/civicrm-core/pull/23284))**
612 - **[REF] [Import] [Trivial] Make mapperKeys parameter optional in construct
613 ([23307](https://github.com/civicrm/civicrm-core/pull/23307))**
615 - **[REF] [Import] [Trivial] Extract duplicate match options
616 ([23300](https://github.com/civicrm/civicrm-core/pull/23300))**
618 - **[REF] [Import] Remove another good intention from the import class
619 ([23261](https://github.com/civicrm/civicrm-core/pull/23261))**
621 - **[REF] [Import] Stop overloading dataSource form
622 ([23237](https://github.com/civicrm/civicrm-core/pull/23237))**
624 - **[REF] [Import] Remove meaningless code
625 ([23242](https://github.com/civicrm/civicrm-core/pull/23242))**
627 - **[REF] [Import] remove pointless fini functions.
628 ([23241](https://github.com/civicrm/civicrm-core/pull/23241))**
630 - **[REF] [Import] Remove warning count - never returned
631 ([23240](https://github.com/civicrm/civicrm-core/pull/23240))**
633 - **[Ref] [Import] Remove another good intention....mapField
634 ([23236](https://github.com/civicrm/civicrm-core/pull/23236))**
636 - **[REF] [Import] Remove last in-between parser class
637 ([23227](https://github.com/civicrm/civicrm-core/pull/23227))**
639 - **[Ref] [Import] Remove another 'in-between' class
640 ([23221](https://github.com/civicrm/civicrm-core/pull/23221))**
642 - **[REF] [Import] [Contact] Remove in-between class
643 ([23223](https://github.com/civicrm/civicrm-core/pull/23223))**
645 - **[Ref] [Import] Cleanup cleanup on old tables for form re-submission
646 ([23276](https://github.com/civicrm/civicrm-core/pull/23276))**
648 - **[REF] [Import] Trivial - simplify variable
649 ([23360](https://github.com/civicrm/civicrm-core/pull/23360))**
651 - **[REF][Import] [Contact] Clean up preview screen
652 ([23340](https://github.com/civicrm/civicrm-core/pull/23340))**
654 - **[Import] [Ref] [Contact] Extract row mapping and add test
655 ([23342](https://github.com/civicrm/civicrm-core/pull/23342))**
657 - **[Ref] [Import] Add extra functions to DataSource
658 ([23344](https://github.com/civicrm/civicrm-core/pull/23344))**
660 - **[REF] [Import] Trivial - simplify variable
661 ([23349](https://github.com/civicrm/civicrm-core/pull/23349))**
663 - **(REF) CryptoRegistry - Fix type declaration
664 ([23220](https://github.com/civicrm/civicrm-core/pull/23220))**
666 - **[REF] [Import] extract validation functionality
667 ([23371](https://github.com/civicrm/civicrm-core/pull/23371))**
669 - **[REF] [Import] Trivial - simplify variables
670 ([23369](https://github.com/civicrm/civicrm-core/pull/23369))**
672 - **[Ref] Get rid of private deprecated legacy function
673 ([23375](https://github.com/civicrm/civicrm-core/pull/23375))**
675 - **[REF] Do not treat site having a default location type as optional
676 ([23282](https://github.com/civicrm/civicrm-core/pull/23282))**
678 - **[REF] Minor code simplifcation - reduce silly lines
679 ([23368](https://github.com/civicrm/civicrm-core/pull/23368))**
681 - **[REF] [Import] Remove unused tpl assign showColNames
682 ([23366](https://github.com/civicrm/civicrm-core/pull/23366))**
684 - **[Import] [Ref] [Minor] Simplify error handling with a try-catch block
685 ([23370](https://github.com/civicrm/civicrm-core/pull/23370))**
687 - **[Ref][Import] Remove another good intention - random email counting
688 ([23367](https://github.com/civicrm/civicrm-core/pull/23367))**
690 - **[REF] [Import] Simplify dataSource contract - remove unused preProcess
691 ([23272](https://github.com/civicrm/civicrm-core/pull/23272))**
693 - **[REF] [Import] Trivial - simplify variables
694 ([23363](https://github.com/civicrm/civicrm-core/pull/23363))**
696 - **(REF) Fix test to use full flow
697 ([23160](https://github.com/civicrm/civicrm-core/pull/23160))**
699 - **[REF] Extract getContributionRecurID
700 ([23158](https://github.com/civicrm/civicrm-core/pull/23158))**
702 - **[REF] [Import] Stop passing submittedValues as parameters
703 ([23343](https://github.com/civicrm/civicrm-core/pull/23343))**
705 - **[REF] [Import] Remove another good intention - import 'conflicts'
706 ([23380](https://github.com/civicrm/civicrm-core/pull/23380))**
708 - **[REF] Code cleanup on location entities for the Contact Summary screen
709 ([22967](https://github.com/civicrm/civicrm-core/pull/22967))**
711 - **[REF] Fix test to use form flow / helper
712 ([23211](https://github.com/civicrm/civicrm-core/pull/23211))**
714 - **[REF][Test] Update loadMappingTest to use form flow
715 ([23286](https://github.com/civicrm/civicrm-core/pull/23286))**
717 - **[REF] Do not pass form properties within the form
718 ([23213](https://github.com/civicrm/civicrm-core/pull/23213))**
720 - **(NFC) authx - Update descriptions and links in `info.xml`
721 ([23169](https://github.com/civicrm/civicrm-core/pull/23169))**
723 - **(NFC) mixin/**.php - Add @since tags
724 ([23423](https://github.com/civicrm/civicrm-core/pull/23423) and
725 [23440](https://github.com/civicrm/civicrm-core/pull/23440))**
727 - **(NFC) Skip CliRunnerTest on php80+drush+Backdrop
728 ([23184](https://github.com/civicrm/civicrm-core/pull/23184))**
730 - **NFC Minor cleanup to Participant confirm
731 ([23357](https://github.com/civicrm/civicrm-core/pull/23357))**
733 - **[NFC] Fix APIv4 docblock annotations for Managed API
734 ([23359](https://github.com/civicrm/civicrm-core/pull/23359))**
736 - **E2E_Core_ErrorTest - Demonstrate whether error pages are well-formed
737 ([23257](https://github.com/civicrm/civicrm-core/pull/23257))**
739 - **(E2E) `testErrorChrome` - Update assertions for page-chrome
740 ([23397](https://github.com/civicrm/civicrm-core/pull/23397))**
742 - **(E2E) testErrorChrome - Skip Backdrop and D8+ (much like D7)
743 ([23398](https://github.com/civicrm/civicrm-core/pull/23398))**
745 ## <a name="credits"></a>Credits
747 This release was developed by the following code authors:
749 AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman;
750 Benjamin W; BrightMinded Ltd - Bradley Taylor; Circle Interactive - Pradeep
751 Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop
752 SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Freeform Solutions - Herb
753 van den Dool; Ginkgo Street Labs - Michael Z Daryabeygi; iXiam - Luciano
754 Spiegel; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Joinery -
755 Allen Shaw; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone
756 Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive
757 Technology Project - Jamie McClelland; Third Sector Design - Kurund Jalmi;
758 Wikimedia Foundation - Eileen McNaughton
760 Most authors also reviewed code for this release; in addition, the following
761 reviewers contributed their comments:
763 Andreas Howiller; Andy Burns; Artful Robot - Rich Lott; Australian Greens - John
764 Twyman; Betty Dolfing; Christian Wach; Circle Interactive - Dave Jenkins, Matt
765 Trim; CiviCoop - Jaap Jansma; iXiam - Vangelis Pantazis; JMA Consulting - Edsel
766 Lopez; John Kingsnorth; Joinery - Allen Shaw; Nicol Wistreich; Tadpole
767 Collective - Kevin Cristiano
769 ## <a name="feedback"></a>Feedback
771 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
772 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm