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