5.16.0 release notes - late changes (#14973)
[civicrm-core.git] / release-notes / 5.16.0.md
1 # CiviCRM 5.16.0
2
3 Released August 7, 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? | no |
18 | Alter the API? | **yes** |
19 | Require attention to configuration options? | **yes** |
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 - **Allow extensions to define CSS themes / Add a configuration setting for when
29 to load custom CSS
30 ([CRM-18792](https://issues.civicrm.org/jira/browse/CRM-18792) /
31 [dev/core#378](https://lab.civicrm.org/dev/core/issues/378):
32 [14551](https://github.com/civicrm/civicrm-core/pull/14551) and
33 [12929](https://github.com/civicrm/civicrm-core/pull/12929))**
34
35 Adds an option to the "Display Preferences" settings form to allow users to
36 more finely tune when CiviCRM's css is loaded. On WordPress and Joomla two
37 options are available the "Backend Theme" and "Frontend Theme", on Drupal and
38 Backdrop, the administration screen "Display Preferences" presents a singular
39 "Theme" option.
40
41 - **Clean up use of DAO::nullArray
42 ([dev/core#1047](https://lab.civicrm.org/dev/core/issues/1047):
43 [14556](https://github.com/civicrm/civicrm-core/pull/14556),
44 [14555](https://github.com/civicrm/civicrm-core/pull/14555) and
45 [14550](https://github.com/civicrm/civicrm-core/pull/14550))**
46
47 Improves code stability by removing the unnecessary function
48 `CRM_Core_DAO::_nullArray`.
49
50 - **Consolidate handling of conflicts between the batch job and get_conflicts
51 api ([14685](https://github.com/civicrm/civicrm-core/pull/14685))**
52
53 Improves code consistency by ensuring that merge conflicts are stored during
54 batch_merge to the prev_next cache with the same format as when the api calls
55 get_conflicts, the code doing this wrangling is moved from the api to the BAO
56 layer.
57
58 - **Better support for hookable menubar colors
59 ([14944](https://github.com/civicrm/civicrm-core/pull/14944))**
60
61 More colors in the menu, including the base color, highlight color, and text
62 color, can be modified with hooks.
63
64 - **Add csv reader package
65 ([14524](https://github.com/civicrm/civicrm-core/pull/14524))**
66
67 Adds the CSV processing utility, league/csv ^9.2 which will help with future
68 PRs which introduce more test-coverage for CSV outputs and help cleanup some
69 of the csv code down the way.
70
71 - **Improve protected field metadata
72 ([14679](https://github.com/civicrm/civicrm-core/pull/14679))**
73
74 Adds more robust metadata to fields protected by permissions in a format that
75 can be directly passed into `CRM_Core_Permissions::check()`.
76
77 - **Move api_key read/write permission checks from api to BAO
78 ([14660](https://github.com/civicrm/civicrm-core/pull/14660))**
79
80 Moves the logic for checking the api_key field permissions from the api layer
81 to the BAO layer so it can be reused by api4 and other things.
82
83 - **Add a configuration setting for when to load custom CSS (initial work for
84 [dev/core#378](https://lab.civicrm.org/dev/core/issues/378):
85 [14876](https://github.com/civicrm/civicrm-core/pull/14876))**
86
87 A new function, `CRM_Utils_System::isFrontEndPage()`, indicates whether a page
88 is considered "front-end".
89
90 - **Permit sort_name as a url parameter on advanced search
91 ([14475](https://github.com/civicrm/civicrm-core/pull/14475) and
92 [14920](https://github.com/civicrm/civicrm-core/pull/14920))**
93
94 You can now set `sort_name=x` in the URL on the advanced search form. In
95 doing this, the sort name field is now defined through metadata rather than
96 *ad hoc*.
97
98 - **Menubar - Improve flexibility & remove hardcoded values
99 ([14924](https://github.com/civicrm/civicrm-core/pull/14924))**
100
101 The menu no longer relies on hardcoded pixel dimensions to determine mobile
102 appearance, and it replaces references to the ID selector `crm-container` with
103 the class selector of the same name (which is used more broadly).
104
105 This also resolves
106 [dev/core#1127](https://lab.civicrm.org/dev/core/issues/1127).
107
108 - **Handle relative start & end dates passed to datepicker widget
109 ([14632](https://github.com/civicrm/civicrm-core/pull/14632))**
110
111 Adds some client-side logic to the datepicker widget that was previously done
112 server-side. Paves the way for afform.
113
114 - **Improve utilities & tests for working with js notation
115 ([14588](https://github.com/civicrm/civicrm-core/pull/14588),
116 [14537](https://github.com/civicrm/civicrm-core/pull/14537) and
117 [14586](https://github.com/civicrm/civicrm-core/pull/14586))**
118
119 Removes dependence on an external library & improves robustness & accuracy of
120 reading/writing js notation. Adds a utility function for getting properties of
121 a Javascript option without parsing them. Adds a utility function and a
122 test for dealing with data in js notation.
123
124 - **i18n - Improve multilingual popup for text and wysiwyg fields
125 ([14578](https://github.com/civicrm/civicrm-core/pull/14578))**
126
127 Fixes copying of values between multilingual popup and main form for wysiwyg
128 fields and makes text fields larger in multilingual pop-up.
129
130 - **Buttons inconsistencies
131 ([dev/core#347](https://lab.civicrm.org/dev/core/issues/347):
132 [14136](https://github.com/civicrm/civicrm-core/pull/14136) and
133 [14509](https://github.com/civicrm/civicrm-core/pull/14509))**
134
135 Adds support for "button" elements in CiviCRM ajax popup forms in addition to
136 the input type=button/submit and the "a class=button". This is a first step
137 towards cleaning up button handling from a theming perspective. Adds
138 buttons to 'Cleanup caches and update paths' in standard way
139
140 - **Display description next to 'paperclip' file icon - usually the filename
141 ([14501](https://github.com/civicrm/civicrm-core/pull/14501))**
142
143 When viewing custom files displays the description (usually the filename) next
144 to the paperclip.
145
146 - **Address BAO - Handle standard 'custom' param as well as individual fields
147 ([14535](https://github.com/civicrm/civicrm-core/pull/14535))**
148
149 Ensures that the Address BAO can handle both raw unformatted custom field
150 input and processed custom field inputs.
151
152 - **Update PSR16 handling for multisite extension legacy caching group
153 ([14505](https://github.com/civicrm/civicrm-core/pull/14505))**
154
155 Only use a Legacy group if using a version of org.civicrm.multisite 2.6 or
156 below.
157
158 - **Improve I18n schema by including comments and default and NOT NULL or NULL
159 statements to be more consistent with non lingual schema
160 ([14484](https://github.com/civicrm/civicrm-core/pull/14484))**
161
162 Adds more information to the I18n schema structure so that when the
163 translated schema is created it is more similar to the non multilingual schema.
164
165 - **Add a couple customField pseudoconstants
166 ([14494](https://github.com/civicrm/civicrm-core/pull/14494))**
167
168 Adds a couple missing option lists to the schema so that they show up in the
169 api explorer for the CustomField entity.
170
171 - **Deprecate ARCHIVE format for CiviCRM Database Logging (continues work for
172 [dev/core#663](https://lab.civicrm.org/dev/core/issues/663):
173 [14256](https://github.com/civicrm/civicrm-core/pull/14256))**
174
175 Switches to using InnoDB for extended log tables instead of the ARCHIVE
176 format.
177
178 - **ActivityForm - Redirect to contact page or activity view in standalone mode
179 ([14522](https://github.com/civicrm/civicrm-core/pull/14522))**
180
181 When using the "standalone" New Activity form, moves from always redirecting
182 to the dashboard after saving to redirecting to the contact page (if 1
183 contact) and the activity view screen (if multiple).
184
185 ### CiviEvent
186
187 - **URL support for some params in event search
188 ([14477](https://github.com/civicrm/civicrm-core/pull/14477))**
189
190 Adds Event Search URL support for the params: sort_name, participant_status_id,
191 participant_register_date_low, participant_register_date_high, and
192 participant_register_date_relative. Date format is a string of numbers YmdHIS
193 (ex: 20180101).
194
195 - **Add checklist-model angular module
196 ([14634](https://github.com/civicrm/civicrm-core/pull/14634))**
197
198 Adds the angular `checklist-model` library required by form builder.
199
200 ### CiviContribute
201
202 - **Reduce deadlocks on inserting custom data by only using 'ON DUPLICATE' when
203 it is not a new row
204 ([14605](https://github.com/civicrm/civicrm-core/pull/14605))**
205
206 Reduce deadlocks when processing contributions with custom data. This
207 specifically makes the custom data insert SQL more efficient.
208
209 - **Fix url support for receive_date_high & receive_date_low
210 ([14594](https://github.com/civicrm/civicrm-core/pull/14594) and
211 [14611](https://github.com/civicrm/civicrm-core/pull/14611))**
212
213 As a part of a general standardization movement, adds Url support on the
214 contribution search form for the following fields: receive_date_high,
215 receive_date_low, contribution_cancel_date_high, contribution_cancel_date_low
216 and invoice_number=9. Deprecates and continues to support the start date being
217 passed to contribution search as "start=2018-01-01".
218
219 - **Deprecate contribution_date as a parameter
220 ([14533](https://github.com/civicrm/civicrm-core/pull/14533))**
221
222 Add deprecation notice for accessing old field name for receive_date in query
223 object.
224
225 - **Create payment activity when creating a payment via the api, test
226 ([14452](https://github.com/civicrm/civicrm-core/pull/14452))**
227
228 Ensures when creating a payment via the api a payment activity is created.
229
230 ### CiviMembership
231
232 - **Expose Primary member only/Non primary member only filter in membership
233 reports. ([14530](https://github.com/civicrm/civicrm-core/pull/14530) and
234 [14507](https://github.com/civicrm/civicrm-core/pull/14507))**
235
236 On Membership Reports filters tabs, cleans up Membership Owner ID options.
237
238 - **Update Owner Membership ID label in reports to be Primary Membership to be
239 more consistent with rest of system
240 ([14585](https://github.com/civicrm/civicrm-core/pull/14585))**
241
242 Changes the label of the Owner Membership ID in reports from "Membership Owner
243 ID" to "Primary Membership".
244
245 ## <a name="bugs"></a>Bugs resolved
246
247 ### Core CiviCRM
248
249 - **submitOnce revisited
250 ([dev/core#914](https://lab.civicrm.org/dev/core/issues/914):
251 [14519](https://github.com/civicrm/civicrm-core/pull/14519))**
252
253 Ensures "SubmitOnce" functionality works with forms with multiple buttons.
254
255 - **[regression] `cv` fails on CiviCRM 5.15.0
256 ([dev/drupal#75](https://lab.civicrm.org/dev/drupal/issues/75):
257 [14775](https://github.com/civicrm/civicrm-core/pull/14775))**
258
259 This fixes the return value of `CRM_Utils_System_Drupal8::languageNegotiationURL()`
260
261 - **Errors exporting contributions on 5.13.2 (continues work for
262 [dev/core#1015](https://lab.civicrm.org/dev/core/issues/1015):
263 [14513](https://github.com/civicrm/civicrm-core/pull/14513))**
264
265 Applies a more robust fix to a bug exporting soft credits in 5.13.2.
266
267 - **Email created without location when syncing from CMS account
268 ([dev/core#1026](https://lab.civicrm.org/dev/core/issues/1026):
269 [14489](https://github.com/civicrm/civicrm-core/pull/14489))**
270
271 Adds a default for `location_type_id` in the API Email.create in order to
272 address a bug where Emails were being created without a location type when
273 syncing from a CMS account.
274
275 - **$this->_selectedTables is not populated incase of boleen filters
276 ([14503](https://github.com/civicrm/civicrm-core/pull/14503))**
277
278 Fixes a bug where when a report was filtered on a boolean field with option No
279 then `$this->_selectedTables` was not being populated so that it is populated.
280
281 - **Block classes in unserialize field for IDE cheer
282 ([14683](https://github.com/civicrm/civicrm-core/pull/14683))**
283
284 Ensures unserialize does not permit class unserialization.
285
286 - **Support api3 & 4 language syntax & improve test
287 ([14590](https://github.com/civicrm/civicrm-core/pull/14590))**
288
289 Fixes support for api3 "language" option and extends test coverage to the new
290 syntax as well as api v4.
291
292 - **Reset language at end of localized api call
293 ([14597](https://github.com/civicrm/civicrm-core/pull/14597))**
294
295 Restore the original language after changing it for an api call using
296 `options['language']`.
297
298 - **Activity formRule status check cleanup
299 ([14630](https://github.com/civicrm/civicrm-core/pull/14630))**
300
301 Fixes a bug where under some circumstances, the activity_type_id from fields
302 and from the getKey call can both return NULL, causing the formRule to raise
303 an error that one cannot record a scheduled SMS activity.
304
305 - **Add query object support for receive_date_high & receive_date_low and
306 generically date fields
307 ([14623](https://github.com/civicrm/civicrm-core/pull/14623))**
308
309 Ensures choosing from receive date in advanced search filters appropriately.
310
311 - **Fix setup.sh crash when using the -a flag
312 ([14595](https://github.com/civicrm/civicrm-core/pull/14595))**
313
314 Fixes an error where the command setup.sh -a dies with an error because it
315 doesn't know what database to load.
316
317 - **Fix duplicate households on 'Merge same household' exports
318 ([14443](https://github.com/civicrm/civicrm-core/pull/14443))**
319
320 Ensures "Merge same household" does not create duplicate rows for each
321 household, one for the "merged individuals" and one being the explicit
322 household directly exported.
323
324 - **Fix placeholder font in Quicksearch
325 ([14154](https://github.com/civicrm/civicrm-core/pull/14154))**
326
327 Make the Quicksearch font be the CiviCRM font instead of the "FontAwesome"
328 font.
329
330 - **CRM_Utils_SQL_ - Properly interpolate NULL values
331 ([14250](https://github.com/civicrm/civicrm-core/pull/14250))**
332
333 Ensures the classes `CRM_Utils_SQL_Select`, `CRM_Utils_SQL_Delete`, and
334 `CRM_Utils_SQL_Insert` properly handle NULL values.
335
336 - **Fix deletion of contact sub_type in api4
337 ([14492](https://github.com/civicrm/civicrm-core/pull/14492))**
338
339 Cleans up the contact BAO to not arbitrarily delete a contact's sub-type when
340 saving a contact using Api4.
341
342 - **Add in uniqueness to cache keys to mitigate clashes on multisite installs
343 ([14485](https://github.com/civicrm/civicrm-core/pull/14485))**
344
345 Ensures cache keys are unique to the specific domain.
346
347 - **Object id is always NULL in ore hook in update activity mode
348 ([14491](https://github.com/civicrm/civicrm-core/pull/14491))**
349
350 Ensures when using the pre hook with the Activity entity, the Activity id (i.e
351 the object id) is NOT NULL.
352
353 - **Scheduled jobs: replace outdated wiki link
354 ([14641](https://github.com/civicrm/civicrm-core/pull/14641))**
355
356 - **Make the contact summary details popup on merge screen non bold a la contact
357 summary screen ([dev/core#1039](https://lab.civicrm.org/dev/core/issues/1039):
358 [14506](https://github.com/civicrm/civicrm-core/pull/14506))**
359
360 - **When using custom fields for smart group criteria with relative dates the
361 group does not respect the relative date over time
362 ([dev/core#389](https://lab.civicrm.org/dev/core/issues/389):
363 [14625](https://github.com/civicrm/civicrm-core/pull/14625))**
364
365 - **Improper character encoding breaks xml processor
366 ([dev-core#1079](https://lab.civicrm.org/dev/core/issues/1079):
367 [14654](https://github.com/civicrm/civicrm-core/pull/14654))**
368
369 - **Php 7.2 notices fix on import
370 ([14531](https://github.com/civicrm/civicrm-core/pull/14531))**
371
372 - **Fix use of cached schema information in SchemaHandler
373 ([14568](https://github.com/civicrm/civicrm-core/pull/14568))**
374
375 - **Ensure that contact groups caches are cleared if memory backed
376 ([14607](https://github.com/civicrm/civicrm-core/pull/14607))**
377
378 - **Ensure recently converted groups cache matches previous behaviour by setting
379 `withArray` as fast for it
380 ([14789](https://github.com/civicrm/civicrm-core/pull/14789))**
381
382 - **Does CiviCRM make it possible to specify which directories are private and
383 which are public-accessible? (continues work for
384 [dev/cloud-native#3](https://lab.civicrm.org/dev/cloud-native/issues/3):
385 [14717](https://github.com/civicrm/civicrm-core/pull/14717))**
386
387 Removes an unused cache-driver for storing cache records in the file system
388 (under CIVICRM_TEMPLATE_COMPILEDIR, using PHP serialize() format).
389
390 ### CiviCampaign
391
392 - **CiviCRM Campaign, the Revenue Goal field stores 0 if $5,000 or any other
393 non-numeric value is entered
394 ([dev/core#1067](https://lab.civicrm.org/dev/core/issues/1067):
395 [14601](https://github.com/civicrm/civicrm-core/pull/14601))**
396
397 ### CiviCase
398
399 - **Make a_b relationships available as case roles
400 ([dev/core#530](https://lab.civicrm.org/dev/core/issues/530):
401 [13916](https://github.com/civicrm/civicrm-core/pull/13916))**
402
403 This change makes it so users can select b_a relationships AND a_b
404 relationships when creating case roles, before this change only b_a
405 relationships were available when creating case roles.
406
407 - **Too many divs in caseTypeDetails.html
408 ([dev/core#1086](https://lab.civicrm.org/dev/core/issues/1086):
409 [14682](https://github.com/civicrm/civicrm-core/pull/14682))**
410
411 - **Send copy of case activity is using the contribution receipt template -
412 actually all message templates seem to be mixed up (Test for
413 [dev/core#1082](https://lab.civicrm.org/dev/core/issues/1082):
414 [14666](https://github.com/civicrm/civicrm-core/pull/14666))**
415
416 ### CiviContribute
417
418 - **Add default receive_date for contributions at BAO level
419 ([14460](https://github.com/civicrm/civicrm-core/pull/14460))**
420
421 This change ensures one cannot create contributions with no receive date using
422 the API.
423
424 - **Fix A.net to resolve time when using default
425 ([14540](https://github.com/civicrm/civicrm-core/pull/14540))**
426
427 Fixes failure to resolve date in authorize.net - this is likely a test-only
428 bug.
429
430 - **Fixed visibility logic on Price field options.
431 ([13966](https://github.com/civicrm/civicrm-core/pull/13966))**
432
433 Ensure that when adding price options to a price field with some public
434 options and some private options the new options are considered when
435 validating that there is an admin option.
436
437 - **Support storing IPNs in `civicrm_system_log` for processors that send JSON
438 data ([dev/financial#55](https://lab.civicrm.org/dev/financial/issues/55):
439 [14290](https://github.com/civicrm/civicrm-core/pull/14290))**
440
441 Ensures Stripe can log to the `civicrm_system_log`.
442
443 - **Grab contribution status id from database
444 ([14713](https://github.com/civicrm/civicrm-core/pull/14713) and
445 [14704](https://github.com/civicrm/civicrm-core/pull/14704))**
446
447 Replaces hard coded Contribution Status Id with a pseudoconstant.
448
449 - **Error in civicrm/payment/edit "Expected one FinancialTrxn but found 25
450 ([dev/core#965](https://lab.civicrm.org/dev/core/issues/965):
451 [14518](https://github.com/civicrm/civicrm-core/pull/14518))**
452
453 Fixes a bug where when ajax popup forms are disabled submitting the payment
454 edit form results in a fatal error "Expected one FinancialTrxn but found 25".
455
456 - **New contribution may overwrite other contribution if it's opened in other
457 tab ([dev/financial#50](https://lab.civicrm.org/dev/financial/issues/50):
458 [14244](https://github.com/civicrm/civicrm-core/pull/14244))**
459
460 - **Refund throws a fatal error if the main contribution amount is
461 0. ([dev/core#889](https://lab.civicrm.org/dev/core/issues/889):
462 [14488](https://github.com/civicrm/civicrm-core/pull/14488) and
463 [14103](https://github.com/civicrm/civicrm-core/pull/14103))**
464
465 - **Event Confirmation and ThankYou forms show tax rate with ALL the decimal
466 places. ([dev/core#1049](https://lab.civicrm.org/dev/core/issues/1049):
467 [14562](https://github.com/civicrm/civicrm-core/pull/14562))**
468
469 - **Deprecation notice on Find Contributions when get there from Manage
470 Contribution Pages
471 ([dev/core#1059](https://lab.civicrm.org/dev/core/issues/1059):
472 [14624](https://github.com/civicrm/civicrm-core/pull/14624) and
473 [14613](https://github.com/civicrm/civicrm-core/pull/14613))**
474
475 - **Fix refund payment not recording from additional payment form
476 ([14733](https://github.com/civicrm/civicrm-core/pull/14733))**
477
478 - **contribution detail report: error when sorting by custom contrib field (DB
479 Error: no such field)
480 ([dev/core#1081](https://lab.civicrm.org/dev/core/issues/1081):
481 [14746](https://github.com/civicrm/civicrm-core/pull/14746))**
482
483 - **Fix notice on editing contribution
484 ([14626](https://github.com/civicrm/civicrm-core/pull/14626))**
485
486 - **Ensure that completed status is selected by default on search contribution
487 form ([14612](https://github.com/civicrm/civicrm-core/pull/14612))**
488
489 - **Fix unreleased regression - fatal on financial account screen
490 ([14900](https://github.com/civicrm/civicrm-core/pull/14900))**
491
492 ### CiviEvent
493
494 - **When creating a new event using a template the new event screen is taking
495 the default values directly from the custom fields, and not from what's saved
496 in the event template.
497 ([dev/core#553](https://lab.civicrm.org/dev/core/issues/553) /
498 [CRM-18570](https://issues.civicrm.org/jira/browse/CRM-18570):
499 [14480](https://github.com/civicrm/civicrm-core/pull/14480))**
500
501 - **Display bug for Checkboxes Custom field on Event Confirm / Thank you pages
502 ([dev/core#1058](https://lab.civicrm.org/dev/core/issues/1058):
503 [14587](https://github.com/civicrm/civicrm-core/pull/14587))**
504
505 - **Fix incorrect display of Line Items created via API when printing invoice
506 (for Participants)
507 ([13477](https://github.com/civicrm/civicrm-core/pull/13477))**
508
509 - **Add a helper function to ensure we always set the correct tab for manage
510 events ([14602](https://github.com/civicrm/civicrm-core/pull/14602))**
511
512 - **Removed hardcoded value for registered participant status
513 ([14569](https://github.com/civicrm/civicrm-core/pull/14569))**
514
515 ### CiviMail
516
517 - **Hashed mailing URLs do not work with view mailing links
518 ([dev/core#1037](https://lab.civicrm.org/dev/core/issues/1037):
519 [14508](https://github.com/civicrm/civicrm-core/pull/14508) and
520 [14722](https://github.com/civicrm/civicrm-core/pull/14722))**
521
522 ### Drupal Integration
523
524 - **Drupal8: CiviCRM menu does not use the correct locale (continues work for
525 [dev/drupal#21](https://lab.civicrm.org/dev/drupal/issues/21):
526 [14474](https://github.com/civicrm/civicrm-core/pull/14474))**
527
528 Ensures CiviCRM menu is translated appropriately on Drupal 8 sites using the
529 locale module and CiviCRM in multilingual mode.
530
531 - **Drupal8: drupal_set_message is deprecated (or: Event Cart messages display
532 HTML) ([dev/drupal#63](https://lab.civicrm.org/dev/drupal/issues/63):
533 [13959](https://github.com/civicrm/civicrm-core/pull/13959))**
534
535 Fixes a bug where when using CiviCRM Event Cart in Drupal8, some status
536 messages were being displayed as HTML to the user.
537
538 ### Joomla Integration
539
540 - **Upgrade to 5.14 fails on updating case views
541 ([dev/joomla#13](https://lab.civicrm.org/dev/joomla/issues/13):
542 [14707](https://github.com/civicrm/civicrm-core/pull/14707),
543 [14708](https://github.com/civicrm/civicrm-core/pull/14708),
544 [14709](https://github.com/civicrm/civicrm-core/pull/14709),
545 [14710](https://github.com/civicrm/civicrm-core/pull/14710) and
546 [14702](https://github.com/civicrm/civicrm-core/pull/14702))**
547
548 - **CiviDist fails on BSD flavor of 'cp' with '-r -p' switch to '-R -p'
549 ([14523](https://github.com/civicrm/civicrm-core/pull/14523))**
550
551 Ensures cividist does not fail for joomla-alt on MacOSX.
552
553 ### Wordpress Integration
554
555 - **Recreate rewrite rules when basepage setting is updated
556 ([157](https://github.com/civicrm/civicrm-wordpress/pull/157))**
557
558 Ensures rewrite rules are flushed when saving the WordPress Base Page setting
559 in CiviCRM.
560
561 - **Implement "document_title_parts" filter to apply CiviCRM title on basepage
562 ([158](https://github.com/civicrm/civicrm-wordpress/pull/158))**
563
564 Ensures when Clean URLs are not implemented, the `<title>` element is
565 correctly set on the civicrm base page.
566
567 ## <a name="misc"></a>Miscellany
568
569 - **Revert "[REF] use generic loadStandardSearchOptionsFromUrl". Fix search
570 selections. ([14918](https://github.com/civicrm/civicrm-core/pull/14918))**
571
572 - **Remove duplicated code in contribution recur search build function
573 ([14504](https://github.com/civicrm/civicrm-core/pull/14504))**
574
575 - **Civi\Angular\ChangeSet - Relax debug-mode consistency check
576 ([14510](https://github.com/civicrm/civicrm-core/pull/14510))**
577
578 - **Alter PSR16 code to take into account of new entitysetting release with
579 upgraded caching
580 ([14559](https://github.com/civicrm/civicrm-core/pull/14559))**
581
582 - **Remove handling for legacy PrevNextCache group as it has now been converted
583 ([14584](https://github.com/civicrm/civicrm-core/pull/14584),
584 [14631](https://github.com/civicrm/civicrm-core/pull/14631) and
585 [14580](https://github.com/civicrm/civicrm-core/pull/14580))**
586
587 - **[Form cleanup] remove form classes & tpls for Event Component settings &
588 Multisite ([14425](https://github.com/civicrm/civicrm-core/pull/14425))**
589
590 - **Add WP-oriented E2E test suite, with HookTest as an example
591 ([159](https://github.com/civicrm/civicrm-wordpress/pull/159))**
592
593 - **Decommission recordPartialPayment function
594 ([14599](https://github.com/civicrm/civicrm-core/pull/14599))**
595
596 - **Fix erroneous variable passed to callAPISuccessGetValue
597 ([14688](https://github.com/civicrm/civicrm-core/pull/14688))**
598
599 - **Deprecate some deprecated address functions: defaultCurrencySymbol
600 ([14687](https://github.com/civicrm/civicrm-core/pull/14687))**
601
602 - **Extract code converting a date object to local timezone object to own
603 function ([14723](https://github.com/civicrm/civicrm-core/pull/14723))**
604
605 - **Replace jcalendar instances with datepicker (continues work for
606 [dev/core#561](https://lab.civicrm.org/dev/core/issues/561):
607 [14593](https://github.com/civicrm/civicrm-core/pull/14593),
608 [14431](https://github.com/civicrm/civicrm-core/pull/14431) and
609 [14627](https://github.com/civicrm/civicrm-core/pull/14627))**
610
611 - **[REF] Remove more instances of _nullArray
612 ([14558](https://github.com/civicrm/civicrm-core/pull/14558))**
613
614 - **[REF] transform the setting of defaults in CustomField::create to be like
615 (some) other entities
616 ([14671](https://github.com/civicrm/civicrm-core/pull/14671))**
617
618 - **[NFC] Fix Test function delcaration to match change in CiviUnitTestCa…
619 ([14548](https://github.com/civicrm/civicrm-core/pull/14548))**
620
621 - **[NFC] Fix indenting in Misc Setting Template
622 ([14526](https://github.com/civicrm/civicrm-core/pull/14526))**
623
624 - **[NFC] code formatting
625 ([14606](https://github.com/civicrm/civicrm-core/pull/14606))**
626
627 - **[NFC][test] reformat jobTest class
628 ([14681](https://github.com/civicrm/civicrm-core/pull/14681))**
629
630 - **[NFC] test cleanup. Uses CRM_Core_Exceptions, properly outputs unfiltered
631 results ([14471](https://github.com/civicrm/civicrm-core/pull/14471))**
632
633 - **[NFC][test] reformat activity search test
634 ([14699](https://github.com/civicrm/civicrm-core/pull/14699))**
635
636 - **[NFC][test] code formatting only
637 ([14700](https://github.com/civicrm/civicrm-core/pull/14700))**
638
639 - **[NFC] formatting on test class cleanup
640 ([14649](https://github.com/civicrm/civicrm-core/pull/14649))**
641
642 - **NFC These pseudoconstant functions return array or string
643 ([14619](https://github.com/civicrm/civicrm-core/pull/14619))**
644
645 - **NFC Comments and formatting only
646 ([14497](https://github.com/civicrm/civicrm-core/pull/14497))**
647
648 - **NFC Cleanup comments on BAO event
649 ([14603](https://github.com/civicrm/civicrm-core/pull/14603))**
650
651 - **[TEST] add assert to ensure nullArray & nullObject are not contaminated
652 ([14543](https://github.com/civicrm/civicrm-core/pull/14543))**
653
654 - **[TEST] Update Email Common Test to incorporate testing for the fix fo…
655 ([14629](https://github.com/civicrm/civicrm-core/pull/14629))**
656
657 - **[TEST] Fix intermittent test fail on NULL array getting contaminated
658 ([14542](https://github.com/civicrm/civicrm-core/pull/14542))**
659
660 - **[Test] Add in unit test attempting to demonstrate issue caused by dev…
661 ([14637](https://github.com/civicrm/civicrm-core/pull/14637))**
662
663 - **[test] Call parent tearDown more consistently
664 ([14552](https://github.com/civicrm/civicrm-core/pull/14552))**
665
666 - **[test] convert export test to handle exception rather than early return
667 ([14608](https://github.com/civicrm/civicrm-core/pull/14608))**
668
669 - **[test] truncate pledge block when cleaning up financial entities
670 ([14538](https://github.com/civicrm/civicrm-core/pull/14538))**
671
672 - **Fix failing test by changing expected date format
673 ([14686](https://github.com/civicrm/civicrm-core/pull/14686))**
674
675 - **Fix proportional test to test Payment.create & for the test to make more
676 sense ([14436](https://github.com/civicrm/civicrm-core/pull/14436))**
677
678 - **Fix test which fails when run in isolation.
679 ([14517](https://github.com/civicrm/civicrm-core/pull/14517))**
680
681 - **[REF] do not receive by reference in CustomField::create
682 ([14670](https://github.com/civicrm/civicrm-core/pull/14670))**
683
684 - **[REF] extract createOptionValue function in CustomField::create
685 ([14652](https://github.com/civicrm/civicrm-core/pull/14652))**
686
687 - **[REF] remove instances of pass-by-reference where no change takes place
688 ([14693](https://github.com/civicrm/civicrm-core/pull/14693))**
689
690 - **[REF] extract prepareCreate from CustomField.create
691 ([14689](https://github.com/civicrm/civicrm-core/pull/14689))**
692
693 - **[REF] Minor code cleanup on string concatenation
694 ([14444](https://github.com/civicrm/civicrm-core/pull/14444))**
695
696 - **[REF] Move sort_name definition to searchFieldMetadata
697 ([14478](https://github.com/civicrm/civicrm-core/pull/14478))**
698
699 - **[REF] Copy assignProportional Line items back into Payment.create function
700 ([14622](https://github.com/civicrm/civicrm-core/pull/14622))**
701
702 - **[REF] minor code cleanup - move indexExist calculation to the only place in
703 the code that needs it
704 ([14650](https://github.com/civicrm/civicrm-core/pull/14650))**
705
706 - **[REF] Remove columnName field
707 ([14651](https://github.com/civicrm/civicrm-core/pull/14651))**
708
709 - **[REF + test] extract buildFieldChangeSql and add unit test
710 ([14653](https://github.com/civicrm/civicrm-core/pull/14653))**
711
712 - **[REF] CRM_Case_BAO_Case::addcaseActivityLinks to CRM_Case_Selector_Search
713 ([14512](https://github.com/civicrm/civicrm-core/pull/14512))**
714
715 - **[REF] dev/core#561 Convert Contribution Date field to use date picker…
716 ([14486](https://github.com/civicrm/civicrm-core/pull/14486))**
717
718 - **[REF] do not pass by reference to store & create functions
719 ([14598](https://github.com/civicrm/civicrm-core/pull/14598))**
720
721 - **[REF] Add in utility function for resetting ACL and System Level Caches
722 ([14600](https://github.com/civicrm/civicrm-core/pull/14600))**
723
724 - **REF Extract getDefaultRoleID for add participant
725 ([14499](https://github.com/civicrm/civicrm-core/pull/14499))**
726
727 - **REF Deduplicate recaptcha handling code
728 ([14500](https://github.com/civicrm/civicrm-core/pull/14500))**
729
730 - **REF Extract override default currency function
731 ([14496](https://github.com/civicrm/civicrm-core/pull/14496))**
732
733 - **REF: Extract preProcess paypalexpress
734 ([14498](https://github.com/civicrm/civicrm-core/pull/14498))**
735
736 - **Remove more uses of CRM_Core_DAO::$_nullArray that are unncessary
737 ([14564](https://github.com/civicrm/civicrm-core/pull/14564))**
738
739 - **Remove unncessary $_nullArray usage when calling createProfileContact
740 function ([14560](https://github.com/civicrm/civicrm-core/pull/14560))**
741
742 - **Remove unneeded use of CRM_Core_DAO::$_nullArray in executeQuery or s…
743 ([14561](https://github.com/civicrm/civicrm-core/pull/14561))**
744
745 - **Remove more free calls
746 ([14493](https://github.com/civicrm/civicrm-core/pull/14493))**
747
748 - **Remove a few places where pass by reference is used but does not need to be
749 ([14643](https://github.com/civicrm/civicrm-core/pull/14643))**
750
751 - **Remove failing assertion
752 ([14695](https://github.com/civicrm/civicrm-core/pull/14695))**
753
754 - **Removing unused spec function
755 ([14646](https://github.com/civicrm/civicrm-core/pull/14646))**
756
757 - **Remove superfluous pass-by-ref in api3
758 ([14645](https://github.com/civicrm/civicrm-core/pull/14645))**
759
760 - **Add in Andrei Mondoc(mecachisenros) to contributor key
761 ([14665](https://github.com/civicrm/civicrm-core/pull/14665))**
762
763 - **Adding myself to the contributors file
764 ([14532](https://github.com/civicrm/civicrm-core/pull/14532))**
765
766 ## <a name="credits"></a>Credits
767
768 This release was developed by the following code authors:
769
770 AGH Strategies - Alice Frumin, Andrew Hunt, Eli Lisseck; Agileware - Alok Patel,
771 Francis Whittle; Andrei Mondoc; Australian Greens - Seamus Lee; Christian Wach;
772 CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC -
773 Mathieu Lutfy, Samuel Vanhove; Dave D; Electronic Frontier Foundation - Mark
774 Burdett; Fuzion - Jitendra Purohit; Greenpeace CEE - Patrick Figel; iXiam -
775 César Ramos; JMA Consulting - Monish Deb; John Kingsnorth; Megaphone Technology
776 Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Nicol Wistreich;
777 Pradeep Nayak; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin
778 Cristiano; Wikimedia Foundation - Eileen McNaughton
779
780 Most authors also reviewed code for this release; in addition, the following
781 reviewers contributed their comments:
782
783 Agileware - Justin Freeman; CiviCoop - Jaap Jansma; CiviDesk - Sunil Pawar;
784 Fuzion - Luke Stewart; JMA Consulting - Joe Murray; Korlon - Stuart Gaston;
785 Lighthouse Design and Consulting - Brian Shaughnessy; National Urban League -
786 Lisa Taliano; Palante Technology Cooperative - Morgan Robinson; Semper IT -
787 Karin Gerritsen; Tech To The People - Xavier Dutoit
788
789 ## <a name="feedback"></a>Feedback
790
791 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
792 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
793 and contact `@agh1`.