remove extra question mark
[civicrm-core.git] / release-notes / 5.30.0.md
1 # CiviCRM 5.30.0
2
3 Released October 7, 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 - **APIv4 Explorer: Generate short cv code
29 ([18089](https://github.com/civicrm/civicrm-core/pull/18089))**
30
31 Improves the APIv4 Explorer user interface by including cv code to run the API
32 from CLI.
33
34 - **Optimise proximity custom search, by reducing addGeocodingData fn call
35 ([18248](https://github.com/civicrm/civicrm-core/pull/18248))**
36
37 Improves performance of the proximity custom search.
38
39 - **Support more table names for utf8mb4 conversions and database name
40 ([18249](https://github.com/civicrm/civicrm-core/pull/18249))**
41
42 Improves the System.utf8conversion API so that one can specify table patterns
43 and databases.
44
45 - **distmaker - Autogenerate civicrm-*-patchset.tar.gz
46 ([18229](https://github.com/civicrm/civicrm-core/pull/18229))**
47
48 Adds a script to autogenerate `civicrm-*-patchset.tar.gz` instead of having to
49 manually generate it every release.
50
51 - **Finish allowing use of SSL to connect to database
52 (Work Towards [dev/core#1926](https://lab.civicrm.org/dev/core/-/issues/1926):
53 [18095](https://github.com/civicrm/civicrm-core/pull/18095))**
54
55 Code cleanup towards the goal of allowing SSL database connections.
56
57 - **Profile settings - Add new contacts to a Group? is misleading
58 ([dev/core#1950](https://lab.civicrm.org/dev/core/-/issues/1950):
59 [18153](https://github.com/civicrm/civicrm-core/pull/18153))**
60
61 Improves user experience by editing the help text and description for the "Add
62 new contacts to a Group?" setting.
63
64 - **API4: Inconsistent behavior on Role ID
65 ([dev/event#37](https://lab.civicrm.org/dev/event/-/issues/37):
66 [18285](https://github.com/civicrm/civicrm-core/pull/18285))**
67
68 Allows searching within arrays or serialized strings via APIv4 (and the new
69 Search extension).
70
71 - **APIv4 - Fix output of CustomValue create/save/update
72 ([18195](https://github.com/civicrm/civicrm-core/pull/18195))**
73
74 Improves APIv4 output when saving custom pseudo-entities so that it outputs
75 the values saved instead of `[is_error => 0, result => true]`.
76
77 - **Add ability to enable query logging per process
78 ([18335](https://github.com/civicrm/civicrm-core/pull/18335))**
79
80 Makes it possible to enable logging by process as opposed to all processes or
81 no processes.
82
83 - **Expose field label to APIv4 and Search creator
84 ([18255](https://github.com/civicrm/civicrm-core/pull/18255) and
85 [18256](https://github.com/civicrm/civicrm-core/pull/18256))**
86
87 Progress towards codifying the difference between a field's title and
88 label in the schema.
89
90 These changes:
91 - expose labels to APIv4
92 - switch to using labels in the new search extension.
93 - separates titles from labels in exportable fields.
94 - attempts to clarify the difference between titles and labels in the
95 getfields description as:
96 - title: "Technical name of field, shown in API and exports"
97 - label: "User-facing label, shown on most forms and displays"
98
99 - **Metadata fix - phone_type_id, location_type_id, gender_id
100 ([18114](https://github.com/civicrm/civicrm-core/pull/18114))**
101
102 Improves metadata for various fields to align with new title and label
103 standards.
104
105 - **CRM_Utils_VersionCheck - respect force param
106 ([18183](https://github.com/civicrm/civicrm-core/pull/18183))**
107
108 Makes the versionCheck job more consistent with other checks by respecting
109 APIv4's "force" setting to run even if disabled.
110
111 - **Add Serialize key to payment_processor field for Event & Contribution Page
112 ([18110](https://github.com/civicrm/civicrm-core/pull/18110))**
113
114 Use metatdata rather than code handling to save array of processors. This
115 makes it so that the DAO can handle arrays if it knows the format.
116
117 ### CiviContribute
118
119 - **Shell Financial ACLs extension
120 ([18269](https://github.com/civicrm/civicrm-core/pull/18269))**
121
122 Begins work to move Financial ACL code into an extension.
123
124 - **Add Line Item v4 API (Work Towards
125 [dev/core#1980](https://lab.civicrm.org/dev/core/-/issues/1980):
126 [18275](https://github.com/civicrm/civicrm-core/pull/18275) and
127 [18293](https://github.com/civicrm/civicrm-core/pull/18293))**
128
129 Extends permission handling for LineItem delete and LineItem ACLs from APIv3 to
130 to APIv4 by moving it to the `financialacls` extension.
131
132 - **Book keeping Report : Add Time field for Transaction Date and Receive Date
133 field ([dev/report#47](https://lab.civicrm.org/dev/report/-/issues/47):
134 [18268](https://github.com/civicrm/civicrm-core/pull/18268))**
135
136 Adds a time field to the "Transaction Date" and "Receive Date" filters on the
137 Bookkeeping report.
138
139 ### CiviEvent
140
141 - **Wrap "not you" message in crmRegion
142 ([18236](https://github.com/civicrm/civicrm-core/pull/18236))**
143
144 Wraps the "Not you, do you want to register for someone else" message in a
145 crmRegion so that it can be removed/replaced by the buildForm hook.
146
147 ### CiviMail
148
149 - **Add new columns to mailing summary report
150 ([dev/core#1944](https://lab.civicrm.org/dev/core/-/issues/1944):
151 [18132](https://github.com/civicrm/civicrm-core/pull/18132))**
152
153 Adds two new columns to the mailing summary report: "Sender Name" and "Sender
154 Email".
155
156 - **Add disable_smarty option to MessageTemplate.send API
157 ([18118](https://github.com/civicrm/civicrm-core/pull/18118))**
158
159 Improves the `MessageTemplate.send` API by adding a new optional parameter
160 "disable_smarty", when "disable_smarty" is set to true smarty is not applied
161 to the contents of the message.
162
163 ### WordPress Integration
164
165 - **Switch WP over to new installer
166 ([dev/wordpress#37](https://lab.civicrm.org/dev/wordpress/-/issues/37):
167 [215](https://github.com/civicrm/civicrm-wordpress/pull/215))**
168
169 Switch to new CiviCRM Installer.
170
171 ### Drupal Integration
172
173 - **Allow for the setting of an additional constant CIVICRM_DRUSH_DSN
174 ([613](https://github.com/civicrm/civicrm-drupal/pull/613))**
175
176 Allows sites to configure CIVICRM_DRUSH_DSN for drush to use to set up
177 database connections.
178
179 ## <a name="bugs"></a>Bugs resolved
180
181 ### Core CiviCRM
182
183 - **Increase size of mysql field in export table for column with
184 CRM_Utils_Type::T_INT type
185 ([dev/core#1661](https://lab.civicrm.org/dev/core/-/issues/1661):
186 [17956](https://github.com/civicrm/civicrm-core/pull/17956))**
187
188 Fixes some data too long for column errors when exporting.
189
190 - **Improve robustness of api/class.api.php
191 ([18283](https://github.com/civicrm/civicrm-core/pull/18283))**
192
193 Ensures that the API mode is set to "local" when an empty string is passed
194 as the server.
195
196 - **add serialize data to actionschedule
197 ([18289](https://github.com/civicrm/civicrm-core/pull/18289))**
198
199 Ensures one can create a scheduled reminder via the API that triggers on two
200 different events.
201
202 - **API - Add upgrade-safe checks to ensure table exists before reading
203 ([18135](https://github.com/civicrm/civicrm-core/pull/18135))**
204
205 Adds efficient checks into the API (v3 and v4) to ensure a DAO table
206 exists before trying to read from it. This prevents hard-crashes in the UI
207 when there are pending updates (or during the upgrade process itself),
208
209 - **DB_DataObject - Read CIVICRM_DEBUG_LOG_QUERY correctly
210 ([305](https://github.com/civicrm/civicrm-packages/pull/305))**
211
212 Makes The value of `CIVICRM_DEBUG_LOG_QUERY` TRUE-ish or FALSE-ish instead of
213 considering any value true.
214
215 - **APIv4 Explorer - Fix possible undefined index
216 ([18093](https://github.com/civicrm/civicrm-core/pull/18093))**
217
218 - **Option value cache key missing domain ID can result in wrong value retrieved
219 for domain ([dev/core#1971](https://lab.civicrm.org/dev/core/-/issues/1971):
220 [18252](https://github.com/civicrm/civicrm-core/pull/18252))**
221
222 - **Upgrade screen - show success instead of error if already upgraded
223 ([18181](https://github.com/civicrm/civicrm-core/pull/18181))**
224
225 - **trim white space when checking dedupe
226 ([18234](https://github.com/civicrm/civicrm-core/pull/18234))**
227
228 - **Fix search extension excluded from tarball
229 ([18402](https://github.com/civicrm/civicrm-core/pull/18402))**
230
231 - **Permissions problem on add or edit template
232 ([dev/core#2008](https://lab.civicrm.org/dev/core/-/issues/2008):
233 [18437](https://github.com/civicrm/civicrm-core/pull/18437))**
234
235 - **Search ext: Aggregate field fixes
236 ([18520](https://github.com/civicrm/civicrm-core/pull/18520))**
237
238 - **Some datepicker fields only allow choosing dates far in the future
239 ([dev/core#2052](https://lab.civicrm.org/dev/core/-/issues/2052):
240 [18524](https://github.com/civicrm/civicrm-core/pull/18524))**
241
242 ### CiviCase
243
244 - **Fix js for case type status change on load
245 ([18254](https://github.com/civicrm/civicrm-core/pull/18254))**
246
247 ### CiviContribute
248
249 - **Clean money for non-deductible amount
250 ([18300](https://github.com/civicrm/civicrm-core/pull/18300))**
251
252 Ensures that the Contribution API cleans data entered into the "non-deductible
253 amount" field the same way it cleans the other money fields.
254
255 - **Processors - remove gross_amount param from processors
256 ([18177](https://github.com/civicrm/civicrm-core/pull/18177))**
257
258 The gross_amount param is returned by a bunch of processors but is not used so
259 this removes it.
260
261 - **{contribution.receipt_date} token does not use any CiviCRM date formatter,
262 output in YYYY-MM-DD HH:MM:SS format and {contribution.receive_date} also uses
263 a non-standard format
264 ([18176](https://github.com/civicrm/civicrm-core/pull/18176))**
265
266 - **Fix PHP notice on contribution page
267 ([18116](https://github.com/civicrm/civicrm-core/pull/18116))**
268
269 - **E_NOTICE on contribution page widget tab
270 ([18189](https://github.com/civicrm/civicrm-core/pull/18189))**
271
272 - **change payment instrument when pending payment paid through credit card
273 ([dev/core#912](https://lab.civicrm.org/dev/core/-/issues/912):
274 [18266](https://github.com/civicrm/civicrm-core/pull/18266))**
275
276 - **PayPal Standard redirect fails on WordPress
277 ([dev/core#1997](https://lab.civicrm.org/dev/core/-/issues/1997):
278 [18525](https://github.com/civicrm/civicrm-core/pull/18525) and
279 [18534](https://github.com/civicrm/civicrm-core/pull/18534))**
280
281 - **Invoice no longer displays amount paid/due
282 ([dev/core#2035](https://lab.civicrm.org/dev/core/-/issues/2035):
283 [18602](https://github.com/civicrm/civicrm-core/pull/18602) and
284 [18628](https://github.com/civicrm/civicrm-core/pull/18628))**
285
286 ### CiviEvent
287
288 - **Allow the "Cancellation or transfer time limit (hours)" to be negative
289 ([dev/event#34](https://lab.civicrm.org/dev/event/-/issues/34):
290 [18067](https://github.com/civicrm/civicrm-core/pull/18067))**
291
292 Ensures that entering a negative value into "Cancellation or transfer time
293 limit (hours)" saves correctly and works as expected.
294
295 - **Batch Update via Profile does not supply data for editing when custom fields
296 created after participant added to event
297 ([18235](https://github.com/civicrm/civicrm-core/pull/18235))**
298
299 - **E_WARNING when saving event fees admin page if there's no discounts set
300 ([18169](https://github.com/civicrm/civicrm-core/pull/18169))**
301
302 ### CiviMail
303
304 - **Unexpected behavior from api.MailingEventSubscribe.create
305 (Work Towards [dev/mail#24](https://lab.civicrm.org/dev/mail/-/issues/24):
306 [18325](https://github.com/civicrm/civicrm-core/pull/18325))**
307
308 Fixes labels for APIv3 `MailingEventSubscribe.create` so that they accurately
309 represent the behavior (unsubscribe v subscribe).
310
311 - **Mass SMS: Limit group selection to mailing groups
312 ([18154](https://github.com/civicrm/civicrm-core/pull/18154))**
313
314 Ensures that the fields "Include Groups" and "Exclude Groups" on the "New SMS" form
315 only list groups of the type "Mailing List".
316
317 - **Help text bubble is empty and smarty errors when .hlp file is missing for
318 settings forms
319 ([dev/core#1920](https://lab.civicrm.org/dev/core/-/issues/1920):
320 [18648](https://github.com/civicrm/civicrm-core/pull/18648))**
321
322 - **Fix error when creating new AB test mailing because domain_id is a required
323 field ([18685](https://github.com/civicrm/civicrm-core/pull/18685))**
324
325 ### CiviMember
326
327 - **Fix regression on back-office membership renewal by credit card
328 ([18615](https://github.com/civicrm/civicrm-core/pull/18615))**
329
330 ### Drupal Integration
331
332 - **Fix : Enable Drupal Watchdog Logging for Drupal 8
333 ([dev/core#1943](https://lab.civicrm.org/dev/core/-/issues/1943):
334 [18115](https://github.com/civicrm/civicrm-core/pull/18115))**
335
336 Ensure the setting `Enable Drupal Watchdog Logging` works on Drupal 8 sites.
337
338 ### WordPress Integration
339
340 - **Check if $post defined before trying to use its field values.
341 ([18168](https://github.com/civicrm/civicrm-core/pull/18168))**
342
343 This fixes php notices like `PHP Notice: Trying to get property 'post_name'
344 of non-object in <webroot
345 path>\wp-content\plugins\civicrm\civicrm\CRM\Utils\System\WordPress.php on
346 line 288`
347
348 ## <a name="misc"></a>Miscellany
349
350 - **Fix regen and update civicrm_generated
351 ([18273](https://github.com/civicrm/civicrm-core/pull/18273))**
352
353 - **Do not pass by reference for createRelatedMemberships
354 ([18243](https://github.com/civicrm/civicrm-core/pull/18243))**
355
356 - **Typo in groups dropdown on scheduled reminders admin form
357 ([dev/core#1956](https://lab.civicrm.org/dev/core/-/issues/1956):
358 [18323](https://github.com/civicrm/civicrm-core/pull/18323))**
359
360 - **Replace CRM_Utils_Array::value in contribution/confirm and bao/membership
361 ([18157](https://github.com/civicrm/civicrm-core/pull/18157))**
362
363 - **Cleanup contactID variables in event/contribution register buildQuickForm
364 ([18208](https://github.com/civicrm/civicrm-core/pull/18208))**
365
366 - **Use already determined value for contributionRecurID
367 ([18265](https://github.com/civicrm/civicrm-core/pull/18265))**
368
369 - **Minor code cleanup to Order API
370 ([18217](https://github.com/civicrm/civicrm-core/pull/18217))**
371
372 - **CodeGen - Add use statement to extensions DAO files
373 ([18094](https://github.com/civicrm/civicrm-core/pull/18094))**
374
375 - **Use more appropriate money format function
376 ([18151](https://github.com/civicrm/civicrm-core/pull/18151))**
377
378 - **Metadata fix in activity search
379 ([18216](https://github.com/civicrm/civicrm-core/pull/18216))**
380
381 - **Replace deprecated Drupal 8 constants
382 ([18240](https://github.com/civicrm/civicrm-core/pull/18240))**
383
384 - **Spelling mistake "separator" not "seperator"
385 ([18238](https://github.com/civicrm/civicrm-core/pull/18238))**
386
387 - **Remove unused variables from repeatTransaction
388 ([18209](https://github.com/civicrm/civicrm-core/pull/18209))**
389
390 - **Remove first_contribution key from repeattransaction
391 ([18197](https://github.com/civicrm/civicrm-core/pull/18197))**
392
393 - **Remove unnecessary transformation of upgrade msg severity
394 ([18182](https://github.com/civicrm/civicrm-core/pull/18182))**
395
396 - **Remove old dropped items from the schema xml
397 ([18244](https://github.com/civicrm/civicrm-core/pull/18244))**
398
399 - **Remove 1 of 2 remaining places where relatedObjects is called in
400 completeOrder ([18257](https://github.com/civicrm/civicrm-core/pull/18257))**
401
402 - **Remove last pass-by-reference in completeOrder signature
403 ([18258](https://github.com/civicrm/civicrm-core/pull/18258))**
404
405 - **Remove legacy handling for 'fixing' line_item.entity_id
406 ([18155](https://github.com/civicrm/civicrm-core/pull/18155))**
407
408 - **Remove deprecated code ids['userId']
409 ([18156](https://github.com/civicrm/civicrm-core/pull/18156))**
410
411 - **Remove 'hack' that overwrites result of searchColumns hook in mailings list
412 ([18237](https://github.com/civicrm/civicrm-core/pull/18237))**
413
414 - **Remove unused variable
415 ([18108](https://github.com/civicrm/civicrm-core/pull/18108))**
416
417 - **Remove handling for 4.2 DBs
418 ([612](https://github.com/civicrm/civicrm-drupal/pull/612))**
419
420 - **Remove ref to logging time
421 ([18221](https://github.com/civicrm/civicrm-core/pull/18221))**
422
423 - **Remove 2019 deprecated function
424 ([18242](https://github.com/civicrm/civicrm-core/pull/18242))**
425
426 - **remove dropped tables for activity target and assignment
427 ([18280](https://github.com/civicrm/civicrm-core/pull/18280))**
428
429 - **Deprecate 'trapException' in DAO::executeQuery
430 ([18138](https://github.com/civicrm/civicrm-core/pull/18138))**
431
432 - **Deprecate/remove unused checkVersion() functions
433 ([18134](https://github.com/civicrm/civicrm-core/pull/18134))**
434
435 - **[REF] Ensure that the form param _id is set when adding a new group w…
436 ([18250](https://github.com/civicrm/civicrm-core/pull/18250))**
437
438 - **[REF] Update recent replacement for CRM_Utils_Array::value
439 ([18172](https://github.com/civicrm/civicrm-core/pull/18172) and
440 [18453](https://github.com/civicrm/civicrm-core/pull/18453))**
441
442 - **[REF] Remove usages of CRM_Utils_Money::format that pass in a blank s…
443 ([18142](https://github.com/civicrm/civicrm-core/pull/18142))**
444
445 - **[REF] Move isSSLDSN() function to avoid potential problems
446 ([18131](https://github.com/civicrm/civicrm-core/pull/18131))**
447
448 - **(REF) CRM_Core_Region - Remove unused bits
449 ([18139](https://github.com/civicrm/civicrm-core/pull/18139))**
450
451 - **[REF] Move Auto DSN Switching into a core function
452 ([18270](https://github.com/civicrm/civicrm-core/pull/18270))**
453
454 - **[REF] Remove DB Package as it is now deployed using composer
455 ([302](https://github.com/civicrm/civicrm-packages/pull/302))**
456
457 - **[REF] Deploy Pear DB package using composer
458 ([18027](https://github.com/civicrm/civicrm-core/pull/18027) and
459 [18473](https://github.com/civicrm/civicrm-core/pull/18473))**
460
461 - **[REF] Update subtypeInfo function to leverage getAllContactTypes
462 ([17934](https://github.com/civicrm/civicrm-core/pull/17934))**
463
464 - **[REF] Fix metadata label for contribution_page_id
465 ([18047](https://github.com/civicrm/civicrm-core/pull/18047))**
466
467 - **REF Remove unused passbyreference and var from ipn_process_transaction
468 ([18311](https://github.com/civicrm/civicrm-core/pull/18311))**
469
470 - **[REF] Clean up return variables on updateContributionStatus,
471 updatePendingOnlineContribution
472 ([18303](https://github.com/civicrm/civicrm-core/pull/18303))**
473
474 - **[REF] Move function to delete merged contacts to the Merger class and
475 include all instances of the pair
476 ([17980](https://github.com/civicrm/civicrm-core/pull/17980))**
477
478 - **[REF] Remove most interaction with $objects in completeOrder
479 ([18315](https://github.com/civicrm/civicrm-core/pull/18315))**
480
481 - **[REF] Fix financial item allocation of negative payments against completed
482 payments ([17810](https://github.com/civicrm/civicrm-core/pull/17810))**
483
484 - **[REF] Separate and move line-item specific portion of checkTaxAmount to
485 LineItem api ([18294](https://github.com/civicrm/civicrm-core/pull/18294))**
486
487 - **[REF] [test] Slight increase in test cover & make functions more re-usable
488 ([18291](https://github.com/civicrm/civicrm-core/pull/18291))**
489
490 - **[REF] simplify retrieval of existing membership on membership renewal form
491 ([18296](https://github.com/civicrm/civicrm-core/pull/18296))**
492
493 - **[REF] Extract function to get locations to merge, rename 'operation' …
494 ([17991](https://github.com/civicrm/civicrm-core/pull/17991))**
495
496 - **[REF] Deprecate unused SQL temptable functions
497 ([18171](https://github.com/civicrm/civicrm-core/pull/18171))**
498
499 - **Minor cleanup in test class
500 ([18170](https://github.com/civicrm/civicrm-core/pull/18170))**
501
502 - **Add line item acl tests
503 ([18274](https://github.com/civicrm/civicrm-core/pull/18274))**
504
505 - **Fix test set up to call Order.create to create the correct line items
506 ([18279](https://github.com/civicrm/civicrm-core/pull/18279))**
507
508 - **Test & remove handling for max_related in renewal form
509 ([18295](https://github.com/civicrm/civicrm-core/pull/18295))**
510
511 - **Add test to check, remove unnecessary lines
512 ([18292](https://github.com/civicrm/civicrm-core/pull/18292))**
513
514 - **[Test framework] - Remove test for deprecated way of calling hook invoke
515 ([18136](https://github.com/civicrm/civicrm-core/pull/18136))**
516
517 - **(NFC) Update various DAO checksums
518 ([18184](https://github.com/civicrm/civicrm-core/pull/18184))**
519
520 - **[NFC] Add code comments about hidden but still used buttons
521 ([18119](https://github.com/civicrm/civicrm-core/pull/18119))**
522
523 - **[NFC] [Test] Initial testing on event payment forms.
524 ([18112](https://github.com/civicrm/civicrm-core/pull/18112))**
525
526 - **[NFC] Update locale over-ride documentation to mention that it is mos…
527 ([17919](https://github.com/civicrm/civicrm-core/pull/17919))**
528
529 - **(NFC) Add some tests to the `resources` group
530 ([18211](https://github.com/civicrm/civicrm-core/pull/18211))**
531
532 - **[NFC] Some DAO checksums not updated
533 ([18239](https://github.com/civicrm/civicrm-core/pull/18239))**
534
535 - **[NFC] Array formatting
536 ([18109](https://github.com/civicrm/civicrm-core/pull/18109))**
537
538 - **[NFC] IDE cleanup - arrays, single quotes
539 ([614](https://github.com/civicrm/civicrm-drupal/pull/614))**
540
541 - **[NFC] Update Event DAO Checksum
542 ([18361](https://github.com/civicrm/civicrm-core/pull/18361))**
543
544 - **[NFC] Fix dates in RelationshipTest
545 ([18530](https://github.com/civicrm/civicrm-core/pull/18530))**
546
547 - **api_v3_MultilingualTest - Skip Cxn entities
548 ([18547](https://github.com/civicrm/civicrm-core/pull/18547))**
549
550 - **[NFC] Update Checksum on CustomField DAO
551 ([18689](https://github.com/civicrm/civicrm-core/pull/18689))**
552
553 ## <a name="credits"></a>Credits
554
555 This release was developed by the following code authors:
556
557 AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman, Pengyi
558 Zhang; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten;
559 CiviDesk - Sunil Pawar, Yashodha Chaku; Dave D; Flinders University of South
560 Australia - Tom Anderson; JMA Consulting - Monish Deb, Seamus Lee; John
561 Kingsnorth; Lemniscus - Noah Miller; Lighthouse Consulting and Design - Brian
562 Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MillerTech - Chamil
563 Wijesooriya; MJW Consulting - Matthew Wire; Squiffle Consulting - Aidan
564 Saunders; Wikimedia Foundation - Eileen McNaughton, Maggie Epps; Wildsight -
565 Lars Sanders-Green
566
567 Most authors also reviewed code for this release; in addition, the following
568 reviewers contributed their comments:
569
570 Artful Robot - Rich Lott; Christian Wach; Circle Interactive - Martin Castle;
571 Dave D; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe -
572 Patrick Figel; MJCO - Mikey O'Toole; Semper IT - Karin Gerritsen; Squiffle
573 Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano
574
575 ## <a name="feedback"></a>Feedback
576
577 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
578 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
579 and contact `@agh1`.