Merge pull request #17008 from ivan-compucorp/CPS-70-fix-radio-value
[civicrm-core.git] / release-notes / 5.23.0.md
1 # CiviCRM 5.23.0
2
3 Released March 4, 2020
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 - **Add PDF letter functionality for Activities using new token processor
29 ([14662](https://github.com/civicrm/civicrm-core/pull/14662))**
30
31 Adds the ability to create PDF letters that include activity tokens from the
32 activity search.
33
34 - **Add utf8 to utfmb8 conversion api command
35 ([15969](https://github.com/civicrm/civicrm-core/pull/15969))**
36
37 Adds an API to convert the database from utf8 to utf8mb4. This is intended to
38 help early adopters using the utf8mb4 standard (which includes support for
39 emojis) with CiviCRM.
40
41 - **Move exportui extension into core
42 ([16335](https://github.com/civicrm/civicrm-core/pull/16335))**
43
44 Updates the 'Select Fields' screen on step 3 of the Export wizard.
45
46 - **Allow setting a custom L10n/I18n resource directory
47 ([dev/translation#30](https://lab.civicrm.org/dev/translation/issues/30):
48 [15408](https://github.com/civicrm/civicrm-core/pull/15408) and
49 [16583](https://github.com/civicrm/civicrm-core/pull/16583))**
50
51 Adds a new setting for the "L10n/I18n resource directory" which allows site
52 administrators to specify the location of the l10n directory (and allows the
53 directory to be outside of the main code base).
54
55 - **Proposal to add a new hook_civicrm_alterExternUrl
56 ([dev/core#1100](https://lab.civicrm.org/dev/core/issues/1100):
57 [15475](https://github.com/civicrm/civicrm-core/pull/15475))**
58
59 Adds a new hook `hook_civicrm_alterExternUrl` which can be used by extension
60 developers to alter Extern scripts.
61
62 - **Support MySQL 8.0 now that it is GA
63 (Work Towards [dev/core#392](https://lab.civicrm.org/dev/core/issues/392):
64 [16204](https://github.com/civicrm/civicrm-core/pull/16204),
65 [16202](https://github.com/civicrm/civicrm-core/pull/16202) and
66 [16207](https://github.com/civicrm/civicrm-core/pull/16207))**
67
68 Works toward supporting MySQL 8.0 by:
69 + Ensuring that the log_date column on logging tables is NOT NULL in MySQL 8.
70 + Ensuring that `CRM_Utils_QueryFormatterTest` passes on MySQL 8.
71 + Fixing the handling of dates in `getMembershipStarts` function to ensure
72 date is passed to query as yyyy-mm-dd to fix test failure on MySQL 8.
73
74 - **Field Names now Reserved Words in MySQL8
75 ([dev/core#1143](https://lab.civicrm.org/dev/core/issues/1143):
76 [16206](https://github.com/civicrm/civicrm-core/pull/16206),
77 [16203](https://github.com/civicrm/civicrm-core/pull/16203),
78 [16201](https://github.com/civicrm/civicrm-core/pull/16201),
79 [16193](https://github.com/civicrm/civicrm-core/pull/16193) and
80 [16214](https://github.com/civicrm/civicrm-core/pull/16214))**
81
82 MySQL8 reserves the words "description" and "grouping" which CiviCRM uses as
83 field names. These changes work to ensure that these fields play nicely when
84 using MySQL8.
85
86 - **CQ: Migrate simple Preferences & Settings forms to using a Generic class.
87 (Work Towards [dev/core#495](https://lab.civicrm.org/dev/core/issues/495):
88 [16224](https://github.com/civicrm/civicrm-core/pull/16224),
89 [16234](https://github.com/civicrm/civicrm-core/pull/16234),
90 [16235](https://github.com/civicrm/civicrm-core/pull/16235),
91 [16236](https://github.com/civicrm/civicrm-core/pull/16236),
92 [16237](https://github.com/civicrm/civicrm-core/pull/16237),
93 [16233](https://github.com/civicrm/civicrm-core/pull/16233),
94 [16232](https://github.com/civicrm/civicrm-core/pull/16232),
95 [16228](https://github.com/civicrm/civicrm-core/pull/16228),
96 [16229](https://github.com/civicrm/civicrm-core/pull/16229) and
97 [16227](https://github.com/civicrm/civicrm-core/pull/16227))**
98
99 Makes admin settings field labels translatable.
100
101 - **composer.json - Update civicrm-setup
102 ([16423](https://github.com/civicrm/civicrm-core/pull/16423))**
103
104 Improves civicrm-setup for scripted installations of Druapl8 with `cv` and GUI
105 based installations on WordPress.
106
107 - **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
108 (Work Towards [dev/core#560](https://lab.civicrm.org/dev/core/issues/560):
109 [16433](https://github.com/civicrm/civicrm-core/pull/16433))**
110
111 Work towards throwing exceptions instead of fatal errors.
112
113 - **Google+ references should be removed as it phases out (Work Towards
114 [dev/core#711](https://lab.civicrm.org/dev/core/issues/711):
115 [16099](https://github.com/civicrm/civicrm-core/pull/16099) and
116 [16185](https://github.com/civicrm/civicrm-core/pull/16185))**
117
118 Google is phasing out Google+ this begins work to remove all visible
119 references to Google+ from CiviCRM.
120
121 - **"config_backend" should be thoroughly removed (Work Towards
122 [dev/core#1387](https://lab.civicrm.org/dev/core/issues/1387):
123 [15842](https://github.com/civicrm/civicrm-core/pull/15842))**
124
125 Ensures that the column `civicrm_domain.config_backend` is not created on new
126 sites and drops the column `civicrm_domain.config_backend` for sites that
127 started on 4.7-5.20. Additionally, this deprecates some functions related to
128 the setting `civicrm_domain.config_backend`.
129
130 - **Address ID field should be exportable
131 ([dev/core#1512](https://lab.civicrm.org/dev/core/issues/1512):
132 [16240](https://github.com/civicrm/civicrm-core/pull/16240))**
133
134 Makes Address ID an exportable field.
135
136 - **APIv3 - Only scan files for deprecation checks in Entity.get
137 ([16460](https://github.com/civicrm/civicrm-core/pull/16460))**
138
139 Improves performance of APIv3 by stopping scanning nonexistent files.
140
141 - **Add debug info to api4 output
142 ([16351](https://github.com/civicrm/civicrm-core/pull/16351))**
143
144 Improves API4 by adding debug info and displaying the query.
145
146 - **APIv4 - don't throw exception when updating/deleting 0 items
147 ([16374](https://github.com/civicrm/civicrm-core/pull/16374))**
148
149 Improves APIv4's update and delete actions when operating on 0 items so that
150 they do not throw exceptions, instead they return 0 results.
151
152 - **APIv4 - Variable substitution in docblocks
153 ([16449](https://github.com/civicrm/civicrm-core/pull/16449))**
154
155 Makes the help text more meaningful in the APIv4 Explorer by always referring to
156 the correct entity & action names.
157
158 - **APIv4 Explorer css tweaks
159 ([16431](https://github.com/civicrm/civicrm-core/pull/16431))**
160
161 Makes the checkboxes in the APIv4 explorer line up better and makes them bold
162 when checked.
163
164 - **APIv4 docs improvements
165 ([16411](https://github.com/civicrm/civicrm-core/pull/16411))**
166
167 Improves APIv4 docs and their display in the explorer.
168
169 - **APIv4 Explorer - Better UI for defaults param
170 ([16454](https://github.com/civicrm/civicrm-core/pull/16454))**
171
172 Improves APIv4 so that it handles defaults param with select2 instead of a
173 text box. Also shows the new way of using the variadic addSelect function.
174
175 - **Api4 - improve docblocks & display links in explorer
176 ([16373](https://github.com/civicrm/civicrm-core/pull/16373))**
177
178 Improves documentation for most APIv4 entities by adding clickable links
179 to documentation displayed in the APIv4 explorer.
180
181 - **Implement PaymentProcessor and PaymentProcessorType APIv4 Entities
182 ([15624](https://github.com/civicrm/civicrm-core/pull/15624))**
183
184 Adds `PaymentProcesor` and `PaymentProcessorType` entities to APIv4.
185
186 - **Update function to repair indexes to take table as a parameter
187 ([16146](https://github.com/civicrm/civicrm-core/pull/16146))**
188
189 Makes it so the `System.getmissingindices` and `System.updateindexes` APIs
190 accept 'tables' as a parameter (array or string) and limits the results to the
191 specified tables if supplied.
192
193 - **Api4 - Support wildcard * in select clause
194 ([16302](https://github.com/civicrm/civicrm-core/pull/16302))**
195
196 Adds support for the * wildcard in the SELECT clause of APIv4 Get actions.
197
198 - **Api4 - Filter returned fields by contact type
199 ([16300](https://github.com/civicrm/civicrm-core/pull/16300))**
200
201 Ensures that civicrm_api4('Contact', 'get' ...) filters the fields returned
202 based on contact type.
203
204 - **Api4 - Convert field values to correct data type
205 ([16274](https://github.com/civicrm/civicrm-core/pull/16274))**
206
207 Ensures that Api4 returns field values as the correct data type (instead of
208 always as a raw string).
209
210 - **Api4 - format output consistently across get/create/update.
211 ([16305](https://github.com/civicrm/civicrm-core/pull/16305))**
212
213 Improves consistency of output in Api4.
214
215 - **Add more functionality to the api4 $index param
216 ([16257](https://github.com/civicrm/civicrm-core/pull/16257))**
217
218 Improves APIv4 by making the `$index` param support 4 modes: Integer, String,
219 Non-associative array and Associative array and documenting them more clearly.
220
221 - **Use markdown in php docblocks & display in APIv4 Explorer
222 ([16425](https://github.com/civicrm/civicrm-core/pull/16425))**
223
224 Reformats some docblocks to use markdown, and uses the marked.js library to
225 display the docblocks clearly in the APIv4 Explorer.
226
227 - **Civi\Test - Allow `headless()->apply()` (etc) to execute without setup.sh
228 ([16405](https://github.com/civicrm/civicrm-core/pull/16405))**
229
230 Makes it possible to run the headless test suites without running setup.sh.
231
232 - **Allow most values of $civicrm_paths['XXX']['url'] to be relative
233 ([16403](https://github.com/civicrm/civicrm-core/pull/16403))**
234
235 Allows system administrators to override various path and URL computations
236 using a relative URL.
237
238 - **composer.json - Explicitly set target PHP platform
239 ([16421](https://github.com/civicrm/civicrm-core/pull/16421))**
240
241 Refines the way in which composer resolves dependencies - so as to prefer
242 packages that are compatible with CiviCRM's declared minimum requirement.
243
244 - **Add function to set entitySubType for entity forms
245 ([16017](https://github.com/civicrm/civicrm-core/pull/16017))**
246
247 Makes it so entity subtype can be set in a standard way and is used if set.
248
249 - **Add metadata to is_primary fields
250 ([16113](https://github.com/civicrm/civicrm-core/pull/16113))**
251
252 Improves field information for `is_primary` for the sake of Form Builder.
253
254 - **Check field to carry over custom data by default when the other contact has
255 none ([16246](https://github.com/civicrm/civicrm-core/pull/16246))**
256
257 Improves the contact merge screen by defaulting to checking the box to
258 carryover any custom data fields where the contact being merged into has no
259 data.
260
261 - **Add resolved to return array for get_conflicts
262 ([15829](https://github.com/civicrm/civicrm-core/pull/15829))**
263
264 Enhances the `Contact.get_merge_conflicts` API call to also include an array
265 of resolved conflicts.
266
267 ### CiviCase
268
269 - **Add case tokens to email activities
270 ([dev/core#522](https://lab.civicrm.org/dev/core/issues/522):
271 [16105](https://github.com/civicrm/civicrm-core/pull/16105))**
272
273 Adds the ability to use case tokens in PDF Letters and single emails.
274
275 - **Restrict case roles by group
276 ([15570](https://github.com/civicrm/civicrm-core/pull/15570))**
277
278 Adds a setting to restrict contacts available to be selected for a case role
279 by group.
280
281 ### CiviContribute
282
283 - **Add columns to Contribution Detail report: Employer, Location Type,
284 Preferred Communication Method
285 ([dev/core#1573](https://lab.civicrm.org/dev/core/issues/1573):
286 [16458](https://github.com/civicrm/civicrm-core/pull/16458))**
287
288 Improves the Contribution Detail report by making the fields 'Employer',
289 'Location Type', 'Preferred Communication Method' available as columns.
290
291 - **Add "Contributor Name" to Offline Contribution Receipts
292 ([16286](https://github.com/civicrm/civicrm-core/pull/16286))**
293
294 Adds the display name of the contributor to Offline Contribution Receipts.
295
296 - **Add pre/post hooks on ContributionSoft entity
297 ([16264](https://github.com/civicrm/civicrm-core/pull/16264))**
298
299 Add Pre and post hooks for the `ContributionSoft` entity.
300
301 - **Deprecate creating partially paid contributions, other than by partially
302 paying a contribution.
303 ([15855](https://github.com/civicrm/civicrm-core/pull/15855))**
304
305 Adds deprecation noise when an attempt is made to set a contribution to
306 partially paid other than by adding a payment (using Payment.create). This is
307 necessary not only because we have a preferred workflow but also because
308 setting to "Partially Paid" doesn't actually create the `financial_trxn` that
309 is required if done via `Contribution.create` flow.
310
311 ### CiviEvent
312
313 - **Expose "is_show_location" to control display of event locations
314 ([dev/core#1511](https://lab.civicrm.org/dev/core/issues/1511):
315 [16230](https://github.com/civicrm/civicrm-core/pull/16230))**
316
317 Exposes an option to show event location on the event configuration tab.
318
319 ### CiviMail
320
321 - **Make Deja Vu Sans the default font for mailing labels
322 ([dev/core#1502](https://lab.civicrm.org/dev/core/issues/1502):
323 [16216](https://github.com/civicrm/civicrm-core/pull/16216))**
324
325 Updates the default font for mailing labels to be "Deja Vu Sans" which is a
326 font that supports unicode characters.
327
328 - **Pass through mailing id to alterMailContent hook
329 ([dev/core#1253](https://lab.civicrm.org/dev/core/issues/1253):
330 [15306](https://github.com/civicrm/civicrm-core/pull/15306))**
331
332 Improves the `hook_civicrm_alterMailContent` hook by passing the mailing ID to
333 it so that developers can access data about the mailing that the content is
334 part of.
335
336 - **Eventually google will require OAUTH for bounce processing and may require
337 it for outbound SMTP through gmail servers
338 (Work Towards [dev/mail#59](https://lab.civicrm.org/dev/mail/issues/59):
339 [16231](https://github.com/civicrm/civicrm-core/pull/16231),
340 [16518](https://github.com/civicrm/civicrm-core/pull/16518),
341 [16307](https://github.com/civicrm/civicrm-core/pull/16307) and
342 [16306](https://github.com/civicrm/civicrm-core/pull/16306))**
343
344 Adds the ability to connect to IMAP server using XOAUTH2 protocol. Updates the
345 version of zetacomponents/mail package to a version that will support XAUTH2.
346
347 - **Allow personalised 'view in browser' links for mass emails
348 ([dev/core#1064](https://lab.civicrm.org/dev/core/issues/1064):
349 [14591](https://github.com/civicrm/civicrm-core/pull/14591))**
350
351 Improves the CiviMail "view in browser" experience by allowing personalized
352 links.
353
354 ### CiviMember
355
356 - **When viewing a membership show if the status is overridden
357 ([16341](https://github.com/civicrm/civicrm-core/pull/16341))**
358
359 Adds the text "(Overridden)" next to the membership status when viewing a
360 membership for which the status has been overridden.
361
362 - **Auto renew text appears at top of membership edit form
363 ([dev/core#1519](https://lab.civicrm.org/dev/core/issues/1519):
364 [16269](https://github.com/civicrm/civicrm-core/pull/16269))**
365
366 Improves the placement of the Auto Renew help text on the Membership edit
367 form.
368
369 - **Improve accessibility of membership edit form
370 ([dev/core#1520](https://lab.civicrm.org/dev/core/issues/1520):
371 [16272](https://github.com/civicrm/civicrm-core/pull/16272))**
372
373 Updates the help text link text on the membership edit form to be meaningful
374 to improve accessibility.
375
376 - **Permit modified_id as a parameter for membership create api
377 ([16166](https://github.com/civicrm/civicrm-core/pull/16166))**
378
379 Adds `modified_id` as a parameter for APIv3 `membership.create`.
380
381 ### Wordpress Integration
382
383 - **WordPress Version Update
384 ([dev/wordpress#2](https://lab.civicrm.org/dev/wordpress/issues/2):
385 [16211](https://github.com/civicrm/civicrm-core/pull/16211))**
386
387 Ensures the WordPress plugin version is updated by distmaker.
388
389 - **Pass language code to CiviCRM for Wordpress
390 ([16446](https://github.com/civicrm/civicrm-core/pull/16446))**
391
392 Ensures CiviCRM will always pick up the language that WordPress is configured
393 to use instead of having to configure the language in both CiviCRM and
394 WordPress.
395
396 - **Update civicrm.settings.php.template to default to CLEANURL for WP
397 ([16284](https://github.com/civicrm/civicrm-core/pull/16284))**
398
399 Makes it so that new WordPress/CiviCRM sites default to having CleanUrls.
400
401 ## <a name="bugs"></a>Bugs resolved
402
403 ### Core CiviCRM
404
405 - **No Household Member Relationship Created when an Individual shares a
406 relationship with a household
407 ([dev/core#1319](https://lab.civicrm.org/dev/core/issues/1319):
408 [16447](https://github.com/civicrm/civicrm-core/pull/16447))**
409
410 Fixes a regression in core where sharing an address with a household stopped
411 creating a household member relationship so that there is a checkbox (that
412 defaults to checked) to create a household member relationship when sharing
413 an address with a household.
414
415 - **Add mechanism for avoiding conflicts when deduping
416 ([dev/core#1355](https://lab.civicrm.org/dev/core/issues/1355):
417 [15670](https://github.com/civicrm/civicrm-core/pull/15670))**
418
419 Improves dedupe functionality so that it aborts early if two (or more)
420 dedupe jobs are running at the same time and attempt to act on the same
421 contact.
422
423 - **Clear asset builder cache when clearing cache
424 ([dev/core#1395](https://lab.civicrm.org/dev/core/issues/1395):
425 [15857](https://github.com/civicrm/civicrm-core/pull/15857))**
426
427 Ensures the "dyn" folder gets cleared when clearing CiviCRM caches.
428
429 - **Smart groups with deleted/disabled custom fields throw fatal error on its
430 usage. (Work Towards [dev/core#1471](https://lab.civicrm.org/dev/core/issues/1471):
431 [16267](https://github.com/civicrm/civicrm-core/pull/16267))**
432
433 Adds an alert on the system status page when deleted custom fields are used in
434 a smart group.
435
436 - **Invalid links to extension directory
437 ([dev/core#1550](https://lab.civicrm.org/dev/core/issues/1550):
438 [16394](https://github.com/civicrm/civicrm-core/pull/16394))**
439
440 Fixes an invalid link to the extension directory in help text.
441
442 - **CQ: Eliminate 'contribution_invoice_settings' 'Setting' in favour of
443 following our standard (Work Towards
444 [dev/core#1558](https://lab.civicrm.org/dev/core/issues/1558):
445 [16397](https://github.com/civicrm/civicrm-core/pull/16397),
446 [16398](https://github.com/civicrm/civicrm-core/pull/16398),
447 [16412](https://github.com/civicrm/civicrm-core/pull/16412) and
448 [16424](https://github.com/civicrm/civicrm-core/pull/16424))**
449
450 Works towards eliminating the 'contribution_invoice_settings' 'Setting' in
451 favor of following the CiviCRM standard by ensuring the `credit_notes_prefix`
452 is retrieved the standard way, refactoring some old code and adding some data
453 conversion code for the non-standard setting.
454
455 - **Errors in link ReCaptcha and Extension Directory
456 ([dev/translation#33](https://lab.civicrm.org/dev/translation/issues/33):
457 [16387](https://github.com/civicrm/civicrm-core/pull/16387))**
458
459 Fixes a link with incorrect quoting leading to malformed html and a link with
460 an incorrect anchor.
461
462 - **Incorrect Contact Reference option for Postal Code in civicrm_data.sql
463 ([dev/translation#34](https://lab.civicrm.org/dev/translation/issues/34):
464 [16352](https://github.com/civicrm/civicrm-core/pull/16352))**
465
466 Fixes a bug where custom fields of the type "contact reference" would
467 display the country instead of the postal code so that they show the country
468 as expected.
469
470 - **Getting Started dashlet does not cache per language
471 ([dev/translation#35](https://lab.civicrm.org/dev/translation/issues/35):
472 [16354](https://github.com/civicrm/civicrm-core/pull/16354))**
473
474 Ensures the CiviCRM Resources dashlet displays in the user's language.
475
476 - **Call hook_civicrm_copy for RecurringEntity
477 ([16466](https://github.com/civicrm/civicrm-core/pull/16466))**
478
479 Ensures that `hook_civicrm_copy` is called when entities are copied via
480 RecurringEntity.
481
482 - **CRM_Utils_XML::parseFile() - Fix obscure segfault
483 ([16463](https://github.com/civicrm/civicrm-core/pull/16463))**
484
485 Fixes a Segfault error for users with a very specific config (Macs running php
486 7.4.1 or 7.3.9 MAMP 5.6).
487
488 - **Add require_once to api3TestTrait
489 ([16461](https://github.com/civicrm/civicrm-core/pull/16461))**
490
491 Ensures the `api3TestTrait` includes the file for the
492 `_civicrm_api3_get_options_from_params` function instead of relying on it
493 being loaded tangentially.
494
495 - **Cleanup API_Exception usage
496 ([16432](https://github.com/civicrm/civicrm-core/pull/16432))**
497
498 Fixes mis-capitalized exception class name, and moves a APIv3-only check to the
499 right place.
500
501 - **IconPicker widget improvements
502 ([15760](https://github.com/civicrm/civicrm-core/pull/15760))**
503
504 Fixes some style issues with the icon picker widget and adds some controls to
505 the dialog.
506
507 - **CRM_Core_Menu - Fix warnings during local test run
508 ([16406](https://github.com/civicrm/civicrm-core/pull/16406))**
509
510 Fixes the warning `Warning: simplexml_load_file(): I/O warning : failed to
511 load external entity` when running the test suite on Drupal 8 sites on OSX.
512
513 - **Add user friendly error message on merge error
514 ([dev/core#1540](https://lab.civicrm.org/dev/core/issues/1540):
515 [16340](https://github.com/civicrm/civicrm-core/pull/16340))**
516
517 Adds a user friendly error when attempting to merge two contacts from the
518 Advanced Search Screen when no Supervised rule is present on the site, before
519 this change a fatal error was thrown.
520
521 - **Enotice fix ([16293](https://github.com/civicrm/civicrm-core/pull/16293))**
522
523 Fixes an "Warning: Invalid argument supplied foreach()" e-notice on the edit
524 smart group screen.
525
526 - **Force reCaptcha is not working when pay later enabled
527 ([16282](https://github.com/civicrm/civicrm-core/pull/16282))**
528
529 Ensures that ReCaptcha is always on even if only pay later is enabled as a
530 payment method.
531
532 - **Dedupe rules don't work with custom fields/Variable type error during import
533 process ([dev/core#1597](https://lab.civicrm.org/dev/core/issues/1597) and
534 [dev/core#1595](https://lab.civicrm.org/dev/core/issues/1595):
535 [16558](https://github.com/civicrm/civicrm-core/pull/16558))**
536
537 Fixes a regression where dedupe rules were failing when attempting to use a
538 custom field as the match field.
539
540 - **Select_string only accepts integers: 1
541 ([dev/translation#36](https://lab.civicrm.org/dev/translation/issues/36):
542 [16599](https://github.com/civicrm/civicrm-core/pull/16599))**
543
544 Fixes an error for translated sites when trying to perform a contact search.
545
546 - **Advanced Search: "active period" filter regression
547 ([dev/core#1592](https://lab.civicrm.org/dev/core/issues/1592):
548 [16535](https://github.com/civicrm/civicrm-core/pull/16535))**
549
550 Fixes a bug in Advanced Search where the filter "active period" (for
551 relationships) is not respected.
552
553 - **Advanced search links on mailing reports page give "DB Error: syntax error"
554 ([dev/core#1551](https://lab.civicrm.org/dev/core/issues/1551):
555 [16534](https://github.com/civicrm/civicrm-core/pull/16534))**
556
557 Fixes a regression where this url
558 "civicrm/contact/search/advanced?force=1&mailing_id=1" throws a fatal error.
559
560 - **Upgrade fails when civicrm_managed table contains a row including
561 entity_type='PaymentProcessorType';
562 ([dev/core#1498](https://lab.civicrm.org/dev/core/issues/1498):
563 [16521](https://github.com/civicrm/civicrm-core/pull/16521))**
564
565 - **Fix loading with alternate packages path (system-level)
566 ([16407](https://github.com/civicrm/civicrm-core/pull/16407))**
567
568 - **Fix loading with alternate packages path (UI-level)
569 ([16409](https://github.com/civicrm/civicrm-core/pull/16409))**
570
571 - **setup.sh - Fixes for running in basic composer file-structure
572 ([16408](https://github.com/civicrm/civicrm-core/pull/16408))**
573
574 - **Make $civicrm_paths less sensitive to trailing slashes. Add tests.
575 ([16404](https://github.com/civicrm/civicrm-core/pull/16404))**
576
577 - **Prevent PropertBag from being so noisy about deprecation warnings
578 ([16390](https://github.com/civicrm/civicrm-core/pull/16390))**
579
580 - **Wrong parameter passed to executeQuery function
581 ([16353](https://github.com/civicrm/civicrm-core/pull/16353))**
582
583 - **Update temp table handler to support utf8mb4 if that is the db collation
584 ([15992](https://github.com/civicrm/civicrm-core/pull/15992))**
585
586 - **Enforce isSkipLineItem for membership payment entity in Order.create
587 ([15891](https://github.com/civicrm/civicrm-core/pull/15891))**
588
589 - **Fetch Only Active Custom Group Extend Values
590 ([15759](https://github.com/civicrm/civicrm-core/pull/15759))**
591
592 - **Ensure that we always return a raw urlencoded url for extenal urls to fix
593 Flexmailer tests
594 ([16265](https://github.com/civicrm/civicrm-core/pull/16265))**
595
596 - **Country/State PseudoConstant not sorted according to the locale
597 ([16258](https://github.com/civicrm/civicrm-core/pull/16258))**
598
599 - **Change check.gif to an actual gif (was a PNG)
600 ([16220](https://github.com/civicrm/civicrm-core/pull/16220))**
601
602 - **Fix Error handling following DB Package upgrade
603 ([16213](https://github.com/civicrm/civicrm-core/pull/16213))**
604
605 - **Do not escape html in report header and footers on API create
606 ([dev/core#1286](https://lab.civicrm.org/dev/core/issues/1286):
607 [15383](https://github.com/civicrm/civicrm-core/pull/15383))**
608
609 - **Editing a group description inline causes the recent items list to display
610 blank instead of the group title
611 ([dev/core#1506](https://lab.civicrm.org/dev/core/issues/1506):
612 [16197](https://github.com/civicrm/civicrm-core/pull/16197))**
613
614 - **Recent items list has blank entry and E_NOTICE's when viewing an Email
615 activity from activities tab
616 ([dev/core#1507](https://lab.civicrm.org/dev/core/issues/1507):
617 [16195](https://github.com/civicrm/civicrm-core/pull/16195))**
618
619 - **'Merge All Contacts with the Same Address' doesn't consider Household
620 replace individuals that share same address. ([CRM-21858
621 ](https://issues.civicrm.org/jira/browse/CRM-21858) and
622 [dev/core#1364](https://lab.civicrm.org/dev/core/issues/1364):
623 [16369](https://github.com/civicrm/civicrm-core/pull/16369))**
624
625 - **Scheduled reminder emails sent to contacts with do_not_email set or with
626 email on hold ([dev/core#1378](https://lab.civicrm.org/dev/core/issues/1378):
627 [15778](https://github.com/civicrm/civicrm-core/pull/15778))**
628
629 - **Update BAO_Acl internal functions to protected & unused to deprecated
630 ([16189](https://github.com/civicrm/civicrm-core/pull/16189))**
631
632 - **Deactivating CiviContribute causes SQL error
633 ([dev/core#547](https://lab.civicrm.org/dev/core/issues/547):
634 [16365](https://github.com/civicrm/civicrm-core/pull/16365))**
635
636 ### CiviCase
637
638 - **Changing a civicase activity's label breaks the max_instances check
639 ([dev/core#1116](https://lab.civicrm.org/dev/core/issues/1116):
640 [16347](https://github.com/civicrm/civicrm-core/pull/16347))**
641
642 - **Case Resource shows contact names that are not accessible to logged in user
643 ([dev/core#1499](https://lab.civicrm.org/dev/core/issues/1499):
644 [16150](https://github.com/civicrm/civicrm-core/pull/16150))**
645
646 - **Fix activity.case_id token to always display the first case ID
647 ([16208](https://github.com/civicrm/civicrm-core/pull/16208))**
648
649 ### CiviContribute
650
651 - **Positive integer expected for recurring interval even when user is not
652 making a recurring contribution
653 ([dev/core#1588](https://lab.civicrm.org/dev/core/issues/1588):
654 [16532](https://github.com/civicrm/civicrm-core/pull/16532))**
655
656 Fixes a Fatal error when the recurring option "Support recurring intervals" is
657 enabled on a contribution page.
658
659 - **Make getTotalPayments return 0 instead of NULL
660 ([16129](https://github.com/civicrm/civicrm-core/pull/16129))**
661
662 - **Email address token on the confirmation message not working for a pay later
663 contribution. ([dev/core#1255](https://lab.civicrm.org/dev/core/issues/1255):
664 [15314](https://github.com/civicrm/civicrm-core/pull/15314))**
665
666 - **Paypal IPN fails when contact is merged
667 ([dev/core#1249](https://lab.civicrm.org/dev/core/issues/1249):
668 [15307](https://github.com/civicrm/civicrm-core/pull/15307))**
669
670 - **`,` as decimal separator, and [space] as thousand separators leads to api
671 errors ([dev/core#1522](https://lab.civicrm.org/dev/core/issues/1522):
672 [16392](https://github.com/civicrm/civicrm-core/pull/16392))**
673
674 - **Fix retrieving contribution_status_id for manual payment processor
675 ([16018](https://github.com/civicrm/civicrm-core/pull/16018))**
676
677 - **Set contribution status to refunded when it has been refunded
678 ([16148](https://github.com/civicrm/civicrm-core/pull/16148))**
679
680 ### CiviEvent
681
682 - **"Confirm Event Invitation" message template has a bad variable
683 ([dev/event#32](https://lab.civicrm.org/dev/event/issues/32):
684 [16367](https://github.com/civicrm/civicrm-core/pull/16367))**
685
686 Fixes the URL for self-service updates links in the "Confirm Event Invitation"
687 message template to include the participant ID so that they link correctly.
688
689 - **Respect form value for register_date on participant form
690 ([16439](https://github.com/civicrm/civicrm-core/pull/16439))**
691
692 Fixes a bug where the participant registration date is exposed on the
693 backoffice event form, but when a credit card payment is being submitted it is
694 ignored.
695
696 - **Scheduled reminders are incorrectly sent from event templates when
697 "additional group" is selected
698 ([dev/event#28](https://lab.civicrm.org/dev/event/issues/28):
699 [16311](https://github.com/civicrm/civicrm-core/pull/16311))**
700
701 - **"Confirm from waitlist" doesn't consider whether participant roles are
702 counted. ([dev/event#23](https://lab.civicrm.org/dev/event/issues/23):
703 [16098](https://github.com/civicrm/civicrm-core/pull/16098))**
704
705 - **Event registration form doesn't prevent multiple signups for waitlisted
706 participants. ([dev/event#30](https://lab.civicrm.org/dev/event/issues/30):
707 [16358](https://github.com/civicrm/civicrm-core/pull/16358))**
708
709 - **Permission error on event info page for anonymous users
710 ([dev/core#1517](https://lab.civicrm.org/dev/core/issues/1517):
711 [16266](https://github.com/civicrm/civicrm-core/pull/16266))**
712
713 ### CiviMember
714
715 - **Changing the membership type causes multiple copies of related membership
716 text on edit membership page
717 ([dev/core#1537](https://lab.civicrm.org/dev/core/issues/1537):
718 [16326](https://github.com/civicrm/civicrm-core/pull/16326))**
719
720 - **search builder: member since field ignored
721 ([dev/core#1602](https://lab.civicrm.org/dev/core/issues/1602):
722 [16578](https://github.com/civicrm/civicrm-core/pull/16578))**
723
724 Ensures that "Search Builder" respects the "Member Since" field.
725
726 ### Drupal Integration
727
728 - **composer.json - Relax psr/log constraint. Improve D8 compatibility.
729 ([16471](https://github.com/civicrm/civicrm-core/pull/16471))**
730
731 Fixes a composer conflict when installing CiviCRM on Drupal 8.7.
732
733 - **Drupal8: Enabling language breaks a fresh CiviCRM install
734 ([dev/drupal#85](https://lab.civicrm.org/dev/drupal/issues/85):
735 [15912](https://github.com/civicrm/civicrm-core/pull/15912))**
736
737 - **Drupal8 - Contact Report does not load any values in the ACL Group/Role
738 field ([dev/drupal#89](https://lab.civicrm.org/dev/drupal/issues/89):
739 [16273](https://github.com/civicrm/civicrm-core/pull/16273) and
740 [15318](https://github.com/civicrm/civicrm-core/pull/15318))**
741
742 - **CiviCRM session instance not working when Masquerading in Drupal 7
743 ([dev/drupal#98](https://lab.civicrm.org/dev/drupal/issues/98):
744 [16177](https://github.com/civicrm/civicrm-core/pull/16177))**
745
746 - **Wiki link in OG Sync module description gives a 404
747 ([dev/drupal#102](https://lab.civicrm.org/dev/drupal/issues/102):
748 [595](https://github.com/civicrm/civicrm-drupal/pull/595))**
749
750 ## <a name="misc"></a>Miscellany
751
752 - **Duplicate code (for real)
753 ([16363](https://github.com/civicrm/civicrm-core/pull/16363) and
754 [16567](https://github.com/civicrm/civicrm-core/pull/16567))**
755
756 - **Mailing Subscribe Form: remove nbsp from descriptions
757 ([16186](https://github.com/civicrm/civicrm-core/pull/16186))**
758
759 - **Remove SymfonyComponents/YAML package
760 ([285](https://github.com/civicrm/civicrm-packages/pull/285))**
761
762 - **Update DB_Object
763 ([280](https://github.com/civicrm/civicrm-packages/pull/280))**
764
765 - **Update gettext to latest tagged release
766 ([227](https://github.com/civicrm/civicrm-packages/pull/227))**
767
768 - **Upgrade DB package to be version 1.9.3
769 ([276](https://github.com/civicrm/civicrm-packages/pull/276))**
770
771 - **Update copyright headers following merge of #14662
772 ([16199](https://github.com/civicrm/civicrm-core/pull/16199))**
773
774 - **Add tax rates to metadata
775 ([16253](https://github.com/civicrm/civicrm-core/pull/16253))**
776
777 - **Add helper for getting participantValues
778 ([16355](https://github.com/civicrm/civicrm-core/pull/16355))**
779
780 - **Update docs link for edit scheduled job parameters
781 ([16299](https://github.com/civicrm/civicrm-core/pull/16299))**
782
783 - **Start to use function rather than multiple queries for event details add
784 test ([16329](https://github.com/civicrm/civicrm-core/pull/16329))**
785
786 - **Simplify event title retrieval, use cache, add test
787 ([16345](https://github.com/civicrm/civicrm-core/pull/16345))**
788
789 - **Change function buildEventFeeForm to non-static
790 ([16337](https://github.com/civicrm/civicrm-core/pull/16337))**
791
792 - **Finish removal of deferred_revenue_enabled from non-standard setting
793 ([16395](https://github.com/civicrm/civicrm-core/pull/16395))**
794
795 - **Api4 - Improve Entity::get
796 ([16346](https://github.com/civicrm/civicrm-core/pull/16346))**
797
798 - **Api4 - Make abstract function abstract
799 ([16343](https://github.com/civicrm/civicrm-core/pull/16343))**
800
801 - **Api4 - Use explicit adder functions rather than magicMethod
802 ([16372](https://github.com/civicrm/civicrm-core/pull/16372))**
803
804 - **Update contributor-key.yml
805 ([16268](https://github.com/civicrm/civicrm-core/pull/16268))**
806
807 - **Update my contributor details
808 ([16184](https://github.com/civicrm/civicrm-core/pull/16184))**
809
810 - **APIv4 documentation & code cleanup
811 ([16457](https://github.com/civicrm/civicrm-core/pull/16457))**
812
813 - **Fix minor typo in help text.
814 ([16303](https://github.com/civicrm/civicrm-core/pull/16303))**
815
816 - **Extract code for isPaymentOnExistingContribution.
817 ([16327](https://github.com/civicrm/civicrm-core/pull/16327))**
818
819 - **Remove function that exactly matches parent class.
820 ([16316](https://github.com/civicrm/civicrm-core/pull/16316))**
821
822 - **Remove unsupported and unused package DB_Table
823 ([277](https://github.com/civicrm/civicrm-packages/pull/277))**
824
825 - **Remove $ids as parameter for Membership::add
826 ([16192](https://github.com/civicrm/civicrm-core/pull/16192))**
827
828 - **Remove unused code in Case/Form/Activity postProcess
829 ([16304](https://github.com/civicrm/civicrm-core/pull/16304))**
830
831 - **Remove never passed-in parameter from addPayments
832 ([16262](https://github.com/civicrm/civicrm-core/pull/16262))**
833
834 - **Remove duplicate line of code
835 ([16317](https://github.com/civicrm/civicrm-core/pull/16317))**
836
837 - **Remove unreachable code lines.
838 ([16349](https://github.com/civicrm/civicrm-core/pull/16349))**
839
840 - **Remove unused code
841 ([16371](https://github.com/civicrm/civicrm-core/pull/16371))**
842
843 - **Remove irrelevant code.
844 ([16348](https://github.com/civicrm/civicrm-core/pull/16348))**
845
846 - **Remove unindexed join from getACLRoles query
847 ([16183](https://github.com/civicrm/civicrm-core/pull/16183))**
848
849 - **Remove unmaintained unsupported System_Command package
850 ([283](https://github.com/civicrm/civicrm-packages/pull/283))**
851
852 - **fix typo's in the text
853 ([16361](https://github.com/civicrm/civicrm-core/pull/16361))**
854
855 - **fix more typo's in the text
856 ([16368](https://github.com/civicrm/civicrm-core/pull/16368))**
857
858 - **Fix unit tests after gettext merge
859 ([282](https://github.com/civicrm/civicrm-packages/pull/282))**
860
861 - **Update recently-added PathUrlTest to be more representative
862 ([16607](https://github.com/civicrm/civicrm-core/pull/16607))**
863
864 - **Fix tests to use buildFeeFn
865 ([16389](https://github.com/civicrm/civicrm-core/pull/16389))**
866
867 - **Add unit test to back office form when a payment is made against a partially
868 paid contribution
869 ([16437](https://github.com/civicrm/civicrm-core/pull/16437))**
870
871 - **Revised version of test from #15725
872 ([15948](https://github.com/civicrm/civicrm-core/pull/15948))**
873
874 - **Update failing test to match intervening changes elsewhere
875 ([16270](https://github.com/civicrm/civicrm-core/pull/16270))**
876
877 - **Fix unit test so price set params are valid
878 ([16344](https://github.com/civicrm/civicrm-core/pull/16344))**
879
880 - **Update Export unit test to pass on MySQL 8
881 ([16375](https://github.com/civicrm/civicrm-core/pull/16375))**
882
883 - **Basic extraction of paid event processing
884 ([16281](https://github.com/civicrm/civicrm-core/pull/16281))**
885
886 - **Refactor CRM_Contact_BAO_Contact::importableFields() to use metadata
887 ([16222](https://github.com/civicrm/civicrm-core/pull/16222))**
888
889 - **[REF] Remove setting of unused function.
890 ([16315](https://github.com/civicrm/civicrm-core/pull/16315))**
891
892 - **[REF] Remove apparent copy & paste code.
893 ([16308](https://github.com/civicrm/civicrm-core/pull/16308))**
894
895 - **[REF] Move the bounce to the start of the form submit
896 ([16333](https://github.com/civicrm/civicrm-core/pull/16333))**
897
898 - **[REF] Eliminate silly parameter from function signature.
899 ([16330](https://github.com/civicrm/civicrm-core/pull/16330))**
900
901 - **[REF] Extract code that assigns event variables to the tpl
902 ([16325](https://github.com/civicrm/civicrm-core/pull/16325))**
903
904 - **[REF] Fix return value on deleting financial type
905 ([16280](https://github.com/civicrm/civicrm-core/pull/16280))**
906
907 - **[REF] Move handling of default payment instrument for a payment proc…
908 ([16279](https://github.com/civicrm/civicrm-core/pull/16279))**
909
910 - **[REF] Move use of priceSetID & amount_override to where they are used
911 ([16252](https://github.com/civicrm/civicrm-core/pull/16252))**
912
913 - **[REF] Cleanup CRM_Member_BAO_Membership::buildMembershipTypeValues
914 ([16059](https://github.com/civicrm/civicrm-core/pull/16059))**
915
916 - **[REF] Remove enclosed & escaped variables
917 ([16249](https://github.com/civicrm/civicrm-core/pull/16249))**
918
919 - **[REF] Minor code simplification in dedupe.
920 ([16245](https://github.com/civicrm/civicrm-core/pull/16245))**
921
922 - **[REF] move sessionStart functionality to System subclass
923 ([16241](https://github.com/civicrm/civicrm-core/pull/16241))**
924
925 - **[REF] Update fetchAll function signature to match parent function
926 ([16198](https://github.com/civicrm/civicrm-core/pull/16198))**
927
928 - **REF Simplify if statement on case activity form
929 ([16210](https://github.com/civicrm/civicrm-core/pull/16210))**
930
931 - **[REF] Eliminate ['userID'] as an input for BAO_Membership::create
932 ([16196](https://github.com/civicrm/civicrm-core/pull/16196))**
933
934 - **[REF] Move the storing of custom data into the add function rather th…
935 ([16191](https://github.com/civicrm/civicrm-core/pull/16191))**
936
937 - **[REF] Remove never-passed param from getLineItems
938 ([16251](https://github.com/civicrm/civicrm-core/pull/16251))**
939
940 - **[REF] Extract location wrangling code.
941 ([16247](https://github.com/civicrm/civicrm-core/pull/16247))**
942
943 - **[REF] rename lineItem & lineItems variable
944 ([16254](https://github.com/civicrm/civicrm-core/pull/16254))**
945
946 - **[REF] Activate fetchAll function in DataObject file
947 ([281](https://github.com/civicrm/civicrm-packages/pull/281))**
948
949 - **[REF] Reduce places where we pass ids into Mailing::create
950 ([16263](https://github.com/civicrm/civicrm-core/pull/16263))**
951
952 - **[REF] Remove ids and fully deprecate passing it to Contribution::create
953 ([16256](https://github.com/civicrm/civicrm-core/pull/16256))**
954
955 - **[REF] Pass params into function rather than this weird check for whether
956 params exists. ([16438](https://github.com/civicrm/civicrm-core/pull/16438))**
957
958 - **[REF] Move assignment of BalanceAmount
959 ([16334](https://github.com/civicrm/civicrm-core/pull/16334))**
960
961 - **[REF] Fix CRM_Core_BAO_UFGroup::createUFJoin to not receive by reference.
962 ([16260](https://github.com/civicrm/civicrm-core/pull/16260))**
963
964 - **[REF] Interim code cleanup - make the usage of addPayments clearer
965 ([16441](https://github.com/civicrm/civicrm-core/pull/16441))**
966
967 - **[REF] Remove unused variable
968 ([16434](https://github.com/civicrm/civicrm-core/pull/16434))**
969
970 - **[REF] Add test for line item, extract fn
971 ([16402](https://github.com/civicrm/civicrm-core/pull/16402))**
972
973 - **[REF] Ensure that the from is correctly modified in both the main que…
974 ([16422](https://github.com/civicrm/civicrm-core/pull/16422))**
975
976 - **[REF] Remove some unused variables
977 ([16414](https://github.com/civicrm/civicrm-core/pull/16414))**
978
979 - **REF Extract code to build pcp_supporter_text and enable translation
980 ([16271](https://github.com/civicrm/civicrm-core/pull/16271))**
981
982 - **[REF] Remove unused variables
983 ([16396](https://github.com/civicrm/civicrm-core/pull/16396))**
984
985 - **[REF] Extract function to export header row
986 ([16364](https://github.com/civicrm/civicrm-core/pull/16364))**
987
988 - **[REF] Extract & share code to determine revenue recognition date.
989 ([16388](https://github.com/civicrm/civicrm-core/pull/16388))**
990
991 - **[NFC] code cleanup
992 ([16310](https://github.com/civicrm/civicrm-core/pull/16310))**
993
994 - **[NFC] Code cleanup
995 ([16309](https://github.com/civicrm/civicrm-core/pull/16309))**
996
997 - **[NFC] code cleanup
998 ([16301](https://github.com/civicrm/civicrm-core/pull/16301))**
999
1000 - **[NFC] Minor code cleanup
1001 ([16290](https://github.com/civicrm/civicrm-core/pull/16290))**
1002
1003 - **[NFC] Extend unit test to cover for recent refactor by eileen to ensure sup…
1004 ([16332](https://github.com/civicrm/civicrm-core/pull/16332))**
1005
1006 - **[NFC] Code formatting
1007 ([16331](https://github.com/civicrm/civicrm-core/pull/16331))**
1008
1009 - **[NFC] Code cleanup
1010 ([16314](https://github.com/civicrm/civicrm-core/pull/16314))**
1011
1012 - **NFC Convert Manage PCP page to short array syntax
1013 ([16320](https://github.com/civicrm/civicrm-core/pull/16320))**
1014
1015 - **[NFC] Add in more assertions around the content of line items and tot…
1016 ([16218](https://github.com/civicrm/civicrm-core/pull/16218))**
1017
1018 - **[NFC] Doc Block fix should be bool no boolean as per coding standards
1019 ([596](https://github.com/civicrm/civicrm-drupal/pull/596))**
1020
1021 - **[NFC] Code comments
1022 ([16248](https://github.com/civicrm/civicrm-core/pull/16248))**
1023
1024 - **[NFC] Minor cleanup in test class
1025 ([16250](https://github.com/civicrm/civicrm-core/pull/16250))**
1026
1027 - **[NFC] Skip utf8mb4 test on MySQL versions lower than 5.7
1028 ([16483](https://github.com/civicrm/civicrm-core/pull/16483))**
1029
1030 - **[NFC] Test update following PR #16150, assertEquals first param is th…
1031 ([16219](https://github.com/civicrm/civicrm-core/pull/16219))**
1032
1033 - **[NFC] Explicitly specify that it is the Payment processor Type Name n…
1034 ([16275](https://github.com/civicrm/civicrm-core/pull/16275))**
1035
1036 - **NFC Fix TokenRow docblock
1037 ([16452](https://github.com/civicrm/civicrm-core/pull/16452))**
1038
1039 - **[NFC] Minor test cleanup.
1040 ([16450](https://github.com/civicrm/civicrm-core/pull/16450))**
1041
1042 - **[NFC] Remove unused local variables from
1043 CRM_Contribute_Form_AdditionalPayment::processCreditCard
1044 ([16342](https://github.com/civicrm/civicrm-core/pull/16342))**
1045
1046 - **[NFC] throw exceptions, single quotes, declare exceptions, remove unused
1047 param ([16415](https://github.com/civicrm/civicrm-core/pull/16415))**
1048
1049 - **(NFC) Update Var declaration to be standard in CRM folder
1050 ([16382](https://github.com/civicrm/civicrm-core/pull/16382))**
1051
1052 - **(NFC) Civi/*.php - Update for
1053 Drupal.Commenting.VariableComment.IncorrectVarType
1054 ([16379](https://github.com/civicrm/civicrm-core/pull/16379))**
1055
1056 - **NFC Add parameter definition to membershipstatus.calc
1057 ([16370](https://github.com/civicrm/civicrm-core/pull/16370))**
1058
1059 - **[NFC] Ensure that annon permissions are correctly assigned when enabling
1060 civicrm webtest module in backdrop
1061 ([16547](https://github.com/civicrm/civicrm-core/pull/16547))**
1062
1063 - **[NFC] Fix style error
1064 ([16549](https://github.com/civicrm/civicrm-core/pull/16549))**
1065
1066 ## <a name="credits"></a>Credits
1067
1068 This release was developed by the following code authors:
1069
1070 a-n The Artists Information Company - William Mortada; AGH Strategies - Andrew
1071 Hunt; Agileware - Pengyi Zhang; Andrei Mondoc; British Humanist Association -
1072 Andrew West; Caltha - Tomasz Pietrzkowski; Chris Burgess; Circle Interactive -
1073 Pradeep Nayak; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten;
1074 CiviDesk - Yashodha Chaku; CompuCorp - Vinu Varshith Sekar; Coop SymbioTIC -
1075 Mathieu Lutfy, Samuel Vanhove; Dave D; Electronic Frontier Foundation - Mark
1076 Burdett; Fuzion - Jitendra Purohit; GMCVO Databases - Jade Gaunt; JMA Consulting -
1077 Seamus Lee; John Kingsnorth; Joinery - Allen Shaw; Joris Vercammen; Megaphone
1078 Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting -
1079 Matthew Wire; myDropWizard - David Snopek; Progressive Technology Project -
1080 Jamie McClelland; Squiffle Consulting - Aidan Saunders; Tadpole Collective -
1081 Kevin Cristiano; Third Sector Design - Michael McAndrew; Timbsoft Technologies -
1082 Tunbola Ogunwande; Web Access - Kurund Jalmi; Wikimedia Foundation - Eileen
1083 McNaughton, Elliott Eggleston
1084
1085 Most authors also reviewed code for this release; in addition, the following
1086 reviewers contributed their comments:
1087
1088 AGH Strategies - Alice Frumin; Agileware - Justin Freeman; Andrew
1089 Cormick-Dockery; Artful Robot - Rich Lott; Christian Wach; CiviDesk - Nicolas
1090 Ganivet; CompuCorp - Shitij Gugnani; Francesc Bassas i Bullich; Fuzion - Luke
1091 Stewart, Peter Davis; Greenpeace Central and Eastern Europe - Patrick Figel; JMA
1092 Consulting - Joe Murray, Monish Deb; Korlon - Stuart Gaston; Lighthouse Design
1093 and Consulting - Brian Shaughnessy; mikantchap; Richard van Oosterhout; SYSTOPIA
1094 Organisationsberatung - Björn Endres; tapashdatta;
1095
1096 ## <a name="feedback"></a>Feedback
1097
1098 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
1099 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
1100 and contact `@agh1`.