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? | no |
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 - **System Check - Add a reminder about CIVICRM_SIGN_KEYS.
29 ([23224](https://github.com/civicrm/civicrm-core/pull/23224))**
31 Adds a system status check regarding CIVICRM_SIGN_KEYS.
33 - **Restrict allowed uploads - contact image
34 ([23147](https://github.com/civicrm/civicrm-core/pull/23147))**
36 Restrict file types allowed for the contact image field.
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))**
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.
46 - **CustomFields - Improve metadata about which custom groups belong to which
47 entities ([23336](https://github.com/civicrm/civicrm-core/pull/23336))**
49 Makes the relationship between Custom Field Groups, entity types and subtypes
50 discoverable via APIv4 metadata.
52 - **Api4 - minor fixes and updates
53 ([23310](https://github.com/civicrm/civicrm-core/pull/23310))**
55 A few minor tweaks to APIv4 to improve working with extensions that have
58 - **APIv4 - Add NOW() date function
59 ([23378](https://github.com/civicrm/civicrm-core/pull/23378))**
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.
64 - **APIv4 - Add MONTH sql function
65 ([23377](https://github.com/civicrm/civicrm-core/pull/23377))**
67 Adds the MONTH function to APIv4 & SearchKit, which enables e.g. filtering
70 - **APIv4 - Add `is_active` extra field to Domain entity
71 ([22159](https://github.com/civicrm/civicrm-core/pull/22159))**
73 Adds a new calculated field to APIv4 making it easier to get the current
76 - **APIv4 - Add `Managed::reconcile` action.
77 ([23243](https://github.com/civicrm/civicrm-core/pull/23243))**
79 Adds APIv4 wrapper around ManagedEntities->reconcile();
81 - **Implement countFetched() and countMatched() on api4 results.
82 ([22115](https://github.com/civicrm/civicrm-core/pull/22115))**
84 Provides clearer methods for finding out how many API4 results you've got.
86 - **SearchKit - Add data segmentation functionality
87 ([23059](https://github.com/civicrm/civicrm-core/pull/23059))**
89 Creates virtual fields based on flexible segmentation criteria.
91 - **SearchKit - Add date pseudo-fields
92 ([23381](https://github.com/civicrm/civicrm-core/pull/23381))**
94 Exposes date pseudo-fields to SearchKit.
96 - **make survey title available in form builder
97 ([23322](https://github.com/civicrm/civicrm-core/pull/23322))**
99 Makes the Survey title field available in Afform.
101 - **Afform - Dispatch event to alter admin metadata; provide mixin
102 ([23303](https://github.com/civicrm/civicrm-core/pull/23303))**
104 Makes Form-Builder more extensible by allowing extensions to add to the list
105 of available entities, elements, input types, styles, etc.
107 - **Afform - Improve dragging into dropzones
108 ([23239](https://github.com/civicrm/civicrm-core/pull/23239))**
110 Improves the drag-n-drop UX in Afform when composing complex layouts.
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))**
116 Adds a "reset" button for search forms.
118 - **Add icons for SavedSearch and SearchDisplay entities
119 ([23149](https://github.com/civicrm/civicrm-core/pull/23149))**
121 Improves user experience by adding icons for Saved Search and Search Display
124 - **Simplify and improve performance of query to insert updated cache
125 ([21943](https://github.com/civicrm/civicrm-core/pull/21943))**
127 Caching performance improvement.
131 - **Make links to sign a petition easily accessible on the form.
132 ([23316](https://github.com/civicrm/civicrm-core/pull/23316))**
134 Adds links to the bottom of the petition edit form so users can more easily
135 publicize their petition.
139 - **Activity Type + Activity Status + Case Type not being Combined Correctly in
141 ([dev/core#3249](https://lab.civicrm.org/dev/core/-/issues/3249):
142 [23313](https://github.com/civicrm/civicrm-core/pull/23313))**
144 Makes casetype a managed entity.
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))**
152 Updates return parameters on all payment processors to match expected results.
154 ### Drupal Integration
156 - **Extend command drush civicrm-ext-list for Drupal 8
157 ([72](https://github.com/civicrm/civicrm-drupal-8/pull/72))**
159 Extends the `drush civicrm-ext-list` command to work for drupal 8.
161 ### Wordpress Integration
163 - **WordPress - Display site-theme/decorations on error screens
164 ([22805](https://github.com/civicrm/civicrm-core/pull/22805))**
166 Improve error screen user experience by displaying site theme/decorations.
168 ## <a name="bugs"></a>Bugs resolved
172 - **Improve validation of start and end dates for events, contribution pages and
174 [dev/core#2846](https://lab.civicrm.org/dev/core/-/issues/2846):
175 [21513](https://github.com/civicrm/civicrm-core/pull/21513))**
177 Applies form-level validation to start and end dates.
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))**
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))**
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))**
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))**
195 - **APIv4 - Support pseudoconstant suffixes in getFields
196 ([23348](https://github.com/civicrm/civicrm-core/pull/23348))**
198 - **APIv4 - Deprecate unnecessary event
199 ([23311](https://github.com/civicrm/civicrm-core/pull/23311))**
201 - **SearchKit - Consistently check for date field
202 ([23354](https://github.com/civicrm/civicrm-core/pull/23354))**
204 - **SearchKit - Ensure all date and timestamp fields are presented with datepicker
205 ([23335](https://github.com/civicrm/civicrm-core/pull/23335))**
207 - **SearchKit - Keep label when switching entity
208 ([23319](https://github.com/civicrm/civicrm-core/pull/23319))**
210 - **SearchKit - Move grid css to its own file
211 ([23315](https://github.com/civicrm/civicrm-core/pull/23315))**
213 - **add missing Parishes of Bermuda (civicrm_state_province)
214 ([23339](https://github.com/civicrm/civicrm-core/pull/23339))**
216 - **PR 22070 follow-up: reinstate respecting no_display on report column headers
217 ([23321](https://github.com/civicrm/civicrm-core/pull/23321))**
219 Respect no_display on report column headers.
221 - **Remove preferred email format from inline edit
222 ([23269](https://github.com/civicrm/civicrm-core/pull/23269))**
224 - **Do not escape wizard class - procede straight to Hogwarts
225 ([23185](https://github.com/civicrm/civicrm-core/pull/23185))**
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))**
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))**
235 - **SearchKit - Fix selection of fields when creating a Data Segment
236 ([23265](https://github.com/civicrm/civicrm-core/pull/23265))**
238 - **APIv4 - Fix fatal error on getFields when passing in contact id
239 ([23389](https://github.com/civicrm/civicrm-core/pull/23389))**
241 - **ACLCache: Efficiency. Fix duplicate inserts
242 ([21993](https://github.com/civicrm/civicrm-core/pull/21993))**
244 - **Update expired root certs (5.50)
245 ([23387](https://github.com/civicrm/civicrm-core/pull/23387))**
247 - **Fix 'Table already exists' error when running 5.50 upgrade twice
248 ([23355](https://github.com/civicrm/civicrm-core/pull/23355))**
250 - **5.50.alpha1.mysql.tpl - Escape `grouping` (reserved word in MySQL 8.0)
251 ([23396](https://github.com/civicrm/civicrm-core/pull/23396))**
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))**
257 Stop dropping temp table on finish of contact import job.
259 - **[Import] Upgrade saved import names for contacts
260 ([23288](https://github.com/civicrm/civicrm-core/pull/23288))**
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).
266 - **[Import] Enotice fix on contact import field mapping screen
267 ([23306](https://github.com/civicrm/civicrm-core/pull/23306))**
269 - **[Import] Output errors, duplicates csvs directly from the user job table
270 ([23292](https://github.com/civicrm/civicrm-core/pull/23292))**
272 - **Import - fix comment
273 ([23361](https://github.com/civicrm/civicrm-core/pull/23361))**
275 - **resolve TypeError: unsupported operand types: string + int;
276 ([23015](https://github.com/civicrm/civicrm-core/pull/23015))**
278 - **Ensure tags fields are assigned to tpl for email form test
279 ([23183](https://github.com/civicrm/civicrm-core/pull/23183))**
281 - **Don't overescape links in pledge tab
282 ([23206](https://github.com/civicrm/civicrm-core/pull/23206))**
284 - **Don't overescape tab links
285 ([23205](https://github.com/civicrm/civicrm-core/pull/23205))**
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))**
291 - **Translation - distinguish between 'On' for date and 'On'/'Off'
292 ([23379](https://github.com/civicrm/civicrm-core/pull/23379))**
294 - **getSelfServiceEligibility: fix string translation
295 ([23163](https://github.com/civicrm/civicrm-core/pull/23163))**
297 - **Centralise skipColumnHeader to one function (fixes notices, cleans code)
298 ([23135](https://github.com/civicrm/civicrm-core/pull/23135))**
300 - **✍🏼 Fix spelling of "additional". Numerous uses of "additonal"
301 ([23162](https://github.com/civicrm/civicrm-core/pull/23162))**
303 - **Ensure deleteURL variable for ContactImage.tpl
304 ([23150](https://github.com/civicrm/civicrm-core/pull/23150))**
306 - **Don't overescape weights in default-escape mode
307 ([23152](https://github.com/civicrm/civicrm-core/pull/23152))**
309 - **Avoid PHP notices on FinancialAccount table
310 ([23151](https://github.com/civicrm/civicrm-core/pull/23151))**
312 - **Apply nodefaults to row actions
313 ([23207](https://github.com/civicrm/civicrm-core/pull/23207))**
315 - **Add nodefaults to access.tpl
316 ([23208](https://github.com/civicrm/civicrm-core/pull/23208))**
318 - **Add nodefaults to group edit form
319 ([23225](https://github.com/civicrm/civicrm-core/pull/23225))**
321 - **Add smarty:nodefaults to ManageEvent page.
322 ([23173](https://github.com/civicrm/civicrm-core/pull/23173))**
324 - **Add smarty:nodefaults to default.tpl form.
325 ([23153](https://github.com/civicrm/civicrm-core/pull/23153))**
327 - **Apply nodefaults to contact tabs for escape-on-output
328 ([23232](https://github.com/civicrm/civicrm-core/pull/23232))**
332 - **update-supporter-url
333 ([23287](https://github.com/civicrm/civicrm-core/pull/23287))**
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))**
341 Case activity only has 25 contacts listed from Case Resources in the Send Copy
346 - **Paypal pro, a.net ipn - do not update start date, status
347 ([23156](https://github.com/civicrm/civicrm-core/pull/23156))**
349 - **Compare currencies as well as amounts on template Contribution change
350 ([23298](https://github.com/civicrm/civicrm-core/pull/23298))**
352 - **Start to fix misnamed FinancialTrxn bao
353 ([23190](https://github.com/civicrm/civicrm-core/pull/23190))**
355 - **ensure checkbox custom fields on contributions import properly
356 ([23246](https://github.com/civicrm/civicrm-core/pull/23246))**
358 - **Always assign pay_later_receipt
359 ([23080](https://github.com/civicrm/civicrm-core/pull/23080))**
361 - **Contribution dashboard links work in escape-on-output mode
362 ([23174](https://github.com/civicrm/civicrm-core/pull/23174))**
364 - **Improve financial trxn spec to require required fields
365 ([22571](https://github.com/civicrm/civicrm-core/pull/22571))**
367 - **Always use cancelSubscription form for cancelling recurring contributions
368 ([23210](https://github.com/civicrm/civicrm-core/pull/23210))**
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))**
375 Definitively load main files during bootstrap.
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))**
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))**
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))**
392 - **Event self-service cancel: allow cancelling Waitlist registration
393 ([23164](https://github.com/civicrm/civicrm-core/pull/23164))**
397 - **send group subscription welcome email only if template is enabled
398 ([23139](https://github.com/civicrm/civicrm-core/pull/23139))**
403 ([23229](https://github.com/civicrm/civicrm-core/pull/23229))**
405 Remove limit when printing labels from member search action.
407 - **Set default values on MembershipView to stop PHP notices
408 ([22664](https://github.com/civicrm/civicrm-core/pull/22664))**
410 ### Drupal Integration
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))**
416 Fixes the 'Error: Class "Symfony\Cmf\Component\Routing\RouteObjectInterface"
417 not found' when using cv in drupal 9 and 10.
419 ## <a name="misc"></a>Miscellany
421 - **ManagedEntities - Allow targeted reconciliation. Add hook parameter.
423 ([22959](https://github.com/civicrm/civicrm-core/pull/22959))**
426 ([23362](https://github.com/civicrm/civicrm-core/pull/23362))**
428 - **[Import] Rename dedupe rule id field from dedupe to dedupe_rule_id field
429 ([23263](https://github.com/civicrm/civicrm-core/pull/23263))**
431 - **Add import function to parser
432 ([23338](https://github.com/civicrm/civicrm-core/pull/23338))**
435 ([23244](https://github.com/civicrm/civicrm-core/pull/23244))**
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))**
441 - **Stop adding obsolete currencies to new installs
442 ([23345](https://github.com/civicrm/civicrm-core/pull/23345))**
444 - **Managed entity cleanup
445 ([23251](https://github.com/civicrm/civicrm-core/pull/23251))**
447 - **Take a reality check on moneyCleaning in test
448 ([23215](https://github.com/civicrm/civicrm-core/pull/23215))**
450 - **Minor simplification of getAmountLevelText
451 ([23159](https://github.com/civicrm/civicrm-core/pull/23159))**
453 - **Standardise activity datasource text
454 ([23217](https://github.com/civicrm/civicrm-core/pull/23217))**
456 - **Standardise participant import text
457 ([23218](https://github.com/civicrm/civicrm-core/pull/23218))**
459 - **Standardize DataSource file for Contribution & Membership
460 ([23186](https://github.com/civicrm/civicrm-core/pull/23186))**
462 - **Release - Set version compatibility for core extensions when updating core
463 ([23143](https://github.com/civicrm/civicrm-core/pull/23143))**
465 - **Make static function static - processCaseTags
466 ([23278](https://github.com/civicrm/civicrm-core/pull/23278))**
468 - **Whitespace cleanup in template file
469 ([23277](https://github.com/civicrm/civicrm-core/pull/23277))**
471 - **IDE cheer - cast var explicitly to an int
472 ([23350](https://github.com/civicrm/civicrm-core/pull/23350))**
474 - **Remove unused variable
475 ([23352](https://github.com/civicrm/civicrm-core/pull/23352))**
477 - **Minor function simplification in private function
478 ([23364](https://github.com/civicrm/civicrm-core/pull/23364))**
480 - **ManagedEntities - Update version number for mgd-php
481 ([23422](https://github.com/civicrm/civicrm-core/pull/23422))**
483 - **Minor readability improvement
484 ([23157](https://github.com/civicrm/civicrm-core/pull/23157))**
486 - **Cleanup crmMailing/Templates.js
487 ([23188](https://github.com/civicrm/civicrm-core/pull/23188))**
489 - **Further simplify variable retrieval
490 ([23172](https://github.com/civicrm/civicrm-core/pull/23172))**
492 - **Remove unused parameter from private function
493 ([23194](https://github.com/civicrm/civicrm-core/pull/23194))**
495 - **Remove code only needed by Drupal6
496 ([23212](https://github.com/civicrm/civicrm-core/pull/23212))**
498 - **Remove unused function
499 ([23200](https://github.com/civicrm/civicrm-core/pull/23200))**
501 - **Remove an unset variable
502 ([23285](https://github.com/civicrm/civicrm-core/pull/23285))**
504 - **Remove some copy & paste
505 ([23171](https://github.com/civicrm/civicrm-core/pull/23171))**
507 - **Remove another good intention - unused variables
508 ([23275](https://github.com/civicrm/civicrm-core/pull/23275))**
510 - **Reduce use of reference
511 ([23165](https://github.com/civicrm/civicrm-core/pull/23165))**
513 - **Remove-single-value-loop
514 ([23155](https://github.com/civicrm/civicrm-core/pull/23155))**
516 - **[REF] [Import] Use shared file instead of now-identical files
517 ([23216](https://github.com/civicrm/civicrm-core/pull/23216))**
519 - **[REF] [Import] Standardise import text for CustomData import
520 ([23219](https://github.com/civicrm/civicrm-core/pull/23219))**
522 - **[Ref] [Import] [csv] Remove non-functional code
523 ([23195](https://github.com/civicrm/civicrm-core/pull/23195))**
525 - **[REF] [Import] Handle limit with more sanity
526 ([23262](https://github.com/civicrm/civicrm-core/pull/23262))**
528 - **[Import] [Ref] Simplify string concatenation
529 ([23330](https://github.com/civicrm/civicrm-core/pull/23330))**
531 - **[REF][Import] (minor) Extract getHightlightedFields
532 ([23304](https://github.com/civicrm/civicrm-core/pull/23304))**
534 - **[REF] [Import] Obsolete if removal
535 ([23253](https://github.com/civicrm/civicrm-core/pull/23253))**
537 - **[REF] [Import] [Custom] Remove another in-between class
538 ([23222](https://github.com/civicrm/civicrm-core/pull/23222))**
540 - **[REF] [Import] [Trivial] Minor test fixes
541 ([23341](https://github.com/civicrm/civicrm-core/pull/23341))**
543 - **[REF] [Import] Trivial - simplify variable
544 ([23347](https://github.com/civicrm/civicrm-core/pull/23347))**
546 - **[REF] [Import] Ensure jobID is set in contact flow
547 ([23280](https://github.com/civicrm/civicrm-core/pull/23280))**
549 - **[REF] [Import] call non-deprecated function instead of deprecated
550 ([23293](https://github.com/civicrm/civicrm-core/pull/23293))**
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))**
556 - **[REF] [Import] Extract getContactType
557 ([23284](https://github.com/civicrm/civicrm-core/pull/23284))**
559 - **[REF] [Import] [Trivial] Make mapperKeys parameter optional in construct
560 ([23307](https://github.com/civicrm/civicrm-core/pull/23307))**
562 - **[REF] [Import] [Trivial] Extract duplicate match options
563 ([23300](https://github.com/civicrm/civicrm-core/pull/23300))**
565 - **[REF] [Import] Remove another good intention from the import class
566 ([23261](https://github.com/civicrm/civicrm-core/pull/23261))**
568 - **[REF] [Import] Stop overloading dataSource form
569 ([23237](https://github.com/civicrm/civicrm-core/pull/23237))**
571 - **[REF] [Import] Remove meaningless code
572 ([23242](https://github.com/civicrm/civicrm-core/pull/23242))**
574 - **[REF] [Import] remove pointless fini functions.
575 ([23241](https://github.com/civicrm/civicrm-core/pull/23241))**
577 - **[REF] [Import] Remove warning count - never returned
578 ([23240](https://github.com/civicrm/civicrm-core/pull/23240))**
580 - **[Ref] [Import] Remove another good intention....mapField
581 ([23236](https://github.com/civicrm/civicrm-core/pull/23236))**
583 - **[REF] [Import] Remove last in-between parser class
584 ([23227](https://github.com/civicrm/civicrm-core/pull/23227))**
586 - **[Ref] [Import] Remove another 'in-between' class
587 ([23221](https://github.com/civicrm/civicrm-core/pull/23221))**
589 - **[REF] [Import] [Contact] Remove in-between class
590 ([23223](https://github.com/civicrm/civicrm-core/pull/23223))**
592 - **[Ref] [Import] Cleanup cleanup on old tables for form re-submission
593 ([23276](https://github.com/civicrm/civicrm-core/pull/23276))**
595 - **[REF] [Import] Trivial - simplify variable
596 ([23360](https://github.com/civicrm/civicrm-core/pull/23360))**
598 - **[REF][Import] [Contact] Clean up preview screen
599 ([23340](https://github.com/civicrm/civicrm-core/pull/23340))**
601 - **[Import] [Ref] [Contact] Extract row mapping and add test
602 ([23342](https://github.com/civicrm/civicrm-core/pull/23342))**
604 - **[Ref] [Import] Add extra functions to DataSource
605 ([23344](https://github.com/civicrm/civicrm-core/pull/23344))**
607 - **[REF] [Import] Trivial - simplify variable
608 ([23349](https://github.com/civicrm/civicrm-core/pull/23349))**
610 - **(REF) CryptoRegistry - Fix type declaration
611 ([23220](https://github.com/civicrm/civicrm-core/pull/23220))**
613 - **[REF] [Import] extract validation functionality
614 ([23371](https://github.com/civicrm/civicrm-core/pull/23371))**
616 - **[REF] [Import] Trivial - simplify variables
617 ([23369](https://github.com/civicrm/civicrm-core/pull/23369))**
619 - **[Ref] Get rid of private deprecated legacy function
620 ([23375](https://github.com/civicrm/civicrm-core/pull/23375))**
622 - **[REF] Do not treat site having a default location type as optional
623 ([23282](https://github.com/civicrm/civicrm-core/pull/23282))**
625 - **[REF] Minor code simplifcation - reduce silly lines
626 ([23368](https://github.com/civicrm/civicrm-core/pull/23368))**
628 - **[REF] [Import] Remove unused tpl assign showColNames
629 ([23366](https://github.com/civicrm/civicrm-core/pull/23366))**
631 - **[Import] [Ref] [Minor] Simplify error handling with a try-catch block
632 ([23370](https://github.com/civicrm/civicrm-core/pull/23370))**
634 - **[Ref][Import] Remove another good intention - random email counting
635 ([23367](https://github.com/civicrm/civicrm-core/pull/23367))**
637 - **[REF] [Import] Simplify dataSource contract - remove unused preProcess
638 ([23272](https://github.com/civicrm/civicrm-core/pull/23272))**
640 - **[REF] [Import] Trivial - simplify variables
641 ([23363](https://github.com/civicrm/civicrm-core/pull/23363))**
643 - **(REF) Fix test to use full flow
644 ([23160](https://github.com/civicrm/civicrm-core/pull/23160))**
646 - **[REF] Extract getContributionRecurID
647 ([23158](https://github.com/civicrm/civicrm-core/pull/23158))**
649 - **[REF] [Import] Stop passing submittedValues as parameters
650 ([23343](https://github.com/civicrm/civicrm-core/pull/23343))**
652 - **[REF] [Import] Remove another good intention - import 'conflicts'
653 ([23380](https://github.com/civicrm/civicrm-core/pull/23380))**
655 - **[REF] Code cleanup on location entities for the Contact Summary screen
656 ([22967](https://github.com/civicrm/civicrm-core/pull/22967))**
658 - **[REF] Fix test to use form flow / helper
659 ([23211](https://github.com/civicrm/civicrm-core/pull/23211))**
661 - **[REF][Test] Update loadMappingTest to use form flow
662 ([23286](https://github.com/civicrm/civicrm-core/pull/23286))**
664 - **[REF] Do not pass form properties within the form
665 ([23213](https://github.com/civicrm/civicrm-core/pull/23213))**
667 - **(NFC) authx - Update descriptions and links in `info.xml`
668 ([23169](https://github.com/civicrm/civicrm-core/pull/23169))**
670 - **(NFC) mixin/**.php - Add @since tags
671 ([23423](https://github.com/civicrm/civicrm-core/pull/23423))**
673 - **(NFC) Skip CliRunnerTest on php80+drush+Backdrop
674 ([23184](https://github.com/civicrm/civicrm-core/pull/23184))**
676 - **NFC Minor cleanup to Participant confirm
677 ([23357](https://github.com/civicrm/civicrm-core/pull/23357))**
679 - **[NFC] Fix APIv4 docblock annotations for Managed API
680 ([23359](https://github.com/civicrm/civicrm-core/pull/23359))**
682 - **E2E_Core_ErrorTest - Demonstrate whether error pages are well-formed
683 ([23257](https://github.com/civicrm/civicrm-core/pull/23257))**
685 - **(E2E) `testErrorChrome` - Update assertions for page-chrome
686 ([23397](https://github.com/civicrm/civicrm-core/pull/23397))**
688 - **(E2E) testErrorChrome - Skip Backdrop and D8+ (much like D7)
689 ([23398](https://github.com/civicrm/civicrm-core/pull/23398))**
691 ## <a name="credits"></a>Credits
693 This release was developed by the following code authors:
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
706 Most authors also reviewed code for this release; in addition, the following
707 reviewers contributed their comments:
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;
715 ## <a name="feedback"></a>Feedback
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