Merge pull request #23062 from MegaphoneJon/fix-batch-url
[civicrm-core.git] / release-notes / 5.34.0.md
CommitLineData
7c81ca3d
AH
1# CiviCRM 5.34.0
2
e573d42e 3Released February 3, 2021
7c81ca3d 4
e573d42e 5- **[Synopsis](#synopsis)**
7c81ca3d
AH
6- **[Features](#features)**
7- **[Bugs resolved](#bugs)**
8- **[Miscellany](#misc)**
9- **[Credits](#credits)**
e573d42e
AH
10- **[Feedback](#feedback)**
11
12## <a name="synopsis"></a>Synopsis
13
14| *Does this version...?* | |
15|:--------------------------------------------------------------- |:-------:|
4990c7eb
AF
16| Fix security vulnerabilities? | no |
17| **Change the database schema?** | **yes** |
18| **Alter the API?** | **yes** |
3269f8fb 19| **Require attention to configuration options?** | **yes** |
4990c7eb
AF
20| **Fix problems installing or upgrading to a previous version?** | **yes** |
21| **Introduce features?** | **yes** |
22| **Fix bugs?** | **yes** |
7c81ca3d
AH
23
24## <a name="features"></a>Features
25
26### Core CiviCRM
27
3269f8fb
AH
28- **Re-Thinking our Crypto implementation
29 ([dev/core#2258](https://lab.civicrm.org/dev/core/-/issues/2258):
30 [19236](https://github.com/civicrm/civicrm-core/pull/19236),
31 [19251](https://github.com/civicrm/civicrm-core/pull/19251),
32 [19239](https://github.com/civicrm/civicrm-core/pull/19239),
33 [19349](https://github.com/civicrm/civicrm-core/pull/19349),
4990c7eb
AF
34 [237](https://github.com/civicrm/civicrm-wordpress/pull/237),
35 [57](https://github.com/civicrm/civicrm-joomla/pull/57),
4990c7eb 36 [125](https://github.com/civicrm/civicrm-backdrop/pull/125),
3269f8fb
AH
37 [635](https://github.com/civicrm/civicrm-drupal/pull/635), and
38 [57](https://github.com/civicrm/civicrm-drupal-8/pull/57))**
39
40 This adds a new framework for encrypting setting values that are stored in the
41 database. An encryption key is defined upon installation, and the key can be
42 rotated using APIv4. Keys can also be managed with a new
43 `hook_civicrm_crypto`. The system allows for old keys to be retained for
44 decrypting old values even as a new key is used for encrypting new ones.
7c81ca3d 45
3269f8fb
AH
46 The only setting that is changed at this point is the SMTP password, as that
47 was the only setting in core encrypted with `CRM_Utils_Crypt`. However, this
48 framework is available for extensions and will likely be adopted for other
49 sensitive settings.
7c81ca3d 50
3269f8fb
AH
51 You may optionally configure `CIVICRM_CRED_KEYS` in `civicrm.settings.php`
52 upon upgrade. Sites that define `smtpPassword` in their
53 `civicrm.settings.php` file may need to update the value. See
54 [pull request 19239](https://github.com/civicrm/civicrm-core/pull/19239) for
55 details.
56
57 Meanwhile, `CRM_Utils_Crypt` is retained (but deprecated) for compatibility
58 with the extensions that use it.
7c81ca3d 59
4990c7eb 60- **Add pre() and post() hooks for ufgroup entity
3269f8fb
AH
61 ([dev/core#2199](https://lab.civicrm.org/dev/core/-/issues/2199):
62 [18995](https://github.com/civicrm/civicrm-core/pull/18995))**
7c81ca3d 63
3269f8fb 64 The pre and post hooks are now triggered when modifying profiles.
7c81ca3d 65
4990c7eb
AF
66- **Add support for multi-value contact reference custom fields
67 ([18941](https://github.com/civicrm/civicrm-core/pull/18941))**
7c81ca3d 68
4990c7eb 69 Makes it so users can configure a multi-value contact reference custom field.
7c81ca3d 70
4990c7eb
AF
71- **Add missing state for South Korea
72 ([19157](https://github.com/civicrm/civicrm-core/pull/19157))**
7c81ca3d 73
3269f8fb
AH
74 This adds the special self-governing city Sejong to the state/province table
75 for South Korea.
7c81ca3d 76
3269f8fb 77- **CRM_Core_Key - Provide more debugging hints about mismatched `qfKey` values
4990c7eb 78 ([19145](https://github.com/civicrm/civicrm-core/pull/19145))**
7c81ca3d 79
3269f8fb 80 The qfKey now has a prefix that corresponds with the form name.
7c81ca3d 81
4990c7eb
AF
82- **Add min-width to flex columns for responsive layout on small screens
83 ([19235](https://github.com/civicrm/civicrm-core/pull/19235))**
7c81ca3d 84
3269f8fb 85 This adjusts 2-column layouts on the main CiviCRM dashboard and Search Kit to
4990c7eb 86 collapse to 1 column on small screens.
7c81ca3d 87
4990c7eb
AF
88- **APIv4 - Add "Permission.get" for listing available permissions
89 ([19115](https://github.com/civicrm/civicrm-core/pull/19115))**
7c81ca3d 90
4990c7eb
AF
91 Adds a new API method "Permission.get" to be used for administrative tools
92 that allow one to choose/assign a permission.
7c81ca3d 93
4990c7eb
AF
94- **APIv4: Support relative date range input
95 ([19181](https://github.com/civicrm/civicrm-core/pull/19181))**
7c81ca3d 96
4990c7eb 97 Extends APIv4 to support relative date range inputs.
7c81ca3d 98
4990c7eb
AF
99- **Free the joins! APIv4 explicit joins - can we remove the requirement for
100 specific columns in the "on" clause? (Work Towards
101 [dev/core#2271](https://lab.civicrm.org/dev/core/-/issues/2271):
102 [19275](https://github.com/civicrm/civicrm-core/pull/19275))**
7c81ca3d 103
4990c7eb 104 Allows greater flexibility in how explicit joins are performed in APIv4.
7c81ca3d 105
4990c7eb
AF
106- **Non translatable fields in profile schema (Work Towards
107 [dev/core#527](https://lab.civicrm.org/dev/core/-/issues/527):
108 [19291](https://github.com/civicrm/civicrm-core/pull/19291))**
7c81ca3d 109
4990c7eb
AF
110 Ensures the public title is used and translatable for on behalf profiles,
111 confirm pages and thank you pages.
7c81ca3d 112
4990c7eb
AF
113- **Proposal - add hook alterIndices
114 (Work Towards [dev/core#2279](https://lab.civicrm.org/dev/core/-/issues/2279):
115 [19293](https://github.com/civicrm/civicrm-core/pull/19293) and
116 [19288](https://github.com/civicrm/civicrm-core/pull/19288))**
7c81ca3d 117
4990c7eb 118 Adds indexes to `campaign.name` and `civicrm_group.cache_date`.
7c81ca3d 119
4990c7eb 120### CiviContribute
7c81ca3d 121
4990c7eb
AF
122- **Wording change - change UI parts of contribution soft schema to soft credit
123 ([dev/financial#158](https://lab.civicrm.org/dev/financial/-/issues/158):
124 [19085](https://github.com/civicrm/civicrm-core/pull/19085))**
7c81ca3d 125
4990c7eb
AF
126 Improves user experience of Search Kit/Afform by cleaning up language
127 related to Soft Credits.
7c81ca3d 128
4990c7eb
AF
129- **Cancel first contribution associated to membership, cancels the membership
130 (Work Towards [dev/core#927](https://lab.civicrm.org/dev/core/-/issues/927):
131 [19019](https://github.com/civicrm/civicrm-core/pull/19019))**
7c81ca3d 132
4990c7eb
AF
133 Completes moving the logic for the contribution statuses "Cancel" and "Fail"
134 from core to the `contributioncancelactions` extension.
7c81ca3d 135
4990c7eb
AF
136- **Move financial acl warning from FinancialType BAO to extension.
137 ([19283](https://github.com/civicrm/civicrm-core/pull/19283))**
7c81ca3d 138
4990c7eb 139 Moves more code from core to the financial acls extension.
7c81ca3d 140
4990c7eb
AF
141- **Add ContributionSoft v4 api
142 ([19083](https://github.com/civicrm/civicrm-core/pull/19083))**
7c81ca3d 143
4990c7eb 144 Adds the Contribution Soft entity to APIv4.
7c81ca3d 145
4990c7eb
AF
146- **Add v4 api for financial type, financial account
147 ([19282](https://github.com/civicrm/civicrm-core/pull/19282))**
7c81ca3d 148
4990c7eb 149 Adds "Financial Type" and "Financial Account" entities to APIv4.
7c81ca3d 150
4990c7eb
AF
151- **[APIv4] Permit using other SQL functions such as CONCAT within a
152 GROUP_CONCAT ([19255](https://github.com/civicrm/civicrm-core/pull/19255))**
7c81ca3d 153
4990c7eb
AF
154 Allows for SQL functions such as CONCAT to be used within a GROUP CONCAT,
155 this maybe useful for example when trying to get all the line items associated with a
156 contribution into one field.
7c81ca3d 157
4990c7eb
AF
158- **Add default for boolean fields on financial_type
159 ([19281](https://github.com/civicrm/civicrm-core/pull/19281) and
160 [19335](https://github.com/civicrm/civicrm-core/pull/19335))**
7c81ca3d 161
4990c7eb
AF
162 Sets default values for the "Financial Type" fields 'is_active' and
163 'is_reserved'.
7c81ca3d 164
4990c7eb
AF
165- **Improve logging when a contribution is created/updated
166 ([19252](https://github.com/civicrm/civicrm-core/pull/19252))**
7c81ca3d 167
4990c7eb
AF
168 Improves logging when a Contribution is created/updated to improve the
169 debugging experience.
7c81ca3d 170
4990c7eb 171### CiviEvent
7c81ca3d 172
4990c7eb
AF
173- **Add a unique event ID so we can match pre/post Insert/Update
174 ([19209](https://github.com/civicrm/civicrm-core/pull/19209))**
7c81ca3d 175
4990c7eb
AF
176 Makes it so developers can use the event ID to link pre/post Insert/Update
177 events for the same change.
7c81ca3d 178
3269f8fb
AH
179### Search Kit
180
181- **Search kit: Rewrite input widget to support IN sets, relative dates, BETWEEN
182 groups, etc. ([19229](https://github.com/civicrm/civicrm-core/pull/19229))**
183
184 Overhauls the input widget for all fields in Search Kit so that they support:
185 IN, BETWEEN etc.
186
187- **Search kit: Improve token support
188 ([19260](https://github.com/civicrm/civicrm-core/pull/19260))**
189
190 Adds a token selector to the Search Kit UI when configuring displays.
191
4990c7eb 192### WordPress Integration
7c81ca3d 193
4990c7eb
AF
194- **Enhance CiviCRM's integration in WordPress
195 ([231](https://github.com/civicrm/civicrm-wordpress/pull/231))**
7c81ca3d 196
4990c7eb
AF
197 Improves user experience for WordPress sites by introducing sub menu items to the
198 WordPress SideBar "CiviCRM" Menu item including:
199 - Integration Page
200 - Settings Page
7c81ca3d 201
4990c7eb 202## <a name="bugs"></a>Bugs resolved
7c81ca3d 203
4990c7eb 204### Core CiviCRM
7c81ca3d 205
3269f8fb
AH
206- **jquery.validate.js update (includes CVE-2021-21252)
207 ([dev/core#2324](https://lab.civicrm.org/dev/core/-/issues/2324):
208 [19457](https://github.com/civicrm/civicrm-core/pull/19457))**
209
210 The jQuery Validate library contained a regular expression that was vulnerable
211 to ReDoS (Regular Expression Denial of Service).
212
213 ReDoS, or Regular Expression Denial of Service, is a vulnerability affecting
214 poorly constructed and potentially inefficient regular expressions which can
215 make them perform extremely badly given a creatively constructed input string.
216
217 This offers security hardening by preventing a user from entering a string
218 that could tie up their browser in validating it.
219
4990c7eb
AF
220- **Fix updating custom field schema when toggling search or multiple
221 ([18939](https://github.com/civicrm/civicrm-core/pull/18939))**
7c81ca3d 222
4990c7eb
AF
223 Fixes a crash & possible data loss when changing a custom field of type
224 "Country" or "State/Province" from a multi-select to single or vice versa.
7c81ca3d 225
4990c7eb
AF
226- **Quick fix on summary actions conflict
227 ([19067](https://github.com/civicrm/civicrm-core/pull/19067))**
7c81ca3d 228
3269f8fb
AH
229 If multiple extensions insert items with the same weight into the contact
230 summary actions drop-down, this ensures all menu items are displayed.
7c81ca3d 231
4990c7eb
AF
232- **Greenwich: Fix Select2 free-tagging css bug
233 ([19225](https://github.com/civicrm/civicrm-core/pull/19225))**
7c81ca3d 234
4990c7eb
AF
235 Adds a CSS tweak to Greenwich that fixes a style conflict between Bootstrap
236 and Select2.
7c81ca3d 237
4990c7eb
AF
238- **APIv4: Normalize option list descriptions as plain text
239 ([19237](https://github.com/civicrm/civicrm-core/pull/19237))**
7c81ca3d 240
4990c7eb
AF
241 Ensures the description field comes through as plain text when fetching option
242 lists from APIv4.
7c81ca3d 243
4990c7eb
AF
244- **Unwanted mail blast sent by Scheduled Reminders (Work Towards
245 [dev/core#365](https://lab.civicrm.org/dev/core/-/issues/365):
246 [19068](https://github.com/civicrm/civicrm-core/pull/19068))**
7c81ca3d 247
3269f8fb
AH
248 This adds a `created_date` column to the `action_schedule` table. This is in
249 anticipation of a change to prevent a newly-created scheduled reminder from
250 triggering reminders that would be due to send prior to the creation of the
251 reminder.
7c81ca3d 252
4990c7eb
AF
253- **Editing a smartgroup created through the search builder renders the new
254 block by force
255 ([dev/core#2270](https://lab.civicrm.org/dev/core/-/issues/2270):
256 [19257](https://github.com/civicrm/civicrm-core/pull/19257))**
7c81ca3d 257
4990c7eb
AF
258 Ensures the new record type and operator line only appear on the new search
259 builder form (not when editing existing smart groups via search builder).
7c81ca3d 260
4990c7eb
AF
261- **Merge all members into the same household when using select fields fails
262 with a db error
263 ([dev/core#2272](https://lab.civicrm.org/dev/core/-/issues/2272):
264 [19268](https://github.com/civicrm/civicrm-core/pull/19268))**
7c81ca3d 265
4990c7eb
AF
266 Fixes a DB Error when exporting contacts using the "Merge Household members
267 into their Households" setting and selecting fields for export.
7c81ca3d 268
4990c7eb
AF
269- **civicrm-setup - Error during, uh, let's call them unit tests, if db port
270 isn't specified
271 ([dev/core#2286](https://lab.civicrm.org/dev/core/-/issues/2286):
272 [19324](https://github.com/civicrm/civicrm-core/pull/19324))**
7c81ca3d 273
4990c7eb 274 Avoids a notice of a missing db port during install.
7c81ca3d 275
4990c7eb
AF
276- **Move non-compliant trigger_error out of logging
277 ([dev/core#2241](https://lab.civicrm.org/dev/core/-/issues/2241) and
278 [dev/core#2240](https://lab.civicrm.org/dev/core/-/issues/2240):
279 [19256](https://github.com/civicrm/civicrm-core/pull/19256))**
7c81ca3d 280
4990c7eb
AF
281 Makes CRM_Core_Error_Log more PSR3-compliant by not throwing errors itself,
282 and removing dependence on the presence of a .git folder.
7c81ca3d 283
4990c7eb
AF
284- **Tabs at top of extension list are no longer tabs
285 ([dev/core#2233](https://lab.civicrm.org/dev/core/-/issues/2233):
286 [19138](https://github.com/civicrm/civicrm-core/pull/19138))**
7c81ca3d 287
4990c7eb 288 Fixes broken tabs on the profiles administration page.
7c81ca3d 289
4990c7eb
AF
290- **Weird "null" after adding new tagset
291 ([dev/core#2234](https://lab.civicrm.org/dev/core/-/issues/2234):
292 [19131](https://github.com/civicrm/civicrm-core/pull/19131))**
7c81ca3d 293
4990c7eb 294 Ensures the word 'null' is not displayed after adding a new tagset.
7c81ca3d 295
4990c7eb
AF
296- **Stop preventing test runs and dev sites from seeing PHP deprecation notices
297 ([19330](https://github.com/civicrm/civicrm-core/pull/19330))**
7c81ca3d 298
4990c7eb 299 Ensures notices appear based on the sites error reporting settings.
7c81ca3d 300
4990c7eb
AF
301- **Unable to delete file with brackets in filename via ckeditor/kcfinder
302 ([dev/user-interface#25](https://lab.civicrm.org/dev/user-interface/-/issues/25):
303 [304](https://github.com/civicrm/civicrm-packages/pull/304))**
7c81ca3d 304
4990c7eb
AF
305- **Obsolete wkhtmltopdfPath causes hard fail in event registration due to
306 internal fatal error for the missing package
307 ([dev/core#2028](https://lab.civicrm.org/dev/core/-/issues/2028):
308 [19311](https://github.com/civicrm/civicrm-core/pull/19311))**
7c81ca3d 309
3269f8fb
AH
310 If the setting for the path to wkhtmltopdf is set, but nothing is there at
311 that path, a system check message will appear and PDF generation will fall
312 back to domPDF.
313
4990c7eb
AF
314- **Contact import by CSV fails when string ends with "à"
315 ([dev/core#2127](https://lab.civicrm.org/dev/core/-/issues/2127):
316 [19241](https://github.com/civicrm/civicrm-core/pull/19241))**
7c81ca3d 317
3269f8fb
AH
318 In certain encodings, the &agrave; character can have the same byte as a
319 non-breaking space. This ensures that trimming non-breaking spaces does not
320 accidentally snag multi-byte characters that share the same `0xA0` byte.
321
4990c7eb
AF
322- **Activity Summary report is missing pagination
323 ([dev/core#2174](https://lab.civicrm.org/dev/core/-/issues/2174):
324 [19146](https://github.com/civicrm/civicrm-core/pull/19146))**
7c81ca3d 325
4990c7eb
AF
326- **Export crashes when many contacts share an address and are merged
327 ([dev/core#2211](https://lab.civicrm.org/dev/core/-/issues/2211):
328 [19216](https://github.com/civicrm/civicrm-core/pull/19216))**
7c81ca3d 329
4990c7eb
AF
330- **Deprecation warnings are implemented backwards
331 ([dev/core#2240](https://lab.civicrm.org/dev/core/-/issues/2240):
332 [19266](https://github.com/civicrm/civicrm-core/pull/19266))**
7c81ca3d 333
4990c7eb
AF
334- **CiviCRM Export, Saved Export Field Mapping that contains custom fields which
335 have been disabled or deleted are still loaded as "clear" values and cause the
336 export download to fail with "DB Error: no such field"
337 ([dev/core#2242](https://lab.civicrm.org/dev/core/-/issues/2242):
338 [19199](https://github.com/civicrm/civicrm-core/pull/19199))**
7c81ca3d 339
4990c7eb
AF
340- **Inline email edit form fails to set is_bulkmail flag
341 ([dev/core#2254](https://lab.civicrm.org/dev/core/-/issues/2254):
342 [19224](https://github.com/civicrm/civicrm-core/pull/19224))**
7c81ca3d 343
4990c7eb
AF
344- **Accept PHP memory_limit of -1 as meeting requirement
345 ([19340](https://github.com/civicrm/civicrm-core/pull/19340))**
7c81ca3d 346
4990c7eb
AF
347- **Fix hook_civicrm_permission upgrade failure. Defer system-flush to
348 'upgrade.finish' phase.
349 ([19346](https://github.com/civicrm/civicrm-core/pull/19346))**
7c81ca3d 350
3269f8fb
AH
351 On Drupal and Backdrop sites, the system flush was triggered after each
352 incremental database update. It is now deferred until the end of the upgrade
353 process.
354
4990c7eb
AF
355- **Fix APIv3 profile.getfields to return correctly keyed phone field
356 ([19321](https://github.com/civicrm/civicrm-core/pull/19321))**
7c81ca3d 357
4990c7eb
AF
358- **Reports don't filter with empty custom fields
359 ([dev/core#2173](https://lab.civicrm.org/dev/core/-/issues/2173):
360 [19057](https://github.com/civicrm/civicrm-core/pull/19057))**
7c81ca3d 361
4990c7eb
AF
362- **Fatal error on contribution summary report (and probably others) when adding
363 contacts to group
364 ([19250](https://github.com/civicrm/civicrm-core/pull/19250))**
7c81ca3d 365
3269f8fb
AH
366 This disables full group by mode for reports that are not optimized to work
367 with it.
368
4990c7eb
AF
369- **Stop passing ids as reference
370 ([19204](https://github.com/civicrm/civicrm-core/pull/19204))**
7c81ca3d 371
4990c7eb
AF
372- **Fix extensions tabs following deprecation of old tab code
373 ([19130](https://github.com/civicrm/civicrm-core/pull/19130))**
7c81ca3d 374
3269f8fb
AH
375- **php 7.4 compatibility
376 ([19355](https://github.com/civicrm/civicrm-core/pull/19355),
377 [19350](https://github.com/civicrm/civicrm-core/pull/19350),
378 [19331](https://github.com/civicrm/civicrm-core/pull/19331),
379 [19353](https://github.com/civicrm/civicrm-core/pull/19353) and
380 [19354](https://github.com/civicrm/civicrm-core/pull/19354))**
381
382 Assorted changes to make the code compatible with php 7.4.
7c81ca3d 383
4990c7eb 384### CiviCampaign
7c81ca3d 385
4990c7eb
AF
386- **Menu links for Petitions, Surveys do not open correct tab
387 ([dev/core#2215](https://lab.civicrm.org/dev/core/-/issues/2215):
388 [19066](https://github.com/civicrm/civicrm-core/pull/19066))**
7c81ca3d 389
4990c7eb 390### CiviCase
7c81ca3d 391
4990c7eb
AF
392- **Add timeline dropdown on manage case no longer working
393 ([dev/core#2292](https://lab.civicrm.org/dev/core/-/issues/2292):
394 [19356](https://github.com/civicrm/civicrm-core/pull/19356))**
7c81ca3d 395
4990c7eb 396### CiviContribute
7c81ca3d 397
3269f8fb
AH
398- **Error creating thank you letter with multiple contributions
399 ([dev/core#2344](https://lab.civicrm.org/dev/core/-/issues/2344):
400 [19480](https://github.com/civicrm/civicrm-core/pull/19480),
401 [19481](https://github.com/civicrm/civicrm-core/pull/19481), and
402 [19482](https://github.com/civicrm/civicrm-core/pull/19482))**
403
404 This resolves an invalid currency error when generating a thank you letter
405 grouping multiple contributions per contact.
406
4990c7eb
AF
407- **fix email receipt flag for recurring record
408 ([19299](https://github.com/civicrm/civicrm-core/pull/19299))**
7c81ca3d 409
4990c7eb 410 Ensures receipts are not sent for each recurring payment.
7c81ca3d 411
4990c7eb
AF
412- **Owner notification email sending before payment (Work Towards
413 [dev/core#521](https://lab.civicrm.org/dev/core/-/issues/521):
414 [19259](https://github.com/civicrm/civicrm-core/pull/19259))**
7c81ca3d 415
4990c7eb
AF
416 Code clean up towards ensuring that owner notification emails do not get sent
417 before the payment is made.
7c81ca3d 418
4990c7eb
AF
419- **Fully remove contributionTypeID (Work Towards
420 [dev/financial#163](https://lab.civicrm.org/dev/financial/-/issues/163):
421 [19174](https://github.com/civicrm/civicrm-core/pull/19174) and
422 [19166](https://github.com/civicrm/civicrm-core/pull/19166))**
7c81ca3d 423
4990c7eb 424 Work to remove legacy references to `contributionTypeID`.
7c81ca3d 425
4990c7eb
AF
426- **Line items are added from default price set on recurring contributions for
427 financial types with tax accounts.
428 ([dev/financial#159](https://lab.civicrm.org/dev/financial/-/issues/159):
429 [19086](https://github.com/civicrm/civicrm-core/pull/19086))**
7c81ca3d 430
4990c7eb
AF
431- **Allocation of "fee amount" is incorrect if fee is added after contribution
432 is created
433 ([dev/financial#160](https://lab.civicrm.org/dev/financial/-/issues/160):
434 [19152](https://github.com/civicrm/civicrm-core/pull/19152))**
7c81ca3d 435
4990c7eb
AF
436- **Owner notification email sending every time the contribution is resaved
437 ([dev/core#537](https://lab.civicrm.org/dev/core/-/issues/537):
438 [19095](https://github.com/civicrm/civicrm-core/pull/19095))**
7c81ca3d 439
4990c7eb
AF
440- **Default currency shown on invoices if payment is made with different
441 currency ([dev/core#2269](https://lab.civicrm.org/dev/core/-/issues/2269):
442 [19290](https://github.com/civicrm/civicrm-core/pull/19290))**
7c81ca3d 443
4990c7eb
AF
444- **Contact type incorrectly set to Contribution due to 'Honoree Profile'
445 ([dev/core#2273](https://lab.civicrm.org/dev/core/-/issues/2273):
446 [19277](https://github.com/civicrm/civicrm-core/pull/19277))**
7c81ca3d 447
4990c7eb
AF
448- **Disable frequency/interval fields if not required on backend contribution
449 forms ([17889](https://github.com/civicrm/civicrm-core/pull/17889))**
7c81ca3d 450
4990c7eb
AF
451- **Fix Contribution.tpl mismatched ts.
452 ([19343](https://github.com/civicrm/civicrm-core/pull/19343))**
7c81ca3d 453
4990c7eb
AF
454- **Fix preferred repeattransaction flow to correctly create the activity
455 contacts for the contribution
456 ([19200](https://github.com/civicrm/civicrm-core/pull/19200))**
7c81ca3d 457
4990c7eb
AF
458- **Fix pledge on contribution page when the site has a Word Replacement for
459 "contribution" ([19238](https://github.com/civicrm/civicrm-core/pull/19238))**
7c81ca3d 460
4990c7eb
AF
461- **Fix Contribution.create to not attempt to set contacts on activity update
462 ([19202](https://github.com/civicrm/civicrm-core/pull/19202))**
7c81ca3d 463
3269f8fb
AH
464- **Allow Sendconfirmation api to override pay later receipt text
465 ([19129](https://github.com/civicrm/civicrm-core/pull/19129))**
466
4990c7eb 467### CiviEvent
7c81ca3d 468
4990c7eb
AF
469- **New Event using a template - clicking "Continue" doesn't save custom data
470 ([dev/core#766](https://lab.civicrm.org/dev/core/-/issues/766):
471 [19308](https://github.com/civicrm/civicrm-core/pull/19308))**
7c81ca3d 472
4990c7eb
AF
473- **Use the proper content type for ICalendar link
474 ([dev/core#2282](https://lab.civicrm.org/dev/core/-/issues/2282):
475 [19316](https://github.com/civicrm/civicrm-core/pull/19316))**
7c81ca3d 476
3269f8fb
AH
477 The iCalendar feed link now specifies that it is `text/calendar` so it will be
478 handled correctly if the icon is clicked.
479
480- **Import Participants fails
481 ([dev/core#2348](https://lab.civicrm.org/dev/core/-/issues/2348):
482 [19483](https://github.com/civicrm/civicrm-core/pull/19483))**
483
484 This was an unreleased regression in 5.34.beta.
485
4990c7eb
AF
486- **Manage Event: avoid E_NOTICE in smarty
487 ([19137](https://github.com/civicrm/civicrm-core/pull/19137))**
7c81ca3d 488
3269f8fb
AH
489- **Fatal error Incorrect datetime value: '0' for column 'transaction_date' when
490 editing a participant record and recording payment with no received date
491 ([dev/core#2251](https://lab.civicrm.org/dev/core/-/issues/2251):
492 [19307](https://github.com/civicrm/civicrm-core/pull/19307))**
493
494- **Allow overriding participant_status_id in Order API
495 ([18096](https://github.com/civicrm/civicrm-core/pull/18096))**
496
4990c7eb 497### CiviMail
7c81ca3d 498
4990c7eb
AF
499- **Proposal replace PEAR mailer classes in core extension (Work Towards
500 [dev/core#2159](https://lab.civicrm.org/dev/core/-/issues/2159):
501 [18905](https://github.com/civicrm/civicrm-core/pull/18905))**
7c81ca3d 502
4990c7eb 503 Handles exceptions in Mail:send class.
7c81ca3d 504
3269f8fb
AH
505### CiviMember
506
507- **Simplify decision as to whether to use a pdf on membership emails
508 ([dev/financial#162](https://lab.civicrm.org/dev/financial/-/issues/162):
509 [19165](https://github.com/civicrm/civicrm-core/pull/19165))**
510
511 Makes decision to include a PDF in Membership emails dependent on settings
512 instead of whether the tax-amount is non-zero.
513
514- **Membership renewal with 0 tax creating extra line item
515 ([dev/core#2024](https://lab.civicrm.org/dev/core/-/issues/2024):
516 [18838](https://github.com/civicrm/civicrm-core/pull/18838))**
517
4990c7eb 518### CiviPledge
7c81ca3d 519
4990c7eb
AF
520- **Rename PledgePayment create function
521 ([19298](https://github.com/civicrm/civicrm-core/pull/19298))**
7c81ca3d 522
4990c7eb 523 Standardizes create function for a pledge payment.
7c81ca3d 524
4990c7eb
AF
525- **Pledge: mark needed fields as required in schema
526 ([19309](https://github.com/civicrm/civicrm-core/pull/19309))**
7c81ca3d 527
4990c7eb 528### Joomla Integration
7c81ca3d 529
4990c7eb
AF
530- **distmaker - Don't require dummy config file for building Joomla
531 ([19357](https://github.com/civicrm/civicrm-core/pull/19357))**
7c81ca3d 532
4990c7eb 533### WordPress Integration
7c81ca3d 534
4990c7eb
AF
535- **Mailing default domain error: force a backend URL for WP
536 ([19319](https://github.com/civicrm/civicrm-core/pull/19319))**
7c81ca3d 537
4990c7eb
AF
538- **Allow wp-cli upgrade command to proceed when there is only a single settings
539 file ([224](https://github.com/civicrm/civicrm-wordpress/pull/224))**
7c81ca3d 540
3269f8fb
AH
541- **Prevent "add_action" from being called multiple times
542 ([dev/core#2217](https://lab.civicrm.org/dev/core/-/issues/2217):
543 [19061](https://github.com/civicrm/civicrm-core/pull/19061))**
544
4990c7eb 545## <a name="misc"></a>Miscellany
7c81ca3d 546
4990c7eb
AF
547- **Membership BAO - do not require date fields to be passed in on update
548 ([18794](https://github.com/civicrm/civicrm-core/pull/18794))**
7c81ca3d 549
4990c7eb
AF
550- **Rename internal references to contributionTypeId
551 ([19169](https://github.com/civicrm/civicrm-core/pull/19169))**
7c81ca3d 552
4990c7eb
AF
553- **Switch to non-static functions
554 ([19164](https://github.com/civicrm/civicrm-core/pull/19164))**
7c81ca3d 555
4990c7eb
AF
556- **Duplicate processFormContribution only Membership form
557 ([19211](https://github.com/civicrm/civicrm-core/pull/19211))**
7c81ca3d 558
4990c7eb
AF
559- **Only do cms account create from the one relevant place
560 ([19234](https://github.com/civicrm/civicrm-core/pull/19234))**
7c81ca3d 561
4990c7eb
AF
562- **Convert previously shared function from static to non-static
563 ([19231](https://github.com/civicrm/civicrm-core/pull/19231))**
7c81ca3d 564
4990c7eb
AF
565- **Fix Payment edit form to use Payment.cancel & payment.create api
566 ([19116](https://github.com/civicrm/civicrm-core/pull/19116))**
7c81ca3d 567
4990c7eb
AF
568- **Fold deprecated function into the only function that calls it
569 ([19270](https://github.com/civicrm/civicrm-core/pull/19270))**
7c81ca3d 570
4990c7eb
AF
571- **Use specific function when formatting money for a default
572 ([19285](https://github.com/civicrm/civicrm-core/pull/19285))**
7c81ca3d 573
4990c7eb
AF
574- **Stop using refresh_date in civicrm_group table
575 ([19287](https://github.com/civicrm/civicrm-core/pull/19287))**
7c81ca3d 576
4990c7eb
AF
577- **Simplify handling of ids in Authorize.net now that related_contact is no
578 longer used ([19273](https://github.com/civicrm/civicrm-core/pull/19273))**
7c81ca3d 579
4990c7eb
AF
580- **CRM_Member_Form_MembershipRenewalTest - Started failing circa Jan 1, 2021
581 ([dev/core#2284](https://lab.civicrm.org/dev/core/-/issues/2284):
582 [19306](https://github.com/civicrm/civicrm-core/pull/19306))**
7c81ca3d 583
4990c7eb
AF
584- **preliminary cleanup - extract a couple of functions in the payment processor
585 form for readability (Work Towards
586 [dev/financial#157](https://lab.civicrm.org/dev/financial/-/issues/157):
587 [19072](https://github.com/civicrm/civicrm-core/pull/19072))**
7c81ca3d 588
4990c7eb
AF
589- **finish 'this round' of completeOrder cleanup (Work Towards
590 [dev/financial#152](https://lab.civicrm.org/dev/financial/-/issues/152):
591 [19017](https://github.com/civicrm/civicrm-core/pull/19017))**
7c81ca3d 592
4990c7eb
AF
593- **Squash 2 if clauses into 1
594 ([19190](https://github.com/civicrm/civicrm-core/pull/19190))**
7c81ca3d 595
4990c7eb
AF
596- **Clean up error handling in legacy functions in import parser
597 ([19160](https://github.com/civicrm/civicrm-core/pull/19160))**
7c81ca3d 598
4990c7eb
AF
599- **Unused writeLegacyWarnings() in PropertyBag
600 ([19167](https://github.com/civicrm/civicrm-core/pull/19167))**
7c81ca3d 601
4990c7eb
AF
602- **Update docs links
603 ([624](https://github.com/civicrm/civicrm-drupal/pull/624))**
7c81ca3d 604
4990c7eb
AF
605- **Preliminary cleanup -remove unused params from function signature
606 ([19110](https://github.com/civicrm/civicrm-core/pull/19110))**
7c81ca3d 607
4990c7eb
AF
608- **Minor code cleanup
609 ([19220](https://github.com/civicrm/civicrm-core/pull/19220))**
7c81ca3d 610
4990c7eb
AF
611- **Move processConfirm function from Utils file back to form class
612 ([19212](https://github.com/civicrm/civicrm-core/pull/19212))**
7c81ca3d 613
4990c7eb
AF
614- **Remove use of ignoreException from SMTP settings form
615 ([19315](https://github.com/civicrm/civicrm-core/pull/19315))**
7c81ca3d 616
4990c7eb
AF
617- **Remove constant CIVICRM_MYSQL_STRICT
618 ([dev/core#2252](https://lab.civicrm.org/dev/core/-/issues/2252):
619 [19244](https://github.com/civicrm/civicrm-core/pull/19244))**
7c81ca3d 620
4990c7eb
AF
621- **Removes default for is_active & is_reserved since they now have DB defaults
622 ([19296](https://github.com/civicrm/civicrm-core/pull/19296))**
7c81ca3d 623
4990c7eb
AF
624- **Remove code to retrieve premium data
625 ([19262](https://github.com/civicrm/civicrm-core/pull/19262))**
7c81ca3d 626
4990c7eb
AF
627- **Remove use of ignoreException on import form
628 ([19314](https://github.com/civicrm/civicrm-core/pull/19314))**
7c81ca3d 629
4990c7eb
AF
630- **Remove unreachable customGroup section in online event receipt
631 ([19069](https://github.com/civicrm/civicrm-core/pull/19069))**
7c81ca3d 632
4990c7eb
AF
633- **Remove never-used IMAP_XOAUTH2 option value before it gets more confusing
634 ([dev/core#2264](https://lab.civicrm.org/dev/core/-/issues/2264):
635 [19243](https://github.com/civicrm/civicrm-core/pull/19243))**
7c81ca3d 636
4990c7eb
AF
637- **Remove the print_array modifier as it is now supplied in civicrm-core
638 ([314](https://github.com/civicrm/civicrm-packages/pull/314))**
7c81ca3d 639
4990c7eb
AF
640- **Remove deprecated function
641 ([19213](https://github.com/civicrm/civicrm-core/pull/19213))**
7c81ca3d 642
4990c7eb
AF
643- **Remove some more variable variables + some test cleanup
644 ([19208](https://github.com/civicrm/civicrm-core/pull/19208))**
7c81ca3d 645
4990c7eb
AF
646- **Remove unreachable code.
647 ([19203](https://github.com/civicrm/civicrm-core/pull/19203))**
7c81ca3d 648
4990c7eb
AF
649- **Remove some deprecated code chunks
650 ([19191](https://github.com/civicrm/civicrm-core/pull/19191))**
7c81ca3d 651
4990c7eb
AF
652- **Remove extraneous elses
653 ([19182](https://github.com/civicrm/civicrm-core/pull/19182))**
7c81ca3d 654
4990c7eb
AF
655- **Remove obsolete IF
656 ([19108](https://github.com/civicrm/civicrm-core/pull/19108))**
7c81ca3d 657
4990c7eb
AF
658- **Remove extraneous elses
659 ([19171](https://github.com/civicrm/civicrm-core/pull/19171))**
7c81ca3d 660
4990c7eb
AF
661- **Remove extraneous handling duplicated from createProfileContact
662 ([19109](https://github.com/civicrm/civicrm-core/pull/19109))**
7c81ca3d 663
4990c7eb
AF
664- **Remove or hard-code variables from previously shared function
665 ([19227](https://github.com/civicrm/civicrm-core/pull/19227))**
7c81ca3d 666
4990c7eb
AF
667- **Remove code deprecated +1 year ago - case_from_XX / case_to_XXX search
668 parameters ([19158](https://github.com/civicrm/civicrm-core/pull/19158))**
7c81ca3d 669
4990c7eb
AF
670- **Remove extraneous elses
671 ([19168](https://github.com/civicrm/civicrm-core/pull/19168))**
7c81ca3d 672
4990c7eb
AF
673- **Remove meaningless calls to ignoreException
674 ([19155](https://github.com/civicrm/civicrm-core/pull/19155))**
7c81ca3d 675
4990c7eb
AF
676- **Remove some unused variables
677 ([19156](https://github.com/civicrm/civicrm-core/pull/19156))**
7c81ca3d 678
4990c7eb
AF
679- **Remove functions from EmailCommon that were moved to the trait
680 ([19214](https://github.com/civicrm/civicrm-core/pull/19214))**
7c81ca3d 681
4990c7eb
AF
682- **Remove duplicated tax assignments from copied code
683 ([19228](https://github.com/civicrm/civicrm-core/pull/19228))**
7c81ca3d 684
4990c7eb
AF
685- **Remove unused tpl assigns
686 ([19226](https://github.com/civicrm/civicrm-core/pull/19226))**
7c81ca3d 687
4990c7eb
AF
688- **Remove all handling related to pledge, cms user from newly separated
689 function ([19222](https://github.com/civicrm/civicrm-core/pull/19222))**
7c81ca3d 690
4990c7eb
AF
691- **[REF] Extract determination of subscription status information
692 ([19193](https://github.com/civicrm/civicrm-core/pull/19193))**
7c81ca3d 693
4990c7eb
AF
694- **[REF] extract getIdsOfMatchingContact
695 ([19172](https://github.com/civicrm/civicrm-core/pull/19172))**
7c81ca3d 696
4990c7eb
AF
697- **[REF] Extract function to retrieve the membership labels.
698 ([18854](https://github.com/civicrm/civicrm-core/pull/18854))**
7c81ca3d 699
4990c7eb
AF
700- **REF Allow for fields of type Blob or Mediumblob in Apiv4
701 ([19196](https://github.com/civicrm/civicrm-core/pull/19196))**
7c81ca3d 702
4990c7eb
AF
703- **#REF Migrate the print_array smarty plugin from in packages into core…
704 ([19206](https://github.com/civicrm/civicrm-core/pull/19206))**
7c81ca3d 705
4990c7eb
AF
706- **[REF] Move function to shared parent so MemberForm can use it too
707 ([19205](https://github.com/civicrm/civicrm-core/pull/19205))**
7c81ca3d 708
4990c7eb
AF
709- **[REF] Relocate function from DeprecatedUtils to the class that actually
710 calls it ([19247](https://github.com/civicrm/civicrm-core/pull/19247))**
7c81ca3d 711
4990c7eb
AF
712- **[REF] Clean up on $ids['contribution']
713 ([19207](https://github.com/civicrm/civicrm-core/pull/19207))**
7c81ca3d 714
4990c7eb
AF
715- **[REF] Simplify membership form code towards simplifying BAO
716 ([18855](https://github.com/civicrm/civicrm-core/pull/18855))**
7c81ca3d 717
4990c7eb
AF
718- **[REF] Convert previously shared function to non-static, remove unrelated
719 code ([19258](https://github.com/civicrm/civicrm-core/pull/19258))**
7c81ca3d 720
4990c7eb
AF
721- **[REF] Move another deprecated function to the class that uses it
722 ([19253](https://github.com/civicrm/civicrm-core/pull/19253))**
7c81ca3d 723
4990c7eb
AF
724- **[REF] Switch to using shared function to call deprecated function
725 ([19246](https://github.com/civicrm/civicrm-core/pull/19246))**
7c81ca3d 726
4990c7eb
AF
727- **[REF] Relocate another function from DeprecatedUtils to the calling c…
728 ([19249](https://github.com/civicrm/civicrm-core/pull/19249))**
7c81ca3d 729
4990c7eb
AF
730- **REF use addRadio function to add in the radio fields to these forms
731 ([19265](https://github.com/civicrm/civicrm-core/pull/19265))**
7c81ca3d 732
4990c7eb
AF
733- **[REF] Relocate another deprecated utils function to the only class that
734 calls it. ([19248](https://github.com/civicrm/civicrm-core/pull/19248))**
7c81ca3d 735
4990c7eb
AF
736- **[REF] Deprecate passing a blank currecny to CRM_Utils_Money::format a…
737 ([19099](https://github.com/civicrm/civicrm-core/pull/19099))**
7c81ca3d 738
4990c7eb
AF
739- **[REF] Fix tax_amount to be consistent & load from the templateContribution
740 ([19274](https://github.com/civicrm/civicrm-core/pull/19274))**
7c81ca3d 741
4990c7eb
AF
742- **[REF] Unshared another function back onto Membership_Form
743 ([19269](https://github.com/civicrm/civicrm-core/pull/19269))**
7c81ca3d 744
4990c7eb
AF
745- **[REF] Unshare code to build an array of params for the recurring
746 contribution ([19271](https://github.com/civicrm/civicrm-core/pull/19271))**
7c81ca3d 747
4990c7eb
AF
748- **[REF] Extract duplicate handling code
749 ([19103](https://github.com/civicrm/civicrm-core/pull/19103))**
7c81ca3d 750
4990c7eb
AF
751- **[REF] Duplicate possibly-used parts of createProfileContact onto
752 Parser_Contact ([19098](https://github.com/civicrm/civicrm-core/pull/19098))**
7c81ca3d 753
4990c7eb
AF
754- **[REF] use early return for errors rather than confusing assignment
755 ([19102](https://github.com/civicrm/civicrm-core/pull/19102))**
7c81ca3d 756
4990c7eb
AF
757- **[REF] Remove unreachable code
758 ([19279](https://github.com/civicrm/civicrm-core/pull/19279))**
7c81ca3d 759
4990c7eb
AF
760- **[REF] Minor cleanup, remove variable variables
761 ([19292](https://github.com/civicrm/civicrm-core/pull/19292))**
7c81ca3d 762
4990c7eb
AF
763- **REF use centralised addRadio function more
764 ([19272](https://github.com/civicrm/civicrm-core/pull/19272))**
7c81ca3d 765
4990c7eb
AF
766- **(REF) Civi\Test\Invasive - Add helper for checking protected/private members
767 ([19294](https://github.com/civicrm/civicrm-core/pull/19294))**
7c81ca3d 768
4990c7eb
AF
769- **[REF] Move another deprecated function back to the only class that calls it
770 ([19300](https://github.com/civicrm/civicrm-core/pull/19300))**
7c81ca3d 771
4990c7eb
AF
772- **[REF] Minor cleanup on contactGroup function
773 ([19286](https://github.com/civicrm/civicrm-core/pull/19286))**
7c81ca3d 774
4990c7eb
AF
775- **[REF] Remove some variables not relevant to backoffice member form
776 ([19284](https://github.com/civicrm/civicrm-core/pull/19284))**
7c81ca3d 777
4990c7eb
AF
778- **[REF] Rationalise financialType variable
779 ([19280](https://github.com/civicrm/civicrm-core/pull/19280))**
7c81ca3d 780
4990c7eb
AF
781- **[REF] Extract code that assigns isPendingOutcome variable on thank yo…
782 ([19232](https://github.com/civicrm/civicrm-core/pull/19232))**
7c81ca3d 783
4990c7eb
AF
784- **[REF] extract and share code to determine if required contact fields are
785 present ([19302](https://github.com/civicrm/civicrm-core/pull/19302))**
786
787- **[REF] Fix import signature on activity parser, add preliminary test
788 ([19301](https://github.com/civicrm/civicrm-core/pull/19301))**
789
790- **Add test to check pcp notification is sent
791 ([19117](https://github.com/civicrm/civicrm-core/pull/19117))**
792
793- **Extend test to cover membership logs
794 ([19023](https://github.com/civicrm/civicrm-core/pull/19023))**
795
796- **[tests] Fix join syntax conversion for APIv4 in v3 unit tests
797 ([19318](https://github.com/civicrm/civicrm-core/pull/19318))**
798
799- **(NFC) DispatchPolicy - Add comments to docblock
800 ([19215](https://github.com/civicrm/civicrm-core/pull/19215))**
801
802- **[NFC] Convert civi.tag-deprecated to use central function
803 ([19179](https://github.com/civicrm/civicrm-core/pull/19179))**
804
805- **(NFC) Fix issue reporting link to go to the corresponding `core` project.
806 ([19240](https://github.com/civicrm/civicrm-core/pull/19240))**
807
808- **[NFC] Cleanup in test class
809 ([19322](https://github.com/civicrm/civicrm-core/pull/19322))**
810
811- **[NFC] Code reformat pledge class
812 ([19336](https://github.com/civicrm/civicrm-core/pull/19336))**
813
814- **[NFC] Fix Contribution Soft Credit entity translation
815 ([19351](https://github.com/civicrm/civicrm-core/pull/19351) and
816 [19359](https://github.com/civicrm/civicrm-core/pull/19359))**
817
818- **NFC When printing out the result of the correctly update in single va…
819 ([19198](https://github.com/civicrm/civicrm-core/pull/19198))**
820
821- **[NFC] Update comments in CRM/Core/Key
822 ([19197](https://github.com/civicrm/civicrm-core/pull/19197))**
823
824- **(POC#C) MembershipRenewalTest - Address assertions that started failing
825 circa Jan 1, 2021
826 ([19305](https://github.com/civicrm/civicrm-core/pull/19305))**
7c81ca3d 827
3269f8fb
AH
828- **REF Bump the composer-compile-plugin version
829 ([19377](https://github.com/civicrm/civicrm-core/pull/19377))**
830
831- **Test framework - API4 DateTest::testRelativeDateRanges will fail on the last
832 day of Jan, Mar, May, Aug, Oct
833 ([dev/core#2339](https://lab.civicrm.org/dev/core/-/issues/2339):
834 [19466](https://github.com/civicrm/civicrm-core/pull/19466))**
835
836- **Fix for ReportTest when launching a pdf
837 ([19497](https://github.com/civicrm/civicrm-core/pull/19497))**
838
839 This fixes a unit test failure caused by a recent merge on testing Report
840 output.
841
842- **Enotice fix ([19201](https://github.com/civicrm/civicrm-core/pull/19201))**
843
844- **Fix notice error on using max() with only one variable
845 ([19149](https://github.com/civicrm/civicrm-core/pull/19149))**
846
847- **Minor typos in schema files
848 ([19142](https://github.com/civicrm/civicrm-core/pull/19142))**
849
7c81ca3d
AH
850## <a name="credits"></a>Credits
851
852This release was developed by the following code authors:
853
88bd6b02 854AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Francis Whittle;
4990c7eb
AF
855Bluehorn Digital - Matt Glaman; CEDC - Laryn Kragt Bakker; Christian Wach;
856CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Sunil Pawar, Yashodha Chaku;
857CompuCorp - Ahed; Coop SymbioTIC - Mathieu Lutfy; Dave D; Fuzion - Jitendra
858Purohit; iXiam - César Ramos, Vangelis Pantazis; Jarek; JMA Consulting - Monish
859Deb, Seamus Lee; lucky091588; maynardsmith; Megaphone Technology Consulting -
860Jon Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Nishant
861Bhorodia; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen
862McNaughton
7c81ca3d
AH
863
864Most authors also reviewed code for this release; in addition, the following
865reviewers contributed their comments:
866
4990c7eb
AF
867Agileware - Justin Freeman; Artful Robot - Rich Lott; iXiam - Luciano Spiegel;
868JMA Consulting - Joe Murray; Joinery - Allen Shaw; Nicol Wistreich; Semper IT -
3269f8fb 869Karin Gerritsen; Third Sector Design - Michael McAndrew
e573d42e
AH
870
871## <a name="feedback"></a>Feedback
872
88bd6b02 873These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
e573d42e
AH
874to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
875and contact `@agh1`.