Merge pull request #18143 from mattwire/membertabbuttons
[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 ### CiviCase
229
230 - **Fix js for case type status change on load
231 ([18254](https://github.com/civicrm/civicrm-core/pull/18254))**
232
233 ### CiviContribute
234
235 - **Clean money for non-deductible amount
236 ([18300](https://github.com/civicrm/civicrm-core/pull/18300))**
237
238 Ensures that the Contribution API cleans data entered into the "non-deductible
239 amount" field the same way it cleans the other money fields.
240
241 - **Processors - remove gross_amount param from processors
242 ([18177](https://github.com/civicrm/civicrm-core/pull/18177))**
243
244 The gross_amount param is returned by a bunch of processors but is not used so
245 this removes it.
246
247 - **{contribution.receipt_date} token does not use any CiviCRM date formatter,
248 output in YYYY-MM-DD HH:MM:SS format and {contribution.receive_date} also uses
249 a non-standard format
250 ([18176](https://github.com/civicrm/civicrm-core/pull/18176))**
251
252 - **Fix PHP notice on contribution page
253 ([18116](https://github.com/civicrm/civicrm-core/pull/18116))**
254
255 - **E_NOTICE on contribution page widget tab
256 ([18189](https://github.com/civicrm/civicrm-core/pull/18189))**
257
258 - **change payment instrument when pending payment paid through credit card
259 ([dev/core#912](https://lab.civicrm.org/dev/core/-/issues/912):
260 [18266](https://github.com/civicrm/civicrm-core/pull/18266))**
261
262 ### CiviEvent
263
264 - **Allow the "Cancellation or transfer time limit (hours)" to be negative
265 ([dev/event#34](https://lab.civicrm.org/dev/event/-/issues/34):
266 [18067](https://github.com/civicrm/civicrm-core/pull/18067))**
267
268 Ensures that entering a negative value into "Cancellation or transfer time
269 limit (hours)" saves correctly and works as expected.
270
271 - **Batch Update via Profile does not supply data for editing when custom fields
272 created after participant added to event
273 ([18235](https://github.com/civicrm/civicrm-core/pull/18235))**
274
275 - **E_WARNING when saving event fees admin page if there's no discounts set
276 ([18169](https://github.com/civicrm/civicrm-core/pull/18169))**
277
278 ### CiviMail
279
280 - **Unexpected behavior from api.MailingEventSubscribe.create
281 (Work Towards [dev/mail#24](https://lab.civicrm.org/dev/mail/-/issues/24):
282 [18325](https://github.com/civicrm/civicrm-core/pull/18325))**
283
284 Fixes labels for APIv3 `MailingEventSubscribe.create` so that they accurately
285 represent the behavior (unsubscribe v subscribe).
286
287 - **Mass SMS: Limit group selection to mailing groups
288 ([18154](https://github.com/civicrm/civicrm-core/pull/18154))**
289
290 Ensures that the fields "Include Groups" and "Exclude Groups" on the "New SMS" form
291 only list groups of the type "Mailing List".
292
293 ### Drupal Integration
294
295 - **Fix : Enable Drupal Watchdog Logging for Drupal 8
296 ([dev/core#1943](https://lab.civicrm.org/dev/core/-/issues/1943):
297 [18115](https://github.com/civicrm/civicrm-core/pull/18115))**
298
299 Ensure the setting `Enable Drupal Watchdog Logging` works on Drupal 8 sites.
300
301 ### WordPress Integration
302
303 - **Check if $post defined before trying to use its field values.
304 ([18168](https://github.com/civicrm/civicrm-core/pull/18168))**
305
306 This fixes php notices like `PHP Notice: Trying to get property 'post_name'
307 of non-object in <webroot
308 path>\wp-content\plugins\civicrm\civicrm\CRM\Utils\System\WordPress.php on
309 line 288`
310
311 ## <a name="misc"></a>Miscellany
312
313 - **Fix regen and update civicrm_generated
314 ([18273](https://github.com/civicrm/civicrm-core/pull/18273))**
315
316 - **Do not pass by reference for createRelatedMemberships
317 ([18243](https://github.com/civicrm/civicrm-core/pull/18243))**
318
319 - **Typo in groups dropdown on scheduled reminders admin form
320 ([dev/core#1956](https://lab.civicrm.org/dev/core/-/issues/1956):
321 [18323](https://github.com/civicrm/civicrm-core/pull/18323))**
322
323 - **Replace CRM_Utils_Array::value in contribution/confirm and bao/membership
324 ([18157](https://github.com/civicrm/civicrm-core/pull/18157))**
325
326 - **Cleanup contactID variables in event/contribution register buildQuickForm
327 ([18208](https://github.com/civicrm/civicrm-core/pull/18208))**
328
329 - **Use already determined value for contributionRecurID
330 ([18265](https://github.com/civicrm/civicrm-core/pull/18265))**
331
332 - **Minor code cleanup to Order API
333 ([18217](https://github.com/civicrm/civicrm-core/pull/18217))**
334
335 - **CodeGen - Add use statement to extensions DAO files
336 ([18094](https://github.com/civicrm/civicrm-core/pull/18094))**
337
338 - **Use more appropriate money format function
339 ([18151](https://github.com/civicrm/civicrm-core/pull/18151))**
340
341 - **Metadata fix in activity search
342 ([18216](https://github.com/civicrm/civicrm-core/pull/18216))**
343
344 - **Replace deprecated Drupal 8 constants
345 ([18240](https://github.com/civicrm/civicrm-core/pull/18240))**
346
347 - **Spelling mistake "separator" not "seperator"
348 ([18238](https://github.com/civicrm/civicrm-core/pull/18238))**
349
350 - **Remove unused variables from repeatTransaction
351 ([18209](https://github.com/civicrm/civicrm-core/pull/18209))**
352
353 - **Remove first_contribution key from repeattransaction
354 ([18197](https://github.com/civicrm/civicrm-core/pull/18197))**
355
356 - **Remove unnecessary transformation of upgrade msg severity
357 ([18182](https://github.com/civicrm/civicrm-core/pull/18182))**
358
359 - **Remove old dropped items from the schema xml
360 ([18244](https://github.com/civicrm/civicrm-core/pull/18244))**
361
362 - **Remove 1 of 2 remaining places where relatedObjects is called in
363 completeOrder ([18257](https://github.com/civicrm/civicrm-core/pull/18257))**
364
365 - **Remove last pass-by-reference in completeOrder signature
366 ([18258](https://github.com/civicrm/civicrm-core/pull/18258))**
367
368 - **Remove legacy handling for 'fixing' line_item.entity_id
369 ([18155](https://github.com/civicrm/civicrm-core/pull/18155))**
370
371 - **Remove deprecated code ids['userId']
372 ([18156](https://github.com/civicrm/civicrm-core/pull/18156))**
373
374 - **Remove 'hack' that overwrites result of searchColumns hook in mailings list
375 ([18237](https://github.com/civicrm/civicrm-core/pull/18237))**
376
377 - **Remove unused variable
378 ([18108](https://github.com/civicrm/civicrm-core/pull/18108))**
379
380 - **Remove handling for 4.2 DBs
381 ([612](https://github.com/civicrm/civicrm-drupal/pull/612))**
382
383 - **Remove ref to logging time
384 ([18221](https://github.com/civicrm/civicrm-core/pull/18221))**
385
386 - **Remove 2019 deprecated function
387 ([18242](https://github.com/civicrm/civicrm-core/pull/18242))**
388
389 - **remove dropped tables for activity target and assignment
390 ([18280](https://github.com/civicrm/civicrm-core/pull/18280))**
391
392 - **Deprecate 'trapException' in DAO::executeQuery
393 ([18138](https://github.com/civicrm/civicrm-core/pull/18138))**
394
395 - **Deprecate/remove unused checkVersion() functions
396 ([18134](https://github.com/civicrm/civicrm-core/pull/18134))**
397
398 - **[REF] Ensure that the form param _id is set when adding a new group w…
399 ([18250](https://github.com/civicrm/civicrm-core/pull/18250))**
400
401 - **[REF] Update recent replacement for CRM_Utils_Array::value
402 ([18172](https://github.com/civicrm/civicrm-core/pull/18172))**
403
404 - **[REF] Remove usages of CRM_Utils_Money::format that pass in a blank s…
405 ([18142](https://github.com/civicrm/civicrm-core/pull/18142))**
406
407 - **[REF] Move isSSLDSN() function to avoid potential problems
408 ([18131](https://github.com/civicrm/civicrm-core/pull/18131))**
409
410 - **(REF) CRM_Core_Region - Remove unused bits
411 ([18139](https://github.com/civicrm/civicrm-core/pull/18139))**
412
413 - **[REF] Move Auto DSN Switching into a core function
414 ([18270](https://github.com/civicrm/civicrm-core/pull/18270))**
415
416 - **[REF] Remove DB Package as it is now deployed using composer
417 ([302](https://github.com/civicrm/civicrm-packages/pull/302))**
418
419 - **[REF] Deploy Pear DB package using composer
420 ([18027](https://github.com/civicrm/civicrm-core/pull/18027))**
421
422 - **[REF] Update subtypeInfo function to leverage getAllContactTypes
423 ([17934](https://github.com/civicrm/civicrm-core/pull/17934))**
424
425 - **[REF] Fix metadata label for contribution_page_id
426 ([18047](https://github.com/civicrm/civicrm-core/pull/18047))**
427
428 - **REF Remove unused passbyreference and var from ipn_process_transaction
429 ([18311](https://github.com/civicrm/civicrm-core/pull/18311))**
430
431 - **[REF] Clean up return variables on updateContributionStatus,
432 updatePendingOnlineContribution
433 ([18303](https://github.com/civicrm/civicrm-core/pull/18303))**
434
435 - **[REF] Move function to delete merged contacts to the Merger class and
436 include all instances of the pair
437 ([17980](https://github.com/civicrm/civicrm-core/pull/17980))**
438
439 - **[REF] Remove most interaction with $objects in completeOrder
440 ([18315](https://github.com/civicrm/civicrm-core/pull/18315))**
441
442 - **[REF] Fix financial item allocation of negative payments against completed
443 payments ([17810](https://github.com/civicrm/civicrm-core/pull/17810))**
444
445 - **[REF] Separate and move line-item specific portion of checkTaxAmount to
446 LineItem api ([18294](https://github.com/civicrm/civicrm-core/pull/18294))**
447
448 - **[REF] [test] Slight increase in test cover & make functions more re-usable
449 ([18291](https://github.com/civicrm/civicrm-core/pull/18291))**
450
451 - **[REF] simplify retrieval of existing membership on membership renewal form
452 ([18296](https://github.com/civicrm/civicrm-core/pull/18296))**
453
454 - **[REF] Extract function to get locations to merge, rename 'operation' …
455 ([17991](https://github.com/civicrm/civicrm-core/pull/17991))**
456
457 - **[REF] Deprecate unused SQL temptable functions
458 ([18171](https://github.com/civicrm/civicrm-core/pull/18171))**
459
460 - **Minor cleanup in test class
461 ([18170](https://github.com/civicrm/civicrm-core/pull/18170))**
462
463 - **Add line item acl tests
464 ([18274](https://github.com/civicrm/civicrm-core/pull/18274))**
465
466 - **Fix test set up to call Order.create to create the correct line items
467 ([18279](https://github.com/civicrm/civicrm-core/pull/18279))**
468
469 - **Test & remove handling for max_related in renewal form
470 ([18295](https://github.com/civicrm/civicrm-core/pull/18295))**
471
472 - **Add test to check, remove unnecessary lines
473 ([18292](https://github.com/civicrm/civicrm-core/pull/18292))**
474
475 - **[Test framework] - Remove test for deprecated way of calling hook invoke
476 ([18136](https://github.com/civicrm/civicrm-core/pull/18136))**
477
478 - **(NFC) Update various DAO checksums
479 ([18184](https://github.com/civicrm/civicrm-core/pull/18184))**
480
481 - **[NFC] Add code comments about hidden but still used buttons
482 ([18119](https://github.com/civicrm/civicrm-core/pull/18119))**
483
484 - **[NFC] [Test] Initial testing on event payment forms.
485 ([18112](https://github.com/civicrm/civicrm-core/pull/18112))**
486
487 - **[NFC] Update locale over-ride documentation to mention that it is mos…
488 ([17919](https://github.com/civicrm/civicrm-core/pull/17919))**
489
490 - **(NFC) Add some tests to the `resources` group
491 ([18211](https://github.com/civicrm/civicrm-core/pull/18211))**
492
493 - **[NFC] Some DAO checksums not updated
494 ([18239](https://github.com/civicrm/civicrm-core/pull/18239))**
495
496 - **[NFC] Array formatting
497 ([18109](https://github.com/civicrm/civicrm-core/pull/18109))**
498
499 - **[NFC] IDE cleanup - arrays, single quotes
500 ([614](https://github.com/civicrm/civicrm-drupal/pull/614))**
501
502 ## <a name="credits"></a>Credits
503
504 This release was developed by the following code authors:
505
506 AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Justin Freeman, Pengyi
507 Zhang; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten;
508 CiviDesk - Sunil Pawar, Yashodha Chaku; Dave D; Flinders University of South
509 Australia - Tom Anderson; JMA Consulting - Monish Deb, Seamus Lee; John
510 Kingsnorth; Lemniscus - Noah Miller; Lighthouse Consulting and Design - Brian
511 Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MillerTech - Chamil
512 Wijesooriya; MJW Consulting - Matthew Wire; Squiffle Consulting - Aidan
513 Saunders; Wikimedia Foundation - Eileen McNaughton, Maggie Epps; Wildsight -
514 Lars Sanders-Green
515
516 Most authors also reviewed code for this release; in addition, the following
517 reviewers contributed their comments:
518
519 Artful Robot - Rich Lott; Christian Wach; Circle Interactive - Martin Castle;
520 Dave D; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe -
521 Patrick Figel; MJCO - Mikey O'Toole; Semper IT - Karin Gerritsen; Squiffle
522 Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano;
523
524 ## <a name="feedback"></a>Feedback
525
526 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
527 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
528 and contact `@agh1`.