CIVICRM-1223 fix errors
[civicrm-core.git] / release-notes / 5.18.0.md
1 # CiviCRM 5.18.0
2
3 Released October 2, 2019
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 - **Enable view/revert delete action for detail logging
29 ([15045](https://github.com/civicrm/civicrm-core/pull/15045))**
30
31 If detailed logging is enabled, you can now view and revert deleted
32 information.
33
34 - **Download Bower dependencies using Composer
35 ([dev/drupal#8](https://lab.civicrm.org/dev/drupal/issues/8):
36 [15044](https://github.com/civicrm/civicrm-core/pull/15044))**
37
38 This improves performance and caching by downloading Javascript libraries
39 using Composer with `composer-downloads-plugin` and specified zip files rather
40 than Bower.
41
42 - **Add `hook_civicrm_pre` and `hook_civicrm_post` to Domain create and edit
43 operations ([dev/core#1203](https://lab.civicrm.org/dev/core/issues/1203):
44 [15104](https://github.com/civicrm/civicrm-core/pull/15104))**
45
46 Makes it so one can detect when a new Domain has been created or when a Domain
47 has been edited with the usual `hook_civicrm_pre` and `hook_civicrm_post`
48 callbacks.
49
50 - **Api support for deduping
51 (Work Towards [dev/core#1230](https://lab.civicrm.org/dev/core/issues/1230):
52 [15196](https://github.com/civicrm/civicrm-core/pull/15196),
53 [15188](https://github.com/civicrm/civicrm-core/pull/15188),
54 [15187](https://github.com/civicrm/civicrm-core/pull/15187),
55 [15227](https://github.com/civicrm/civicrm-core/pull/15227) and
56 [15154](https://github.com/civicrm/civicrm-core/pull/15154))**
57
58 Work toward improving the new API support for deduping including: not
59 geocoding when merging for performance reasons, giving contacts with 'merge
60 duplicate contacts' permission to get dedupe rules, ensuring the API call
61 Dedupe.getstatistics requires "Access CiviCRM" and adds a check for 'force
62 merge duplicate contacts' if mode is aggressive.
63
64 - **Add cid parameter in custom group form url & set it for Activity form
65 ([dev/core#752](https://lab.civicrm.org/dev/core/issues/752):
66 [15012](https://github.com/civicrm/civicrm-core/pull/15012))**
67
68 Adds a contact id parameter (cid=) when loading custom data via back end forms
69 so that hooks can modify behavior based on the `contact_id` being viewed.
70
71 - **Make report listing actions links hookable
72 ([dev/core#1077](https://lab.civicrm.org/dev/core/issues/1077):
73 [15074](https://github.com/civicrm/civicrm-core/pull/15074))**
74
75 The actions list on the report listing screen can now be altered by developers
76 using `hook_civicrm_links`.
77
78 - **Fixes inconsistency between constituency summary and constituency detail
79 ([15222](https://github.com/civicrm/civicrm-core/pull/15222))**
80
81 This improves the consistency of how the "Print Report" action link functions
82 on the reports listing. Before this change, some "Print Report" links would
83 take the user to the report in print view, and some would trigger a print
84 pop-up.
85
86 - **Add index to civicrm_contact.created_date & modified_date
87 ([15203](https://github.com/civicrm/civicrm-core/pull/15203))**
88
89 This adds an index to the `created_date` and `modified_date` columns in the
90 `civicrm_contact` table.
91
92 - **Added field title for Cache table
93 ([15204](https://github.com/civicrm/civicrm-core/pull/15204))**
94
95 The Data Access Object for the `civicrm_cache` table now stores titles for
96 each field.
97
98 - **Allow Manual Geo Code flag to be exported
99 ([14998](https://github.com/civicrm/civicrm-core/pull/14998))**
100
101 The field denoting that an address has been manually geocoded can now be
102 exported.
103
104 - **Use merge duplicate contacts as api permission for merging
105 ([15155](https://github.com/civicrm/civicrm-core/pull/15155))**
106
107 Changes the API call `Contact.merge` to require 'merge duplicate contacts'
108 instead of 'Administer CiviCRM'.
109
110 - **Adjust permissions on dedupe exception api to 'merge duplicate contacts'
111 ([15157](https://github.com/civicrm/civicrm-core/pull/15157))**
112
113 The API for managing dedupe exceptions now requires the permission "merge
114 duplicate contacts" instead of "Administer CiviCRM".
115
116 - **Open up permissions on Dedupe.getduplicates
117 ([15152](https://github.com/civicrm/civicrm-core/pull/15152))**
118
119 Less restrictive permissions on the `Dedupe.getduplicates` API (currently only
120 used from unit tests) specifically moves from requiring the permission
121 "Administer CiviCRM" to "Access CiviCRM".
122
123 - **Fix inconsistencies in duplicate retrieval
124 ([15160](https://github.com/civicrm/civicrm-core/pull/15160))**
125
126 Ensures the API call `Dedupe.getduplicates` respects both 'limit' and
127 'search_limit' parameters.
128
129 - **Error log improvements: Provide priority level
130 ([14995](https://github.com/civicrm/civicrm-core/pull/14995))**
131
132 Improves error logging by adding the ability to pass a priority level argument
133 to `CRM_Core_Error::debug_var()`.
134
135 - **Improve deadlock error handling
136 ([258](https://github.com/civicrm/civicrm-packages/pull/258))**
137
138 Improves deadlock error handling by capturing the error when the deadlock is
139 first hit so the backtrace is retained.
140
141 - **Better error handling in CRM_Utils_JS::decode
142 ([15145](https://github.com/civicrm/civicrm-core/pull/15145))**
143
144 Improves handling of malformed Javascript so as to reduce PHP notices.
145
146 - **Replace some calls to CRM_Core_Error::fatal with exceptions
147 ([15156](https://github.com/civicrm/civicrm-core/pull/15156))**
148
149 Instead of exiting with a fatal error, certain dedupe error situations now
150 throw an exception.
151
152 ### CiviEvent
153
154 - **Creating an event clears the cache
155 ([dev/event#14](https://lab.civicrm.org/dev/event/issues/14):
156 [15140](https://github.com/civicrm/civicrm-core/pull/15140))**
157
158 This change improves performance by not clearing caches every time an event is
159 created.
160
161 ### CiviMembership
162
163 - **Convert jcalendar date fields to date picker for membership fields to
164 support date picker conversion
165 ([15177](https://github.com/civicrm/civicrm-core/pull/15177),
166 [15186](https://github.com/civicrm/civicrm-core/pull/15186),
167 [15198](https://github.com/civicrm/civicrm-core/pull/15198) and
168 [15200](https://github.com/civicrm/civicrm-core/pull/15200))**
169
170 Date fields on membership search screens now use datepicker rather than
171 jCalendar.
172
173 The `join_date` column on the `civicrm_membership` table is now keyed as
174 `membership_join_date` within the DAO in order to support the change to date
175 picker format for Membership date fields.
176
177 - **Add default domain to membershiptype API
178 ([15120](https://github.com/civicrm/civicrm-core/pull/15120))**
179
180 The domain ID now defaults to the current domain when using the membership
181 type API.
182
183 - **Fix readability & caching on
184 CRM_Contact_BAO_Relationship::isInheritedMembershipInvalidated
185 ([15061](https://github.com/civicrm/civicrm-core/pull/15061))**
186
187 Improves caching and performance when calculating inherited memberships.
188
189 ### CiviPledge
190
191 - **Update Pledge XML to support date picker conversion
192 ([15180](https://github.com/civicrm/civicrm-core/pull/15180))**
193
194 Updates the XML and associated files to support the change to date picker
195 format for Pledge date fields.
196
197 ### Backdrop Integration
198
199 - **Fail more gracefully when upgrading on PHP5.x
200 ([98](https://github.com/civicrm/civicrm-backdrop/pull/98))**
201
202 Provides a clearer error when someone tries to upgrade with PHP 5.x.
203
204 ### Drupal Integration
205
206 - **Automatically tag the drupal-8 repository
207 (Work Towards [dev/release#9](https://lab.civicrm.org/dev/release/issues/9):
208 [15149](https://github.com/civicrm/civicrm-core/pull/15149))**
209
210 Continues work to automatically tag a Drupal8 version when new CiviCRM
211 versions are released as is done for other CMS's.
212
213 - **Error when upgrading to 5.16.0
214 ([dev/drupal#79](https://lab.civicrm.org/dev/drupal/issues/79):
215 [583](https://github.com/civicrm/civicrm-drupal/pull/583))**
216
217 Provides a clearer error when someone tries to upgrade with PHP 5.x.
218
219 ## <a name="bugs"></a>Bugs resolved
220
221 ### Core CiviCRM
222
223 - **Warnings on importing contacts - PHP 7.2
224 (Work Towards [dev/core#772](https://lab.civicrm.org/dev/core/issues/772):
225 [262](https://github.com/civicrm/civicrm-packages/pull/262))**
226
227 This fixes a PHP warning on PHP 7.2 using hierarchical select fields, such as
228 selecting the matching fields for import columns. Some fields have no fields
229 nested below them, and those would trigger an error on the `count()` function.
230
231 - **Warnings on CRM_Contribute_Import_Parser re countable
232 ([dev/core#1001](https://lab.civicrm.org/dev/core/issues/1001):
233 [14989](https://github.com/civicrm/civicrm-core/pull/14989))**
234
235 Fixes a few PHP 7.2 count warnings when importing.
236
237 - **Changing the label for the Inbound Email activity type lets you edit/delete
238 them even if the permission disallows
239 ([dev/core#1123](https://lab.civicrm.org/dev/core/issues/1123):
240 [15240](https://github.com/civicrm/civicrm-core/pull/15240) and
241 [15147](https://github.com/civicrm/civicrm-core/pull/15147))**
242
243 - **Regression: Can't use CiviCRM menu on 5.16.0
244 ([dev/core#1182](https://lab.civicrm.org/dev/core/issues/1182):
245 [15020](https://github.com/civicrm/civicrm-core/pull/15020) and
246 [15019](https://github.com/civicrm/civicrm-core/pull/15019))**
247
248 Fixes a bug in CiviCRM 5.16.0 where a race condition was causing the CiviCRM
249 Admin Menu to break.
250
251 - **csv import only import one phone number
252 ([dev/core#1187](https://lab.civicrm.org/dev/core/issues/1187):
253 [15190](https://github.com/civicrm/civicrm-core/pull/15190))**
254
255 Fixes a bug whereby one phone number is not imported if 2 of the same location
256 type but different phone types are in an import.
257
258 - **Fix Psalm issue Class or interface CiviCRM_API3_Exception does not exist
259 ([dev/core#1188](https://lab.civicrm.org/dev/core/issues/1188):
260 [15043](https://github.com/civicrm/civicrm-core/pull/15043))**
261
262 Ensures that the Psalm Autoloader can find `CiviCRM_API3_Exception`.
263
264 - **File attachment uploads - pptx issue
265 ([dev/core#1190](https://lab.civicrm.org/dev/core/issues/1190):
266 [15239](https://github.com/civicrm/civicrm-core/pull/15239))**
267
268 Fixes the upgrade function for adding ".pptx" to the list of safe file types.
269
270 - **ENOTICE when creating activity from contact search results / aka Repeat
271 Activity accordion section missing when using Add Activity from contact search
272 results ([dev/core#1192](https://lab.civicrm.org/dev/core/issues/1192):
273 [15079](https://github.com/civicrm/civicrm-core/pull/15079))**
274
275 Fixes a PHP notice when using the "Add Activity" action from the contact
276 search results list.
277
278 - **CiviCRM Dashboard does not respect multiple domains
279 ([dev/core#1200](https://lab.civicrm.org/dev/core/issues/1200):
280 [15099](https://github.com/civicrm/civicrm-core/pull/15099))**
281
282 For sites with multisite enabled ensures that the CiviCRM Dashboard respects
283 multiple domains and shows unique dashlets depending on what domain you are
284 using.
285
286 - **Contact subtype is removed after being cached incorrectly
287 ([dev/core#1222](https://lab.civicrm.org/dev/core/issues/1222):
288 [15171](https://github.com/civicrm/civicrm-core/pull/15171))**
289
290 Ensures the static cache is cleared whenever updating or deleting a DAO
291 object.
292
293 - **Regression: Searching on Email broken in advanced search
294 ([dev/core#1244](https://lab.civicrm.org/dev/core/issues/1244):
295 [15255](https://github.com/civicrm/civicrm-core/pull/15255))**
296
297 This fixes a problem where attempting to search on email on the Advanced
298 search form resulted in a warning and no results.
299
300 - **Trim form values when adding LIKE operator
301 ([15275](https://github.com/civicrm/civicrm-core/pull/15275))**
302
303 Fixes a 5.17 regression whereby the email string is no longer being trimmed
304 when searching.
305
306 - **Ensure filtering on email via the api looks for an exact match
307 ([15276](https://github.com/civicrm/civicrm-core/pull/15276))**
308
309 Fixes a released regression whereby a wildcard was being added to API
310 Contact.get requests with the email parameter.
311
312 - **Fix fatal when saving import mapping with a relationship but 'Primary'
313 location type ([15115](https://github.com/civicrm/civicrm-core/pull/15115))**
314
315 When an import column was mapped to a field with the "Primary" location type
316 that was on a related contact, it would result in a fatal error.
317
318 - **Fix export header for 'Contact ID'
319 ([15118](https://github.com/civicrm/civicrm-core/pull/15118))**
320
321 This ensures when exporting a contact id column the header is "Contact ID" not
322 "contact_id".
323
324 - **Changed ClassName for ACL cache
325 ([15193](https://github.com/civicrm/civicrm-core/pull/15193))**
326
327 Ensures `civicrm_acl_cache` and `civicrm_cache` use different entity names.
328
329 - **Set contact communication_style_id as importable
330 ([15205](https://github.com/civicrm/civicrm-core/pull/15205))**
331
332 Ensures the "Contact Communication Style" is visible in profile view mode.
333
334 - **Incorporate searchLimit in dedupe cacheKey
335 ([15185](https://github.com/civicrm/civicrm-core/pull/15185))**
336
337 When you change the search limit after a duplicate search has been performed,
338 this ensures that a new search is run.
339
340 - **Allow for the deselection of sorting filters
341 ([15029](https://github.com/civicrm/civicrm-core/pull/15029))**
342
343 Fixes a bug where removing sorting filters on reports and refreshing the
344 results would nevertheless retain the sorting filters.
345
346 - **CRM_Utils_Array::crmInArray() should recurse properly
347 ([dev/core#1196](https://lab.civicrm.org/dev/core/issues/1196):
348 [15092](https://github.com/civicrm/civicrm-core/pull/15092))**
349
350 - **Add ts() to deceased string
351 ([15211](https://github.com/civicrm/civicrm-core/pull/15211))**
352
353 The word "deceased" when appended to a contact's name is now translatable.
354
355 - **Fatal Error in "Search Builder" if "Household" Contact type is disabled.
356 ([dev/core#1246](https://lab.civicrm.org/dev/core/issues/1246):
357 [15289](https://github.com/civicrm/civicrm-core/pull/15289))**
358
359 - **Do not show Activity Separation on when viewing an Activity
360 ([15046](https://github.com/civicrm/civicrm-core/pull/15046))**
361
362 The option to create separate activities for each contact, only applicable
363 when creating a new activity, would erroneously appear when viewing an
364 activity.
365
366 - **Activity profile on Update multiple activities action displays duplicate
367 assignees ([dev/core#1185](https://lab.civicrm.org/dev/core/issues/1185):
368 [15035](https://github.com/civicrm/civicrm-core/pull/15035))**
369
370 The list of assignees would display all of the assignees for each previous row
371 in addition to the assignee(s) for that activity.
372
373 - **Ensure that civicrm_dashboard has a foreign key to civicrm_domain
374 ([15119](https://github.com/civicrm/civicrm-core/pull/15119))**
375
376 - **Manage Group search message fix
377 ([15052](https://github.com/civicrm/civicrm-core/pull/15052))**
378
379 When no the group listing is filtered and no groups match the criteria, the
380 message says that more clearly rather than stating there are no groups on the
381 site.
382
383 ### CiviCampaign
384
385 - **Actions in campaign dashboard not working with pop-up disabled
386 ([dev/core#1233](https://lab.civicrm.org/dev/core/issues/1233):
387 [15233](https://github.com/civicrm/civicrm-core/pull/15233))**
388
389 Ensures users with pop ups deactivated can edit and delete campaigns.
390
391 ### CiviCase
392
393 - **Proposal to fix longstanding name vs label problems for case roles (Work
394 Towards [dev/core#1046](https://lab.civicrm.org/dev/core/issues/1046):
395 [15192](https://github.com/civicrm/civicrm-core/pull/15192) and
396 [15182](https://github.com/civicrm/civicrm-core/pull/15182))**
397
398 These changes work towards fixing the label being used as the name in some
399 places in CiviCase by allowing for an override tag in the xml to specify the
400 actual "name".
401
402 - **Changing a civicase activity's label breaks the max_instances check
403 (Work Towards [dev/core#1116](https://lab.civicrm.org/dev/core/issues/1116):
404 [14999](https://github.com/civicrm/civicrm-core/pull/14999),
405 [15002](https://github.com/civicrm/civicrm-core/pull/15002),
406 [15000](https://github.com/civicrm/civicrm-core/pull/15000) and
407 [15032](https://github.com/civicrm/civicrm-core/pull/15032))**
408
409 Refactors and cleans up code in preparation for fixing a bug where CiviCase
410 activity's label breaks the max_instances check.
411
412 - **Fix search for case tags that are part of tag sets
413 ([15212](https://github.com/civicrm/civicrm-core/pull/15212))**
414
415 Fixes a DB Error when searching for tags that are a part of a tag set.
416
417 - **Switch to relationship BAO when modifying relationships in change case
418 status so we don't bypass hooks
419 ([15030](https://github.com/civicrm/civicrm-core/pull/15030))**
420
421 - **Word Replacements not working on manage case Roles
422 ([dev/core#1218](https://lab.civicrm.org/dev/core/issues/1218):
423 [15161](https://github.com/civicrm/civicrm-core/pull/15161))**
424
425 ### CiviContribute
426
427 - **Renaming a price option / fee level breaks event participant lists
428 ([CRM-17182](https://issues.civicrm.org/jira/browse/CRM-17182):
429 [15064](https://github.com/civicrm/civicrm-core/pull/15064) and
430 [15350](https://github.com/civicrm/civicrm-core/pull/15350))**
431
432 Fixes a bug where the `fee_amount` was being changed whenever a label was
433 changed and moves from searching based on regex on the `fee_amount` column to
434 searching based on the `price_field_value` id.
435
436 - **Add pre/post hooks for price set / field/option
437 ([dev/core#870](https://lab.civicrm.org/dev/core/issues/870):
438 [15076](https://github.com/civicrm/civicrm-core/pull/15076))**
439
440 The `hook_civicrm_pre` and `hook_civicrm_post` hooks get invoked when adding
441 price sets, fields, and options.
442
443 - **Event/Contribution amounts are duplicated when the form is saved
444 ([dev/core#1240](https://lab.civicrm.org/dev/core/issues/1240):
445 [15245](https://github.com/civicrm/civicrm-core/pull/15245))**
446
447 Fixes a bug where saving the "amounts" tab of either an event or contribution
448 page (when using that form to enter options, rather than a price set) results in the
449 duplication of the amount options listed.
450
451 - **Fix PayPalImpl Contribution Status PseudoConstant for non-English
452 ([15164](https://github.com/civicrm/civicrm-core/pull/15164))**
453
454 Ensures contribution statuses are set correctly for sites using PayPal Express
455 and a language other than English by switching to using the name property
456 instead of the label.
457
458 - **Fix an HTML error in Calculate.tpl
459 ([15102](https://github.com/civicrm/civicrm-core/pull/15102))**
460
461 This resolves a `<span>` that was not closed correctly on the calculation of a
462 price set's total amount due.
463
464 - **Use api to create activity and removed hardcoded status id
465 ([14621](https://github.com/civicrm/civicrm-core/pull/14621))**
466
467 When exporting an accounting batch, the activity that is created is now done
468 so using the API, and it uses the status name `Completed` rather than a
469 hard-coded status ID `2`.
470
471 - **Fix wrong variable in check for profiles on contributionpage
472 ([15093](https://github.com/civicrm/civicrm-core/pull/15093))**
473
474 Ensures the correct variable is being checked for pre profile types when
475 configuring a Contribution Page.
476
477 - **Batch payment page breaks when an exported activity has no file to download
478 ([dev/financial#58](https://lab.civicrm.org/dev/financial/issues/58):
479 [14367](https://github.com/civicrm/civicrm-core/pull/14367))**
480
481 - **Stop adding a refund payment from creating extraneous financial items
482 ([15143](https://github.com/civicrm/civicrm-core/pull/15143))**
483
484 ### CiviEvent
485
486 - **Most recent contact note exposed in event confirmation emails
487 ([dev/event#10](https://lab.civicrm.org/dev/event/issues/10):
488 [15060](https://github.com/civicrm/civicrm-core/pull/15060))**
489
490 Fixes a bug where when submitting an event registration which contains a
491 profile which contains a note field. If the note was left blank, then the
492 confirmation/notification emails would contain the most recent note in the
493 contact's record, potentially exposing confidential information.
494
495 - **Custom field values for a new Event based on an Event Template are not
496 checked causing false validation message and Event not to
497 save ([dev/core#1241](https://lab.civicrm.org/dev/core/issues/1241):
498 [15296](https://github.com/civicrm/civicrm-core/pull/15296))**
499
500 ### CiviGrant
501
502 - **Grant in Edit mode doesn't show the associated contact
503 ([dev/core#1065](https://lab.civicrm.org/dev/core/issues/1065):
504 [15238](https://github.com/civicrm/civicrm-core/pull/15238) and
505 [15209](https://github.com/civicrm/civicrm-core/pull/15209))**
506
507 Ensures that the associated contact field is shown when editing a grant.
508
509 - **Fixes for taking dynamic form name in grant search
510 ([15075](https://github.com/civicrm/civicrm-core/pull/15075))**
511
512 This removes the hard-coded form name when retrieving the search results in
513 preparation for a search action.
514
515 ### CiviMail
516
517 - **SMTP help text is misleading - references the wrong admin screen
518 ([dev/core#879](https://lab.civicrm.org/dev/core/issues/879):
519 [15165](https://github.com/civicrm/civicrm-core/pull/15165))**
520
521 Fixes up the help text displayed when testing the SMTP configuration fails.
522
523 - **Remove template field if using Mosaico in non shoreditch mode
524 ([14927](https://github.com/civicrm/civicrm-core/pull/14927))**
525
526 ### CiviMember
527
528 - **Fix metadata on member export
529 ([14916](https://github.com/civicrm/civicrm-core/pull/14916))**
530
531 Ensures when exporting memberships headings are set appropriately for the
532 following columns: `member_is_override`, `membership_recur_id` and
533 `max_related`.
534
535 - **Incorrect line item created for back-end membership sign-up using price set
536 and CiviDiscount ([dev/core#860](https://lab.civicrm.org/dev/core/issues/860):
537 [15004](https://github.com/civicrm/civicrm-core/pull/15004))**
538
539 - **[regression] Recurring contributions no longer properly update memberships
540 (on PayPal Pro, maybe others)
541 ([dev/membership#13](https://lab.civicrm.org/dev/membership/issues/13):
542 [15053](https://github.com/civicrm/civicrm-core/pull/15053))**
543
544 - **Make sure inherited memberships are not themselves inherited
545 ([15114](https://github.com/civicrm/civicrm-core/pull/15114))**
546
547 This prevents contacts from inheriting memberships that were inherited from
548 them.
549
550 - **{Membership.Fee} appears on Membership Renewal Reminder emails with 9
551 decimal places ([dev/core#377](https://lab.civicrm.org/dev/core/issues/377):
552 [14992](https://github.com/civicrm/civicrm-core/pull/14992))**
553
554 ### Drupal Integration
555
556 - **Drupal8: getUrlPath: avoid relying on the deprecated 'q' variable
557 (Work Towards [dev/drupal#52](https://lab.civicrm.org/dev/drupal/issues/52):
558 [15268](https://github.com/civicrm/civicrm-core/pull/15268))**
559
560 In Drupal8, the 'q' variable has been deprecated which has resulted in CiviCRM
561 throwing a bunch of PHP notices. This PR silences those notices while a more
562 long term fix is developed.
563
564 ### Joomla Integration
565
566 - **Some error messages render a chunk of markup as plain text
567 ([dev/joomla#10](https://lab.civicrm.org/dev/joomla/issues/10):
568 [15159](https://github.com/civicrm/civicrm-core/pull/15159))**
569
570 Removes Joomla-specific error display and use native CiviCRM display to avoid
571 some error messages rendering as plain text.
572
573 - **PHP 7.2 countable warning after installation
574 ([dev/joomla#15](https://lab.civicrm.org/dev/joomla/issues/15):
575 [53](https://github.com/civicrm/civicrm-joomla/pull/53))**
576
577 - **[Joomla 4.0] CiviCRM's CSS interferes with Joomla's top header background
578 colour ([dev/joomla#24](https://lab.civicrm.org/dev/joomla/issues/24):
579 [15137](https://github.com/civicrm/civicrm-core/pull/15137))**
580
581 ## <a name="misc"></a>Miscellany
582
583 - **Swap CRM_Utils_Array::value for empty() in conditionals
584 ([15005](https://github.com/civicrm/civicrm-core/pull/15005))**
585
586 - **Possible timing issue with test phpunit/api/v3/AttachmentTest::testCreate
587 ([dev/core#938](https://lab.civicrm.org/dev/core/issues/938):
588 [15216](https://github.com/civicrm/civicrm-core/pull/15216))**
589
590 - **Change connection and results charsets to utf8mb4 on MySQL 5.5.3+
591 ([241](https://github.com/civicrm/civicrm-packages/pull/241))**
592
593 - **Fix upgrade version for #13487
594 ([15031](https://github.com/civicrm/civicrm-core/pull/15031))**
595
596 - **Update select2 to latest 3.x + patches
597 ([15054](https://github.com/civicrm/civicrm-core/pull/15054))**
598
599 - **Further work on payment.create consolidation - always handle financials from
600 payment.create ([14673](https://github.com/civicrm/civicrm-core/pull/14673))**
601
602 - **Extract function to create email activity when sending an email to contact
603 ([15133](https://github.com/civicrm/civicrm-core/pull/15133))**
604
605 - **Extract cancelParticipant and cancelMembership functions in baseIPN
606 ([15134](https://github.com/civicrm/civicrm-core/pull/15134))**
607
608 - **Rewrite subTypeInfo to use caching mechanism
609 ([14715](https://github.com/civicrm/civicrm-core/pull/14715))**
610
611 - **providing clear indication that civicrm_engage module is deprecated.
612 ([582](https://github.com/civicrm/civicrm-drupal/pull/582))**
613
614 - **distmaker - Finish migrating bower.json => composer.json
615 ([15148](https://github.com/civicrm/civicrm-core/pull/15148))**
616
617 - **Switch recordAdditionalPayment fully over to api
618 ([14408](https://github.com/civicrm/civicrm-core/pull/14408))**
619
620 - **Add note about testRenewMembership failing on certain days
621 ([15167](https://github.com/civicrm/civicrm-core/pull/15167))**
622
623 - **Someimes ya just gotta say enough already
624 ([15175](https://github.com/civicrm/civicrm-core/pull/15175))**
625
626 - **Extend loadSavedMapping to check defaults
627 ([15179](https://github.com/civicrm/civicrm-core/pull/15179))**
628
629 - **Initial refactor of BaseIPN
630 ([15129](https://github.com/civicrm/civicrm-core/pull/15129))**
631
632 - **Convert pledge date fields to use datepicker rather than jcalendar
633 ([15170](https://github.com/civicrm/civicrm-core/pull/15170))**
634
635 - **Use metadata for pledgeDateRange fields
636 ([15191](https://github.com/civicrm/civicrm-core/pull/15191))**
637
638 - **Add minimal test for testExportFinancialBatch
639 ([15136](https://github.com/civicrm/civicrm-core/pull/15136))**
640
641 - **Code cleanup in CRM_Core_Permission::check
642 ([15141](https://github.com/civicrm/civicrm-core/pull/15141))**
643
644 - **Event confirm - (very) minor cleanup + test
645 ([15010](https://github.com/civicrm/civicrm-core/pull/15010))**
646
647 - **Stabalize Attachment API Test
648 ([15066](https://github.com/civicrm/civicrm-core/pull/15066))**
649
650 - **Remove ?last? instances of ->free()
651 ([dev/core#562](https://lab.civicrm.org/dev/core/issues/562):
652 [14990](https://github.com/civicrm/civicrm-core/pull/14990))**
653
654 - **Add myself to the contributor list
655 ([15036](https://github.com/civicrm/civicrm-core/pull/15036))**
656
657 - **Remove silly dumb unreachable lines
658 ([15033](https://github.com/civicrm/civicrm-core/pull/15033))**
659
660 - **Deprecate CRM_Core_Config::addressSequence()
661 ([15126](https://github.com/civicrm/civicrm-core/pull/15126))**
662
663 - **Deprecate CRM_Core_Config::defaultContactCountry and
664 defaultContactCountryName
665 ([15127](https://github.com/civicrm/civicrm-core/pull/15127))**
666
667 - **Use metadata for dataPatterns
668 ([15224](https://github.com/civicrm/civicrm-core/pull/15224))**
669
670 - **SyntaxConformanceTest::testSqlOperators - Skip "Dedupe" entity on MySQL 5.5
671 ([15234](https://github.com/civicrm/civicrm-core/pull/15234))**
672
673 - **Add in 5.17.1 Release notes and migrate .tpl file for 5.17.1 to 5.18 to
674 support upgrade
675 ([15253](https://github.com/civicrm/civicrm-core/pull/15253))**
676
677 - **(NFC) Add comments to relate to gitlab ticket
678 ([dev/core#927](https://lab.civicrm.org/dev/core/issues/927):
679 [15128](https://github.com/civicrm/civicrm-core/pull/15128))**
680
681 - **Remove unused method CRM_Contact_BAO_Contact_Utils::maxLocations
682 ([15091](https://github.com/civicrm/civicrm-core/pull/15091))**
683
684 - **Remove unused Selenium binaries
685 ([263](https://github.com/civicrm/civicrm-packages/pull/263))**
686
687 - **Remove a few unused scripts from tools/bin/scripts
688 ([15078](https://github.com/civicrm/civicrm-core/pull/15078))**
689
690 - **Remove deprecated unused function.
691 ([15070](https://github.com/civicrm/civicrm-core/pull/15070))**
692
693 - **Remove unused skipRedirect param
694 ([15125](https://github.com/civicrm/civicrm-core/pull/15125))**
695
696 - **[clean up][ export] Remove membership_auto_renew from defaultReturn
697 properties ([14980](https://github.com/civicrm/civicrm-core/pull/14980))**
698
699 - **[Ref] [Import] Use processor to determine website type, location type, test
700 ([15116](https://github.com/civicrm/civicrm-core/pull/15116))**
701
702 - **[Import] [ref] - minor cleanup to reduce code complexity
703 ([15097](https://github.com/civicrm/civicrm-core/pull/15097))**
704
705 - **[ref] [ import] Extend tests & simpler retrieval to relationship_type_id
706 ([15130](https://github.com/civicrm/civicrm-core/pull/15130))**
707
708 - **[REF] Import - minor cleanup - generate js on the processor class
709 ([15183](https://github.com/civicrm/civicrm-core/pull/15183))**
710
711 - **[Import] Minor cleanup on membership import
712 ([15013](https://github.com/civicrm/civicrm-core/pull/15013))**
713
714 - **[Import][ref] Minor code improvement - move setDefaults to processor
715 ([15189](https://github.com/civicrm/civicrm-core/pull/15189))**
716
717 - **[Ref] [Import] more code cleanup
718 ([15219](https://github.com/civicrm/civicrm-core/pull/15219))**
719
720 - **[Ref] [Import] Final round in the cleanup Load Mapping form epic
721 ([15226](https://github.com/civicrm/civicrm-core/pull/15226))**
722
723 - **[Import] [REF] code cleanup & test on the code to 'guess the intended
724 field from the column name'
725 ([15220](https://github.com/civicrm/civicrm-core/pull/15220))**
726
727 - **[REF] [Import] Minor cleanup on status setting.
728 ([15015](https://github.com/civicrm/civicrm-core/pull/15015))**
729
730 - **[REF] [Import] extract saved mapping code to parent class
731 ([15017](https://github.com/civicrm/civicrm-core/pull/15017))**
732
733 - **[Import] [Cleanup] remove unused parameters
734 ([14981](https://github.com/civicrm/civicrm-core/pull/14981))**
735
736 - **[Ref] [Import] move metadata calculations to a trait
737 ([15018](https://github.com/civicrm/civicrm-core/pull/15018))**
738
739 - **[Test] [Ref] [Import]Add wrapper class for importProcessor
740 ([15028](https://github.com/civicrm/civicrm-core/pull/15028))**
741
742 - **Refactor CRM_Contact_BAO_Relationship::add to autoload missing params from
743 existing record ([15103](https://github.com/civicrm/civicrm-core/pull/15103)
744 and [15123](https://github.com/civicrm/civicrm-core/pull/15123))**
745
746 - **[Ref] Extract addInheritedMembership
747 ([15113](https://github.com/civicrm/civicrm-core/pull/15113))**
748
749 - **[REF] minor code refactor on import - Pass ProcessorObject into
750 loadSavedMapping & use it to load the formName
751 ([15068](https://github.com/civicrm/civicrm-core/pull/15068))**
752
753 - **Minor refactor of 'Pending' parameter for processMembership
754 ([15124](https://github.com/civicrm/civicrm-core/pull/15124))**
755
756 - **[REF] Very minor code cleanup on import code with good test cover
757 ([15173](https://github.com/civicrm/civicrm-core/pull/15173))**
758
759 - **[REF] Move clone template functionality from api to bao
760 ([15163](https://github.com/civicrm/civicrm-core/pull/15163))**
761
762 - **[REF] Extract chunk of code relating to whether to disabled an inherited
763 relationship ([14955](https://github.com/civicrm/civicrm-core/pull/14955))**
764
765 - **[REF] Move calculation of js for import fields WITH relationship keys to
766 processor. ([15218](https://github.com/civicrm/civicrm-core/pull/15218))**
767
768 - **[Datepicker][REF] Convert mailing date field on mailing search screen…
769 ([15181](https://github.com/civicrm/civicrm-core/pull/15181))**
770
771 - **[Ref] Import use process for relationship defaults, add test
772 ([15215](https://github.com/civicrm/civicrm-core/pull/15215))**
773
774 - **[REF] extract send receipt in MembershipRenewal fn
775 ([15117](https://github.com/civicrm/civicrm-core/pull/15117))**
776
777 - **[NFC] Fix test syntax
778 ([15067](https://github.com/civicrm/civicrm-core/pull/15067))**
779
780 - **[NFC] swap instances where double = is used but it should be triple =
781 ([15049](https://github.com/civicrm/civicrm-core/pull/15049))**
782
783 - **[NFC] Update Upgrade Template to use short array syntax
784 ([15057](https://github.com/civicrm/civicrm-core/pull/15057))**
785
786 - **[NFC] Remove redundant annotation
787 ([15172](https://github.com/civicrm/civicrm-core/pull/15172))**
788
789 - **(NFC) assertPhpSupport - Code cleanup
790 ([164](https://github.com/civicrm/civicrm-wordpress/pull/164))**
791
792 - **(NFC) civicrm.drush.inc - Cleanup style
793 ([99](https://github.com/civicrm/civicrm-backdrop/pull/99))**
794
795 - **[NFC] Update Default report instances that filter on join date to be …
796 ([15247](https://github.com/civicrm/civicrm-core/pull/15247))**
797
798 - **[NFC] Add ImportProcessor class & unit tests + extend existing cover
799 ([15072](https://github.com/civicrm/civicrm-core/pull/15072))**
800
801 - **[NFC] Update the APIv3 documentation links.
802 ([15077](https://github.com/civicrm/civicrm-core/pull/15077))**
803
804 - **(NFC) GenericAssertionsTrait - Improve docblocks
805 ([15071](https://github.com/civicrm/civicrm-core/pull/15071))**
806
807 - **[NFC] Update Examples
808 ([15085](https://github.com/civicrm/civicrm-core/pull/15085))**
809
810 - **[Test] [NFC] upgrade remaining export tests
811 ([15095](https://github.com/civicrm/civicrm-core/pull/15095))**
812
813 - **[Test] Bring to life dormant test
814 ([15150](https://github.com/civicrm/civicrm-core/pull/15150))**
815
816 - **[TEST] Enable apiv4 testing for GroupNesting and GroupOrganization entities
817 ([15217](https://github.com/civicrm/civicrm-core/pull/15217))**
818
819 - **[Test] Demonstrate the truthiness of CRM_Utils_System::isNull
820 ([15027](https://github.com/civicrm/civicrm-core/pull/15027))**
821
822 - **Unit test for custom date parsing
823 ([14988](https://github.com/civicrm/civicrm-core/pull/14988))**
824
825 - **[NFC] [Test] dev/core#1098 Add unit test & code comments relating to the
826 slow activity search
827 ([15016](https://github.com/civicrm/civicrm-core/pull/15016))**
828
829 - **[Import] [Test] Initial test on loadSavedMapping function.
830 ([15050](https://github.com/civicrm/civicrm-core/pull/15050))**
831
832 - **[Test] Tolerance parameter in attachmenttest needs to be one higher for
833 integers ([15069](https://github.com/civicrm/civicrm-core/pull/15069))**
834
835 - **[Test] Fix Last_name in CiviUnitTestCase::activityCreate
836 ([15112](https://github.com/civicrm/civicrm-core/pull/15112))**
837
838 - **test for PR
839 ([15121](https://github.com/civicrm/civicrm-core/pull/15121))**
840
841 ## <a name="credits"></a>Credits
842
843 This release was developed by the following code authors:
844
845 19ATF77; AGH Strategies - Andrew Hunt; Agileware - Justin Freeman; Andrew
846 Thompson; Australian Greens - Seamus Lee; Caltha - Tomasz Pietrzkowski;
847 Christian Wach; Circle Interactive - Dave Jenkins, Pradeep Nayak, Reece Benson;
848 CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha
849 Chaku; Coop SymbioTIC - Mathieu Lutfy; Dave D; Electronic Frontier Foundation -
850 Mark Burdett; Florian Kohrt; Greenpeace CEE - Patrick Figel; JMA Consulting -
851 Monish Deb; John Kingsnorth; Megaphone Technology Consulting - Jon Goldberg; MJW
852 Consulting - Matthew Wire; mmyriam; Onyemenam Ndubuisi; Progressive Technology
853 Project - Jamie McClelland; Tadpole Collective - Kevin Cristiano; Wikimedia
854 Foundation - Eileen McNaughton
855
856 Most authors also reviewed code for this release; in addition, the following
857 reviewers contributed their comments:
858
859 AGH Strategies - Alice Frumin; Agileware - Francis Whittle, Pengyi Zhang;
860 don-alejandro-z; Fuzion - Jitendra Purohit; iXiam - Luciano Spiegel; JMA
861 Consulting - Joe Murray; Nicol Wistreich; Semper IT - Karin Gerritsen; Squiffle
862 Consulting - Aidan Saunders;
863
864 ## <a name="feedback"></a>Feedback
865
866 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
867 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
868 and contact `@agh1`.