# CiviCRM 5.16.0
-In-progress, based upon commit 55086d4c32123382ce471afd2527469873120129
-
Released August 7, 2019
- **[Synopsis](#synopsis)**
| *Does this version...?* | |
|:--------------------------------------------------------------- |:-------:|
-| Fix security vulnerabilities? | |
-| Change the database schema? | |
-| Alter the API? | |
-| Require attention to configuration options? | |
-| Fix problems installing or upgrading to a previous version? | |
-| Introduce features? | |
-| Fix bugs? | |
+| Fix security vulnerabilities? | no |
+| Change the database schema? | no |
+| Alter the API? | **yes** |
+| Require attention to configuration options? | **yes** |
+| Fix problems installing or upgrading to a previous version? | **yes** |
+| Introduce features? | **yes** |
+| Fix bugs? | **yes** |
## <a name="features"></a>Features
### Core CiviCRM
-- **[CRM-18792](https://issues.civicrm.org/jira/browse/CRM-18792) ([14551](https://github.com/civicrm/civicrm-core/pull/14551) and [12929](https://github.com/civicrm/civicrm-core/pull/12929))**
+- **Allow extensions to define CSS themes / Add a configuration setting for when
+ to load custom CSS
+ ([CRM-18792](https://issues.civicrm.org/jira/browse/CRM-18792) /
+ [dev/core#378](https://lab.civicrm.org/dev/core/issues/378):
+ [14551](https://github.com/civicrm/civicrm-core/pull/14551) and
+ [12929](https://github.com/civicrm/civicrm-core/pull/12929))**
-## <a name="bugs"></a>Bugs resolved
+ Adds an option to the "Display Preferences" settings form to allow users to
+ more finely tune when CiviCRM's css is loaded. On WordPress and Joomla two
+ options are available the "Backend Theme" and "Frontend Theme", on Drupal and
+ Backdrop, the administration screen "Display Preferences" presents a singular
+ "Theme" option.
-### Core CiviCRM
+- **Clean up use of DAO::nullArray
+ ([dev/core#1047](https://lab.civicrm.org/dev/core/issues/1047):
+ [14556](https://github.com/civicrm/civicrm-core/pull/14556),
+ [14555](https://github.com/civicrm/civicrm-core/pull/14555) and
+ [14550](https://github.com/civicrm/civicrm-core/pull/14550))**
+
+ Improves code stability by removing the unnecessary function
+ `CRM_Core_DAO::_nullArray`.
+
+- **Consolidate handling of conflicts between the batch job and get_conflicts
+ api ([14685](https://github.com/civicrm/civicrm-core/pull/14685))**
+
+ Improves code consistency by ensuring that merge conflicts are stored during
+ batch_merge to the prev_next cache with the same format as when the api calls
+ get_conflicts, the code doing this wrangling is moved from the api to the BAO
+ layer.
-- **dev/drupal#75 Drupal8: fix call to languageNegotiationURL() when called from cv ([14775](https://github.com/civicrm/civicrm-core/pull/14775))**
+- **Better support for hookable menubar colors
+ ([14944](https://github.com/civicrm/civicrm-core/pull/14944))**
-- **dev/core#1081 fix for error on contribution detail when using custom data order by without select ([14746](https://github.com/civicrm/civicrm-core/pull/14746))**
+ More colors in the menu, including the base color, highlight color, and text
+ color, can be modified with hooks.
-- **dev/report#16 Unreleased regression - fee levels incorrectly show sol… ([14732](https://github.com/civicrm/civicrm-core/pull/14732))**
+- **Add csv reader package
+ ([14524](https://github.com/civicrm/civicrm-core/pull/14524))**
-- **Fix refund payment not recording from additional payment form ([14733](https://github.com/civicrm/civicrm-core/pull/14733))**
+ Adds the CSV processing utility, league/csv ^9.2 which will help with future
+ PRs which introduce more test-coverage for CSV outputs and help cleanup some
+ of the csv code down the way.
-- **Extract code converting a date object to local timezone object to own… ([14723](https://github.com/civicrm/civicrm-core/pull/14723))**
+- **Improve protected field metadata
+ ([14679](https://github.com/civicrm/civicrm-core/pull/14679))**
-- **(dev/cloud-native#3) SerializeCache - Remove unused, incomplete cache-driver ([14717](https://github.com/civicrm/civicrm-core/pull/14717))**
+ Adds more robust metadata to fields protected by permissions in a format that
+ can be directly passed into `CRM_Core_Permissions::check()`.
-- **5.15 to master ([14714](https://github.com/civicrm/civicrm-core/pull/14714))**
+- **Move api_key read/write permission checks from api to BAO
+ ([14660](https://github.com/civicrm/civicrm-core/pull/14660))**
-- **Grab contribution status id from database ([14713](https://github.com/civicrm/civicrm-core/pull/14713))**
+ Moves the logic for checking the api_key field permissions from the api layer
+ to the BAO layer so it can be reused by api4 and other things.
-- ** [test] convert export test to handle exception rather than early return ([14608](https://github.com/civicrm/civicrm-core/pull/14608))**
+- **Add a configuration setting for when to load custom CSS (initial work for
+ [dev/core#378](https://lab.civicrm.org/dev/core/issues/378):
+ [14876](https://github.com/civicrm/civicrm-core/pull/14876))**
-- **dev/joomla#13 - followup 2 - Some class names have wrong upper/lower case spelling ([14707](https://github.com/civicrm/civicrm-core/pull/14707))**
+ A new function, `CRM_Utils_System::isFrontEndPage()`, indicates whether a page
+ is considered "front-end".
-- **dev/joomla#13 - followup 3 - Some class names have wrong upper/lower case spelling ([14708](https://github.com/civicrm/civicrm-core/pull/14708))**
+- **Permit sort_name as a url parameter on advanced search
+ ([14475](https://github.com/civicrm/civicrm-core/pull/14475) and
+ [14920](https://github.com/civicrm/civicrm-core/pull/14920))**
-- **dev/joomla#13 - followup 4 - Some class names have wrong upper/lower case spelling ([14709](https://github.com/civicrm/civicrm-core/pull/14709))**
+ You can now set `sort_name=x` in the URL on the advanced search form. In
+ doing this, the sort name field is now defined through metadata rather than
+ *ad hoc*.
-- **dev/joomla#13 - followup 5 - Some class names have wrong upper/lower case spelling ([14710](https://github.com/civicrm/civicrm-core/pull/14710))**
+- **Menubar - Improve flexibility & remove hardcoded values
+ ([14924](https://github.com/civicrm/civicrm-core/pull/14924))**
-- **Grab contribution status id from database ([14704](https://github.com/civicrm/civicrm-core/pull/14704))**
+ The menu no longer relies on hardcoded pixel dimensions to determine mobile
+ appearance, and it replaces references to the ID selector `crm-container` with
+ the class selector of the same name (which is used more broadly).
-- **Consolidate handling of conflicts between the batch job and get_conflicts api ([14685](https://github.com/civicrm/civicrm-core/pull/14685))**
+ This also resolves
+ [dev/core#1127](https://lab.civicrm.org/dev/core/issues/1127).
-- **[REF] remove instances of pass-by-reference where no change takes place ([14693](https://github.com/civicrm/civicrm-core/pull/14693))**
+- **Handle relative start & end dates passed to datepicker widget
+ ([14632](https://github.com/civicrm/civicrm-core/pull/14632))**
-- **$this->_selectedTables is not populated incase of boleen filters ([14503](https://github.com/civicrm/civicrm-core/pull/14503))**
+ Adds some client-side logic to the datepicker widget that was previously done
+ server-side. Paves the way for afform.
-- **dev/joomla#13 - followup - Some class names have wrong upper/lower case spelling ([14702](https://github.com/civicrm/civicrm-core/pull/14702))**
+- **Improve utilities & tests for working with js notation
+ ([14588](https://github.com/civicrm/civicrm-core/pull/14588),
+ [14537](https://github.com/civicrm/civicrm-core/pull/14537) and
+ [14586](https://github.com/civicrm/civicrm-core/pull/14586))**
-- **[REF] extract prepareCreate from CustomField.create ([14689](https://github.com/civicrm/civicrm-core/pull/14689))**
+ Removes dependence on an external library & improves robustness & accuracy of
+ reading/writing js notation. Adds a utility function for getting properties of
+ a Javascript option without parsing them. Adds a utility function and a
+ test for dealing with data in js notation.
-- **[NFC][test] reformat activity search test ([14699](https://github.com/civicrm/civicrm-core/pull/14699))**
+- **i18n - Improve multilingual popup for text and wysiwyg fields
+ ([14578](https://github.com/civicrm/civicrm-core/pull/14578))**
-- **[NFC][test] code formatting only ([14700](https://github.com/civicrm/civicrm-core/pull/14700))**
+ Fixes copying of values between multilingual popup and main form for wysiwyg
+ fields and makes text fields larger in multilingual pop-up.
-- **Remove failing assertion ([14695](https://github.com/civicrm/civicrm-core/pull/14695))**
+- **Buttons inconsistencies
+ ([dev/core#347](https://lab.civicrm.org/dev/core/issues/347):
+ [14136](https://github.com/civicrm/civicrm-core/pull/14136) and
+ [14509](https://github.com/civicrm/civicrm-core/pull/14509))**
-- **5.15 to master ([14698](https://github.com/civicrm/civicrm-core/pull/14698))**
+ Adds support for "button" elements in CiviCRM ajax popup forms in addition to
+ the input type=button/submit and the "a class=button". This is a first step
+ towards cleaning up button handling from a theming perspective. Adds
+ buttons to 'Cleanup caches and update paths' in standard way
-- ** Fix erroneous variable passed to callAPISuccessGetValue ([14688](https://github.com/civicrm/civicrm-core/pull/14688))**
+- **Display description next to 'paperclip' file icon - usually the filename
+ ([14501](https://github.com/civicrm/civicrm-core/pull/14501))**
-- **[REF] transform the setting of defaults in CustomField::create to be like (some) other entities ([14671](https://github.com/civicrm/civicrm-core/pull/14671))**
+ When viewing custom files displays the description (usually the filename) next
+ to the paperclip.
-- **Deprecate some deprecated address functions: defaultCurrencySymbol ([14687](https://github.com/civicrm/civicrm-core/pull/14687))**
+- **Address BAO - Handle standard 'custom' param as well as individual fields
+ ([14535](https://github.com/civicrm/civicrm-core/pull/14535))**
-- **dev/financial#50 - Fix contributions and participants getting overwritten ([14244](https://github.com/civicrm/civicrm-core/pull/14244))**
+ Ensures that the Address BAO can handle both raw unformatted custom field
+ input and processed custom field inputs.
-- **Fixing the display of checkboxes in event confirm / thank you (dev/core#1058) ([14587](https://github.com/civicrm/civicrm-core/pull/14587))**
+- **Update PSR16 handling for multisite extension legacy caching group
+ ([14505](https://github.com/civicrm/civicrm-core/pull/14505))**
-- **Fix failing test by changing expected date format ([14686](https://github.com/civicrm/civicrm-core/pull/14686))**
+ Only use a Legacy group if using a version of org.civicrm.multisite 2.6 or
+ below.
-- **dev-core#1079: Improper character encoding breaks xml processor ([14654](https://github.com/civicrm/civicrm-core/pull/14654))**
+- **Improve I18n schema by including comments and default and NOT NULL or NULL
+ statements to be more consistent with non lingual schema
+ ([14484](https://github.com/civicrm/civicrm-core/pull/14484))**
-- **dev/core#1086 - Mismatched div and /div tags in caseTypeDetails.html ([14682](https://github.com/civicrm/civicrm-core/pull/14682))**
+ Adds more information to the I18n schema structure so that when the
+ translated schema is created it is more similar to the non multilingual schema.
-- **Block classes in unserialize field for IDE cheer ([14683](https://github.com/civicrm/civicrm-core/pull/14683))**
+- **Add a couple customField pseudoconstants
+ ([14494](https://github.com/civicrm/civicrm-core/pull/14494))**
-- **[NFC][test] reformat jobTest class ([14681](https://github.com/civicrm/civicrm-core/pull/14681))**
+ Adds a couple missing option lists to the schema so that they show up in the
+ api explorer for the CustomField entity.
-- **Improve protected field metadata ([14679](https://github.com/civicrm/civicrm-core/pull/14679))**
+- **Deprecate ARCHIVE format for CiviCRM Database Logging (continues work for
+ [dev/core#663](https://lab.civicrm.org/dev/core/issues/663):
+ [14256](https://github.com/civicrm/civicrm-core/pull/14256))**
-- **5.15 to master ([14677](https://github.com/civicrm/civicrm-core/pull/14677))**
+ Switches to using InnoDB for extended log tables instead of the ARCHIVE
+ format.
-- **[REF] do not receive by reference in CustomField::create ([14670](https://github.com/civicrm/civicrm-core/pull/14670))**
+- **ActivityForm - Redirect to contact page or activity view in standalone mode
+ ([14522](https://github.com/civicrm/civicrm-core/pull/14522))**
-- **URL support for some params in event search ([14477](https://github.com/civicrm/civicrm-core/pull/14477))**
+ When using the "standalone" New Activity form, moves from always redirecting
+ to the dashboard after saving to redirecting to the contact page (if 1
+ contact) and the activity view screen (if multiple).
-- **dev/core#389 Fix custom data relative date searching ([14625](https://github.com/civicrm/civicrm-core/pull/14625))**
+### CiviEvent
-- **5.15 ([14669](https://github.com/civicrm/civicrm-core/pull/14669))**
+- **URL support for some params in event search
+ ([14477](https://github.com/civicrm/civicrm-core/pull/14477))**
-- **dev/core#663 - Use InnoDB engine for extended log tables ([14256](https://github.com/civicrm/civicrm-core/pull/14256))**
+ Adds Event Search URL support for the params: sort_name, participant_status_id,
+ participant_register_date_low, participant_register_date_high, and
+ participant_register_date_relative. Date format is a string of numbers YmdHIS
+ (ex: 20180101).
-- **Add in Andrei Mondoc(mecachisenros) to contributor key ([14665](https://github.com/civicrm/civicrm-core/pull/14665))**
+- **Add checklist-model angular module
+ ([14634](https://github.com/civicrm/civicrm-core/pull/14634))**
-- **dev/core#1082 - test demonstrating message template mixup ([14666](https://github.com/civicrm/civicrm-core/pull/14666))**
+ Adds the angular `checklist-model` library required by form builder.
-- **Fix incorrect display of Line Items created via API when printing invoice (for Participants) ([13477](https://github.com/civicrm/civicrm-core/pull/13477))**
+### CiviContribute
-- **5.15 ([14664](https://github.com/civicrm/civicrm-core/pull/14664))**
+- **Reduce deadlocks on inserting custom data by only using 'ON DUPLICATE' when
+ it is not a new row
+ ([14605](https://github.com/civicrm/civicrm-core/pull/14605))**
-- ** Move api_key read/write permission checks from api to BAO ([14660](https://github.com/civicrm/civicrm-core/pull/14660))**
+ Reduce deadlocks when processing contributions with custom data. This
+ specifically makes the custom data insert SQL more efficient.
-- **[REF] Copy assignProportional Line items back into Payment.create function ([14622](https://github.com/civicrm/civicrm-core/pull/14622))**
+- **Fix url support for receive_date_high & receive_date_low
+ ([14594](https://github.com/civicrm/civicrm-core/pull/14594) and
+ [14611](https://github.com/civicrm/civicrm-core/pull/14611))**
-- **[REF] minor code cleanup - move indexExist calculation to the only place in the code that needs it ([14650](https://github.com/civicrm/civicrm-core/pull/14650))**
+ As a part of a general standardization movement, adds Url support on the
+ contribution search form for the following fields: receive_date_high,
+ receive_date_low, contribution_cancel_date_high, contribution_cancel_date_low
+ and invoice_number=9. Deprecates and continues to support the start date being
+ passed to contribution search as "start=2018-01-01".
-- **[REF] Remove columnName field ([14651](https://github.com/civicrm/civicrm-core/pull/14651))**
+- **Deprecate contribution_date as a parameter
+ ([14533](https://github.com/civicrm/civicrm-core/pull/14533))**
-- **Remove superfluous pass-by-ref in api3 ([14645](https://github.com/civicrm/civicrm-core/pull/14645))**
+ Add deprecation notice for accessing old field name for receive_date in query
+ object.
-- **[REF + test] extract buildFieldChangeSql and add unit test ([14653](https://github.com/civicrm/civicrm-core/pull/14653))**
+- **Create payment activity when creating a payment via the api, test
+ ([14452](https://github.com/civicrm/civicrm-core/pull/14452))**
-- **[Test] Add in unit test attempting to demonstrate issue caused by dev… ([14637](https://github.com/civicrm/civicrm-core/pull/14637))**
+ Ensures when creating a payment via the api a payment activity is created.
-- **[NFC] formatting on test class cleanup ([14649](https://github.com/civicrm/civicrm-core/pull/14649))**
+### CiviMembership
-- **[REF] extract createOptionValue function in CustomField::create ([14652](https://github.com/civicrm/civicrm-core/pull/14652))**
+- **Expose Primary member only/Non primary member only filter in membership
+ reports. ([14530](https://github.com/civicrm/civicrm-core/pull/14530) and
+ [14507](https://github.com/civicrm/civicrm-core/pull/14507))**
-- **Removing unused spec function ([14646](https://github.com/civicrm/civicrm-core/pull/14646))**
+ On Membership Reports filters tabs, cleans up Membership Owner ID options.
-- **Remove a few places where pass by reference is used but does not need to be ([14643](https://github.com/civicrm/civicrm-core/pull/14643))**
+- **Update Owner Membership ID label in reports to be Primary Membership to be
+ more consistent with rest of system
+ ([14585](https://github.com/civicrm/civicrm-core/pull/14585))**
-- **5.15 ([14642](https://github.com/civicrm/civicrm-core/pull/14642))**
+ Changes the label of the Owner Membership ID in reports from "Membership Owner
+ ID" to "Primary Membership".
-- **Scheduled jobs: replace outdated wiki link ([14641](https://github.com/civicrm/civicrm-core/pull/14641))**
+## <a name="bugs"></a>Bugs resolved
+
+### Core CiviCRM
-- **dev/core#1067 Clean Money before creating Campaign record and add test ([14601](https://github.com/civicrm/civicrm-core/pull/14601))**
+- **submitOnce revisited
+ ([dev/core#914](https://lab.civicrm.org/dev/core/issues/914):
+ [14519](https://github.com/civicrm/civicrm-core/pull/14519))**
-- **Fix notice on editing contribution ([14626](https://github.com/civicrm/civicrm-core/pull/14626))**
+ Ensures "SubmitOnce" functionality works with forms with multiple buttons.
-- **REF Extract getDefaultRoleID for add participant ([14499](https://github.com/civicrm/civicrm-core/pull/14499))**
+- **[regression] `cv` fails on CiviCRM 5.15.0
+ ([dev/drupal#75](https://lab.civicrm.org/dev/drupal/issues/75):
+ [14775](https://github.com/civicrm/civicrm-core/pull/14775))**
-- **Add checklist-model angular module ([14634](https://github.com/civicrm/civicrm-core/pull/14634))**
+ This fixes the return value of `CRM_Utils_System_Drupal8::languageNegotiationURL()`
-- **Partially revert "Update example dates from 2009 to current year" ([14636](https://github.com/civicrm/civicrm-core/pull/14636))**
+- **Errors exporting contributions on 5.13.2 (continues work for
+ [dev/core#1015](https://lab.civicrm.org/dev/core/issues/1015):
+ [14513](https://github.com/civicrm/civicrm-core/pull/14513))**
-- **Reset language at end of localized api call ([14597](https://github.com/civicrm/civicrm-core/pull/14597))**
+ Applies a more robust fix to a bug exporting soft credits in 5.13.2.
-- **5.15 to master ([14638](https://github.com/civicrm/civicrm-core/pull/14638))**
+- **Email created without location when syncing from CMS account
+ ([dev/core#1026](https://lab.civicrm.org/dev/core/issues/1026):
+ [14489](https://github.com/civicrm/civicrm-core/pull/14489))**
-- **dev/core#1059 Fix contribution search to work with url parameters in force mode ([14624](https://github.com/civicrm/civicrm-core/pull/14624))**
+ Adds a default for `location_type_id` in the API Email.create in order to
+ address a bug where Emails were being created without a location type when
+ syncing from a CMS account.
-- **Handle relative start & end dates passed to datepicker widget ([14632](https://github.com/civicrm/civicrm-core/pull/14632))**
+- **$this->_selectedTables is not populated incase of boleen filters
+ ([14503](https://github.com/civicrm/civicrm-core/pull/14503))**
-- **Update example dates from 2009 to current year ([14635](https://github.com/civicrm/civicrm-core/pull/14635))**
+ Fixes a bug where when a report was filtered on a boolean field with option No
+ then `$this->_selectedTables` was not being populated so that it is populated.
-- **Activity formRule status check cleanup ([14630](https://github.com/civicrm/civicrm-core/pull/14630))**
+- **Block classes in unserialize field for IDE cheer
+ ([14683](https://github.com/civicrm/civicrm-core/pull/14683))**
-- **Ensure that contact groups caches are cleared if memory backed ([14607](https://github.com/civicrm/civicrm-core/pull/14607))**
+ Ensures unserialize does not permit class unserialization.
-- **Remove handling for legacy PrevNextCache group as it has now been con… ([14631](https://github.com/civicrm/civicrm-core/pull/14631))**
+- **Support api3 & 4 language syntax & improve test
+ ([14590](https://github.com/civicrm/civicrm-core/pull/14590))**
-- **Follow up to receive_date convert to datepicker - update test ([14627](https://github.com/civicrm/civicrm-core/pull/14627))**
+ Fixes support for api3 "language" option and extends test coverage to the new
+ syntax as well as api v4.
-- **Improve utilities & tests for working with js notation ([14588](https://github.com/civicrm/civicrm-core/pull/14588))**
+- **Reset language at end of localized api call
+ ([14597](https://github.com/civicrm/civicrm-core/pull/14597))**
-- **[TEST] Update Email Common Test to incorporate testing for the fix fo… ([14629](https://github.com/civicrm/civicrm-core/pull/14629))**
+ Restore the original language after changing it for an api call using
+ `options['language']`.
-- **Add a helper function to ensure we always set the correct tab for manage events ([14602](https://github.com/civicrm/civicrm-core/pull/14602))**
+- **Activity formRule status check cleanup
+ ([14630](https://github.com/civicrm/civicrm-core/pull/14630))**
-- **Ensure that completed status is selected by default on search contrib… ([14612](https://github.com/civicrm/civicrm-core/pull/14612))**
+ Fixes a bug where under some circumstances, the activity_type_id from fields
+ and from the getKey call can both return NULL, causing the formRule to raise
+ an error that one cannot record a scheduled SMS activity.
-- **dev/core#1059 Replace deprecated start and end url params with receiv… ([14613](https://github.com/civicrm/civicrm-core/pull/14613))**
+- **Add query object support for receive_date_high & receive_date_low and
+ generically date fields
+ ([14623](https://github.com/civicrm/civicrm-core/pull/14623))**
-- **Follow up fix on start as a url parameter ([14611](https://github.com/civicrm/civicrm-core/pull/14611))**
+ Ensures choosing from receive date in advanced search filters appropriately.
-- **Reduce deadlocks on inserting custom data by only using 'ON DUPLICATE' when it is not a new row ([14605](https://github.com/civicrm/civicrm-core/pull/14605))**
+- **Fix setup.sh crash when using the -a flag
+ ([14595](https://github.com/civicrm/civicrm-core/pull/14595))**
-- **Add query object support for receive_date_high & receive_date_low and generically date fields ([14623](https://github.com/civicrm/civicrm-core/pull/14623))**
+ Fixes an error where the command setup.sh -a dies with an error because it
+ doesn't know what database to load.
-- **NFC These pseudoconstant functions return array or string ([14619](https://github.com/civicrm/civicrm-core/pull/14619))**
+- **Fix duplicate households on 'Merge same household' exports
+ ([14443](https://github.com/civicrm/civicrm-core/pull/14443))**
-- **[NFC] code formatting ([14606](https://github.com/civicrm/civicrm-core/pull/14606))**
+ Ensures "Merge same household" does not create duplicate rows for each
+ household, one for the "merged individuals" and one being the explicit
+ household directly exported.
-- **Fix url support for receive_date_high & receive_date_low ([14594](https://github.com/civicrm/civicrm-core/pull/14594))**
+- **Fix placeholder font in Quicksearch
+ ([14154](https://github.com/civicrm/civicrm-core/pull/14154))**
-- **Convert prevNextCache to standard Cache Defintiion format ([14580](https://github.com/civicrm/civicrm-core/pull/14580))**
+ Make the Quicksearch font be the CiviCRM font instead of the "FontAwesome"
+ font.
-- **[REF] Add in utility function for resetting ACL and System Level Caches ([14600](https://github.com/civicrm/civicrm-core/pull/14600))**
+- **CRM_Utils_SQL_ - Properly interpolate NULL values
+ ([14250](https://github.com/civicrm/civicrm-core/pull/14250))**
-- **NFC Cleanup comments on BAO event ([14603](https://github.com/civicrm/civicrm-core/pull/14603))**
+ Ensures the classes `CRM_Utils_SQL_Select`, `CRM_Utils_SQL_Delete`, and
+ `CRM_Utils_SQL_Insert` properly handle NULL values.
-- **Decommission recordPartialPayment function ([14599](https://github.com/civicrm/civicrm-core/pull/14599))**
+- **Fix deletion of contact sub_type in api4
+ ([14492](https://github.com/civicrm/civicrm-core/pull/14492))**
-- **[REF] do not pass by reference to store & create functions ([14598](https://github.com/civicrm/civicrm-core/pull/14598))**
+ Cleans up the contact BAO to not arbitrarily delete a contact's sub-type when
+ saving a contact using Api4.
-- **Convert Contact Groups cache group to standard cache definition ([14584](https://github.com/civicrm/civicrm-core/pull/14584))**
+- **Add in uniqueness to cache keys to mitigate clashes on multisite installs
+ ([14485](https://github.com/civicrm/civicrm-core/pull/14485))**
-- **Fix setup.sh crash when using the -a flag ([14595](https://github.com/civicrm/civicrm-core/pull/14595))**
+ Ensures cache keys are unique to the specific domain.
-- **Towards Convert receive_date to use datepicker in search ([14593](https://github.com/civicrm/civicrm-core/pull/14593))**
+- **Object id is always NULL in ore hook in update activity mode
+ ([14491](https://github.com/civicrm/civicrm-core/pull/14491))**
-- **Support api3 & 4 language syntax & improve test ([14590](https://github.com/civicrm/civicrm-core/pull/14590))**
+ Ensures when using the pre hook with the Activity entity, the Activity id (i.e
+ the object id) is NOT NULL.
-- **5.15 to master ([14592](https://github.com/civicrm/civicrm-core/pull/14592))**
+- **Scheduled jobs: replace outdated wiki link
+ ([14641](https://github.com/civicrm/civicrm-core/pull/14641))**
-- **Add default receive_date for contributions at BAO level ([14460](https://github.com/civicrm/civicrm-core/pull/14460))**
+- **Make the contact summary details popup on merge screen non bold a la contact
+ summary screen ([dev/core#1039](https://lab.civicrm.org/dev/core/issues/1039):
+ [14506](https://github.com/civicrm/civicrm-core/pull/14506))**
-- **dev/core#553: Creating new event takes value from default value not from saved template for custom fields ([14480](https://github.com/civicrm/civicrm-core/pull/14480))**
+- **When using custom fields for smart group criteria with relative dates the
+ group does not respect the relative date over time
+ ([dev/core#389](https://lab.civicrm.org/dev/core/issues/389):
+ [14625](https://github.com/civicrm/civicrm-core/pull/14625))**
-- **i18n - Improve multilingual popup for text and wysiwyg fields ([14578](https://github.com/civicrm/civicrm-core/pull/14578))**
+- **Improper character encoding breaks xml processor
+ ([dev-core#1079](https://lab.civicrm.org/dev/core/issues/1079):
+ [14654](https://github.com/civicrm/civicrm-core/pull/14654))**
-- **dev/core#914 rewrite submitOnce function ([14519](https://github.com/civicrm/civicrm-core/pull/14519))**
+- **Php 7.2 notices fix on import
+ ([14531](https://github.com/civicrm/civicrm-core/pull/14531))**
-- **Update Owner Membership ID label in reports to be Primary Membership … ([14585](https://github.com/civicrm/civicrm-core/pull/14585))**
+- **Fix use of cached schema information in SchemaHandler
+ ([14568](https://github.com/civicrm/civicrm-core/pull/14568))**
-- **Utils_JS - add fn to get props of js object without parsing them ([14586](https://github.com/civicrm/civicrm-core/pull/14586))**
+- **Ensure that contact groups caches are cleared if memory backed
+ ([14607](https://github.com/civicrm/civicrm-core/pull/14607))**
-- **5.15 ([14579](https://github.com/civicrm/civicrm-core/pull/14579))**
+- **Ensure recently converted groups cache matches previous behaviour by setting
+ `withArray` as fast for it
+ ([14789](https://github.com/civicrm/civicrm-core/pull/14789))**
-- **Fix use of cached schema information in SchemaHandler ([14568](https://github.com/civicrm/civicrm-core/pull/14568))**
+- **Does CiviCRM make it possible to specify which directories are private and
+ which are public-accessible? (continues work for
+ [dev/cloud-native#3](https://lab.civicrm.org/dev/cloud-native/issues/3):
+ [14717](https://github.com/civicrm/civicrm-core/pull/14717))**
-- **dev/core#1049: Use FrontEndPaymentFormTrait to assign line items… ([14562](https://github.com/civicrm/civicrm-core/pull/14562))**
+ Removes an unused cache-driver for storing cache records in the file system
+ (under CIVICRM_TEMPLATE_COMPILEDIR, using PHP serialize() format).
-- **Removed hardcoded value for registered participant status ([14569](https://github.com/civicrm/civicrm-core/pull/14569))**
+### CiviCampaign
-- **[TEST] add assert to ensure nullArray & nullObject are not contaminated ([14543](https://github.com/civicrm/civicrm-core/pull/14543))**
+- **CiviCRM Campaign, the Revenue Goal field stores 0 if $5,000 or any other
+ non-numeric value is entered
+ ([dev/core#1067](https://lab.civicrm.org/dev/core/issues/1067):
+ [14601](https://github.com/civicrm/civicrm-core/pull/14601))**
-- **5.15 to master ([14566](https://github.com/civicrm/civicrm-core/pull/14566))**
+### CiviCase
-- **Remove more uses of CRM_Core_DAO::$_nullArray that are unncessary ([14564](https://github.com/civicrm/civicrm-core/pull/14564))**
+- **Make a_b relationships available as case roles
+ ([dev/core#530](https://lab.civicrm.org/dev/core/issues/530):
+ [13916](https://github.com/civicrm/civicrm-core/pull/13916))**
-- **Remove unncessary $_nullArray usage when calling createProfileContact function ([14560](https://github.com/civicrm/civicrm-core/pull/14560))**
+ This change makes it so users can select b_a relationships AND a_b
+ relationships when creating case roles, before this change only b_a
+ relationships were available when creating case roles.
-- **Remove unneeded use of CRM_Core_DAO::$_nullArray in executeQuery or s… ([14561](https://github.com/civicrm/civicrm-core/pull/14561))**
+- **Too many divs in caseTypeDetails.html
+ ([dev/core#1086](https://lab.civicrm.org/dev/core/issues/1086):
+ [14682](https://github.com/civicrm/civicrm-core/pull/14682))**
-- **[REF] Remove more instances of _nullArray ([14558](https://github.com/civicrm/civicrm-core/pull/14558))**
+- **Send copy of case activity is using the contribution receipt template -
+ actually all message templates seem to be mixed up (Test for
+ [dev/core#1082](https://lab.civicrm.org/dev/core/issues/1082):
+ [14666](https://github.com/civicrm/civicrm-core/pull/14666))**
-- **Alter PSR16 code to take into account of new entitysetting release wi… ([14559](https://github.com/civicrm/civicrm-core/pull/14559))**
+### CiviContribute
-- **Support button elements in ajax popups ([14136](https://github.com/civicrm/civicrm-core/pull/14136))**
+- **Add default receive_date for contributions at BAO level
+ ([14460](https://github.com/civicrm/civicrm-core/pull/14460))**
-- **Add buttons to 'Cleanup caches and update paths' in standard way ([14509](https://github.com/civicrm/civicrm-core/pull/14509))**
+ This change ensures one cannot create contributions with no receive date using
+ the API.
-- **5.15 to master ([14557](https://github.com/civicrm/civicrm-core/pull/14557))**
+- **Fix A.net to resolve time when using default
+ ([14540](https://github.com/civicrm/civicrm-core/pull/14540))**
-- **dev/core#1047 Fix instance of null contamination ([14556](https://github.com/civicrm/civicrm-core/pull/14556))**
+ Fixes failure to resolve date in authorize.net - this is likely a test-only
+ bug.
-- **dev/core#1047 Fix instance of null contamination ([14555](https://github.com/civicrm/civicrm-core/pull/14555))**
+- **Fixed visibility logic on Price field options.
+ ([13966](https://github.com/civicrm/civicrm-core/pull/13966))**
-- **[test] Call parent tearDown more consistently ([14552](https://github.com/civicrm/civicrm-core/pull/14552))**
+ Ensure that when adding price options to a price field with some public
+ options and some private options the new options are considered when
+ validating that there is an admin option.
-- **dev/core#1047 Fix instance of NULL contamination ([14550](https://github.com/civicrm/civicrm-core/pull/14550))**
+- **Support storing IPNs in `civicrm_system_log` for processors that send JSON
+ data ([dev/financial#55](https://lab.civicrm.org/dev/financial/issues/55):
+ [14290](https://github.com/civicrm/civicrm-core/pull/14290))**
-- **Fix duplicate households on 'Merge same household' exports ([14443](https://github.com/civicrm/civicrm-core/pull/14443))**
+ Ensures Stripe can log to the `civicrm_system_log`.
-- **5.15 ([14549](https://github.com/civicrm/civicrm-core/pull/14549))**
+- **Grab contribution status id from database
+ ([14713](https://github.com/civicrm/civicrm-core/pull/14713) and
+ [14704](https://github.com/civicrm/civicrm-core/pull/14704))**
-- **[TEST] Fix intermittent test fail on NULL array getting contaminated ([14542](https://github.com/civicrm/civicrm-core/pull/14542))**
+ Replaces hard coded Contribution Status Id with a pseudoconstant.
-- **[NFC] Fix Test function delcaration to match change in CiviUnitTestCa… ([14548](https://github.com/civicrm/civicrm-core/pull/14548))**
+- **Error in civicrm/payment/edit "Expected one FinancialTrxn but found 25
+ ([dev/core#965](https://lab.civicrm.org/dev/core/issues/965):
+ [14518](https://github.com/civicrm/civicrm-core/pull/14518))**
-- **5.15 to master ([14547](https://github.com/civicrm/civicrm-core/pull/14547))**
+ Fixes a bug where when ajax popup forms are disabled submitting the payment
+ edit form results in a fatal error "Expected one FinancialTrxn but found 25".
-- **Fix A.net to resolve time when using default ([14540](https://github.com/civicrm/civicrm-core/pull/14540))**
+- **New contribution may overwrite other contribution if it's opened in other
+ tab ([dev/financial#50](https://lab.civicrm.org/dev/financial/issues/50):
+ [14244](https://github.com/civicrm/civicrm-core/pull/14244))**
-- **Deprecate contribution_date as a parameter ([14533](https://github.com/civicrm/civicrm-core/pull/14533))**
+- **Refund throws a fatal error if the main contribution amount is
+ 0. ([dev/core#889](https://lab.civicrm.org/dev/core/issues/889):
+ [14488](https://github.com/civicrm/civicrm-core/pull/14488) and
+ [14103](https://github.com/civicrm/civicrm-core/pull/14103))**
-- **Add CRM_Utils_JS::decode function for decoding js objects ([14537](https://github.com/civicrm/civicrm-core/pull/14537))**
+- **Event Confirmation and ThankYou forms show tax rate with ALL the decimal
+ places. ([dev/core#1049](https://lab.civicrm.org/dev/core/issues/1049):
+ [14562](https://github.com/civicrm/civicrm-core/pull/14562))**
-- **Add csv reader package ([14524](https://github.com/civicrm/civicrm-core/pull/14524))**
+- **Deprecation notice on Find Contributions when get there from Manage
+ Contribution Pages
+ ([dev/core#1059](https://lab.civicrm.org/dev/core/issues/1059):
+ [14624](https://github.com/civicrm/civicrm-core/pull/14624) and
+ [14613](https://github.com/civicrm/civicrm-core/pull/14613))**
-- **[test] truncate pledge block when cleaning up financial entities ([14538](https://github.com/civicrm/civicrm-core/pull/14538))**
+- **Fix refund payment not recording from additional payment form
+ ([14733](https://github.com/civicrm/civicrm-core/pull/14733))**
-- **Address BAO - Handle standard 'custom' param as well as individual fields ([14535](https://github.com/civicrm/civicrm-core/pull/14535))**
+- **contribution detail report: error when sorting by custom contrib field (DB
+ Error: no such field)
+ ([dev/core#1081](https://lab.civicrm.org/dev/core/issues/1081):
+ [14746](https://github.com/civicrm/civicrm-core/pull/14746))**
-- **5.15 to master ([14541](https://github.com/civicrm/civicrm-core/pull/14541))**
+- **Fix notice on editing contribution
+ ([14626](https://github.com/civicrm/civicrm-core/pull/14626))**
-- **5.15 to master ([14536](https://github.com/civicrm/civicrm-core/pull/14536))**
+- **Ensure that completed status is selected by default on search contribution
+ form ([14612](https://github.com/civicrm/civicrm-core/pull/14612))**
-- **ActivityForm - Redirect to contact page or activity view in standalone mode ([14522](https://github.com/civicrm/civicrm-core/pull/14522))**
+- **Fix unreleased regression - fatal on financial account screen
+ ([14900](https://github.com/civicrm/civicrm-core/pull/14900))**
-- **[REF] CRM_Case_BAO_Case::addcaseActivityLinks to CRM_Case_Selector_Search ([14512](https://github.com/civicrm/civicrm-core/pull/14512))**
+### CiviEvent
-- **[REF] dev/core#561 Convert Contribution Date field to use date picker… ([14486](https://github.com/civicrm/civicrm-core/pull/14486))**
+- **When creating a new event using a template the new event screen is taking
+ the default values directly from the custom fields, and not from what's saved
+ in the event template.
+ ([dev/core#553](https://lab.civicrm.org/dev/core/issues/553) /
+ [CRM-18570](https://issues.civicrm.org/jira/browse/CRM-18570):
+ [14480](https://github.com/civicrm/civicrm-core/pull/14480))**
-- **Php 7.2 notices fix on import ([14531](https://github.com/civicrm/civicrm-core/pull/14531))**
+- **Display bug for Checkboxes Custom field on Event Confirm / Thank you pages
+ ([dev/core#1058](https://lab.civicrm.org/dev/core/issues/1058):
+ [14587](https://github.com/civicrm/civicrm-core/pull/14587))**
-- **Expose Primary member only/Non primary member only filter in membersh… ([14530](https://github.com/civicrm/civicrm-core/pull/14530))**
+- **Fix incorrect display of Line Items created via API when printing invoice
+ (for Participants)
+ ([13477](https://github.com/civicrm/civicrm-core/pull/13477))**
-- **Adding myself to the contributors file ([14532](https://github.com/civicrm/civicrm-core/pull/14532))**
+- **Add a helper function to ensure we always set the correct tab for manage
+ events ([14602](https://github.com/civicrm/civicrm-core/pull/14602))**
-- **CiviDist fails on BSD flavor of 'cp' with '-r -p' switch to '-R -p' ([14523](https://github.com/civicrm/civicrm-core/pull/14523))**
+- **Removed hardcoded value for registered participant status
+ ([14569](https://github.com/civicrm/civicrm-core/pull/14569))**
-- **5.15 ([14528](https://github.com/civicrm/civicrm-core/pull/14528))**
+### CiviMail
-- **[NFC] Fix indenting in Misc Setting Template ([14526](https://github.com/civicrm/civicrm-core/pull/14526))**
+- **Hashed mailing URLs do not work with view mailing links
+ ([dev/core#1037](https://lab.civicrm.org/dev/core/issues/1037):
+ [14508](https://github.com/civicrm/civicrm-core/pull/14508) and
+ [14722](https://github.com/civicrm/civicrm-core/pull/14722))**
-- **Update PSR16 handling for multisite extension legacy caching group ([14505](https://github.com/civicrm/civicrm-core/pull/14505))**
+### Drupal Integration
-- **Display description next to 'paperclip' file icon - usually the filename ([14501](https://github.com/civicrm/civicrm-core/pull/14501))**
+- **Drupal8: CiviCRM menu does not use the correct locale (continues work for
+ [dev/drupal#21](https://lab.civicrm.org/dev/drupal/issues/21):
+ [14474](https://github.com/civicrm/civicrm-core/pull/14474))**
-- **dev/core#1015 fix regression on exporting soft credits - more robust … ([14513](https://github.com/civicrm/civicrm-core/pull/14513))**
+ Ensures CiviCRM menu is translated appropriately on Drupal 8 sites using the
+ locale module and CiviCRM in multilingual mode.
-- **dev/core#965 Fix destination in payment edit ([14518](https://github.com/civicrm/civicrm-core/pull/14518))**
+- **Drupal8: drupal_set_message is deprecated (or: Event Cart messages display
+ HTML) ([dev/drupal#63](https://lab.civicrm.org/dev/drupal/issues/63):
+ [13959](https://github.com/civicrm/civicrm-core/pull/13959))**
-- **Fix test which fails when run in isolation. ([14517](https://github.com/civicrm/civicrm-core/pull/14517))**
+ Fixes a bug where when using CiviCRM Event Cart in Drupal8, some status
+ messages were being displayed as HTML to the user.
-- **[NFC] test cleanup. Uses CRM_Core_Exceptions, properly outputs unfiltered results ([14471](https://github.com/civicrm/civicrm-core/pull/14471))**
+### Joomla Integration
-- **5.15 ([14520](https://github.com/civicrm/civicrm-core/pull/14520))**
+- **Upgrade to 5.14 fails on updating case views
+ ([dev/joomla#13](https://lab.civicrm.org/dev/joomla/issues/13):
+ [14707](https://github.com/civicrm/civicrm-core/pull/14707),
+ [14708](https://github.com/civicrm/civicrm-core/pull/14708),
+ [14709](https://github.com/civicrm/civicrm-core/pull/14709),
+ [14710](https://github.com/civicrm/civicrm-core/pull/14710) and
+ [14702](https://github.com/civicrm/civicrm-core/pull/14702))**
-- **Improve I18n schema by including comments and default and NOT NULL or… ([14484](https://github.com/civicrm/civicrm-core/pull/14484))**
+- **CiviDist fails on BSD flavor of 'cp' with '-r -p' switch to '-R -p'
+ ([14523](https://github.com/civicrm/civicrm-core/pull/14523))**
-- **Fix placeholder font in Quicksearch ([14154](https://github.com/civicrm/civicrm-core/pull/14154))**
+ Ensures cividist does not fail for joomla-alt on MacOSX.
-- **Fixed visibility logic on Price field options. ([13966](https://github.com/civicrm/civicrm-core/pull/13966))**
+### Wordpress Integration
-- **CRM_Utils_SQL_* - Properly interpolate NULL values ([14250](https://github.com/civicrm/civicrm-core/pull/14250))**
+- **Recreate rewrite rules when basepage setting is updated
+ ([157](https://github.com/civicrm/civicrm-wordpress/pull/157))**
-- **dev/core#1039 Make the contact details in the contact summary screen … ([14506](https://github.com/civicrm/civicrm-core/pull/14506))**
+ Ensures rewrite rules are flushed when saving the WordPress Base Page setting
+ in CiviCRM.
-- **Civi\Angular\ChangeSet - Relax debug-mode consistency check ([14510](https://github.com/civicrm/civicrm-core/pull/14510))**
+- **Implement "document_title_parts" filter to apply CiviCRM title on basepage
+ ([158](https://github.com/civicrm/civicrm-wordpress/pull/158))**
-- **dev/drupal#63 Drupal8: override setMessage(), because drupal_set_message is deprecated ([13959](https://github.com/civicrm/civicrm-core/pull/13959))**
+ Ensures when Clean URLs are not implemented, the `<title>` element is
+ correctly set on the civicrm base page.
-- **Expose Primary member only/Non primary member only filter in membersh… ([14507](https://github.com/civicrm/civicrm-core/pull/14507))**
+## <a name="misc"></a>Miscellany
-- **REF Deduplicate recaptcha handling code ([14500](https://github.com/civicrm/civicrm-core/pull/14500))**
+- **Revert "[REF] use generic loadStandardSearchOptionsFromUrl". Fix search
+ selections. ([14918](https://github.com/civicrm/civicrm-core/pull/14918))**
-- **Remove duplicated code in contribution recur search build function ([14504](https://github.com/civicrm/civicrm-core/pull/14504))**
+- **Remove duplicated code in contribution recur search build function
+ ([14504](https://github.com/civicrm/civicrm-core/pull/14504))**
-- **Fix deletion of contact sub_type in api4 ([14492](https://github.com/civicrm/civicrm-core/pull/14492))**
+- **Civi\Angular\ChangeSet - Relax debug-mode consistency check
+ ([14510](https://github.com/civicrm/civicrm-core/pull/14510))**
-- **REF Extract override default currency function ([14496](https://github.com/civicrm/civicrm-core/pull/14496))**
+- **Alter PSR16 code to take into account of new entitysetting release with
+ upgraded caching
+ ([14559](https://github.com/civicrm/civicrm-core/pull/14559))**
-- **[REF] Minor code cleanup on string concatenation ([14444](https://github.com/civicrm/civicrm-core/pull/14444))**
+- **Remove handling for legacy PrevNextCache group as it has now been converted
+ ([14584](https://github.com/civicrm/civicrm-core/pull/14584),
+ [14631](https://github.com/civicrm/civicrm-core/pull/14631) and
+ [14580](https://github.com/civicrm/civicrm-core/pull/14580))**
-- **Fix proportional test to test Payment.create & for the test to make more sense ([14436](https://github.com/civicrm/civicrm-core/pull/14436))**
+- **[Form cleanup] remove form classes & tpls for Event Component settings &
+ Multisite ([14425](https://github.com/civicrm/civicrm-core/pull/14425))**
-- **REF: Extract preProcess paypalexpress ([14498](https://github.com/civicrm/civicrm-core/pull/14498))**
+- **Add WP-oriented E2E test suite, with HookTest as an example
+ ([159](https://github.com/civicrm/civicrm-wordpress/pull/159))**
-- **NFC Comments and formatting only ([14497](https://github.com/civicrm/civicrm-core/pull/14497))**
+- **Decommission recordPartialPayment function
+ ([14599](https://github.com/civicrm/civicrm-core/pull/14599))**
-- **dev/drupal#21 Remove asterisks from placeholder url ([14474](https://github.com/civicrm/civicrm-core/pull/14474))**
+- **Fix erroneous variable passed to callAPISuccessGetValue
+ ([14688](https://github.com/civicrm/civicrm-core/pull/14688))**
-- **Add a couple customField pseudoconstants ([14494](https://github.com/civicrm/civicrm-core/pull/14494))**
+- **Deprecate some deprecated address functions: defaultCurrencySymbol
+ ([14687](https://github.com/civicrm/civicrm-core/pull/14687))**
-- **dev/core#530 Make a_b relationships available as case roles ([13916](https://github.com/civicrm/civicrm-core/pull/13916))**
+- **Extract code converting a date object to local timezone object to own
+ function ([14723](https://github.com/civicrm/civicrm-core/pull/14723))**
-- **Create payment activity when creating a payment via the api, test ([14452](https://github.com/civicrm/civicrm-core/pull/14452))**
+- **Replace jcalendar instances with datepicker (continues work for
+ [dev/core#561](https://lab.civicrm.org/dev/core/issues/561):
+ [14593](https://github.com/civicrm/civicrm-core/pull/14593),
+ [14431](https://github.com/civicrm/civicrm-core/pull/14431) and
+ [14627](https://github.com/civicrm/civicrm-core/pull/14627))**
-- **[REF] Move sort_name definition to searchFieldMetadata ([14478](https://github.com/civicrm/civicrm-core/pull/14478))**
+- **[REF] Remove more instances of _nullArray
+ ([14558](https://github.com/civicrm/civicrm-core/pull/14558))**
-- **Remove more free calls ([14493](https://github.com/civicrm/civicrm-core/pull/14493))**
+- **[REF] transform the setting of defaults in CustomField::create to be like
+ (some) other entities
+ ([14671](https://github.com/civicrm/civicrm-core/pull/14671))**
-- **Add in uniqueness to cache keys to mitigate clashes on multisite inst… ([14485](https://github.com/civicrm/civicrm-core/pull/14485))**
+- **[NFC] Fix Test function delcaration to match change in CiviUnitTestCa…
+ ([14548](https://github.com/civicrm/civicrm-core/pull/14548))**
-- **dev/core#561 Convert pledge search form to use metadata functions ([14431](https://github.com/civicrm/civicrm-core/pull/14431))**
+- **[NFC] Fix indenting in Misc Setting Template
+ ([14526](https://github.com/civicrm/civicrm-core/pull/14526))**
-- **financial#55: support IPN logging on processors that send JSON data as POST ([14290](https://github.com/civicrm/civicrm-core/pull/14290))**
+- **[NFC] code formatting
+ ([14606](https://github.com/civicrm/civicrm-core/pull/14606))**
-- **Fix core#1026 where an email address synced from a CMS contact is created with no location field. ([14489](https://github.com/civicrm/civicrm-core/pull/14489))**
+- **[NFC][test] reformat jobTest class
+ ([14681](https://github.com/civicrm/civicrm-core/pull/14681))**
-- **Object id is always NULL in ore hook in update activity mode ([14491](https://github.com/civicrm/civicrm-core/pull/14491))**
+- **[NFC] test cleanup. Uses CRM_Core_Exceptions, properly outputs unfiltered
+ results ([14471](https://github.com/civicrm/civicrm-core/pull/14471))**
-- **dev/core#889 Add test for changing fee selection to 0 and then record… ([14488](https://github.com/civicrm/civicrm-core/pull/14488))**
+- **[NFC][test] reformat activity search test
+ ([14699](https://github.com/civicrm/civicrm-core/pull/14699))**
-- **dev/core#889 - Refund throws a fatal error if the main contribution a… ([14103](https://github.com/civicrm/civicrm-core/pull/14103))**
+- **[NFC][test] code formatting only
+ ([14700](https://github.com/civicrm/civicrm-core/pull/14700))**
-- **[Form cleanup] remove form classes & tpls for Event Component settings & Multisite ([14425](https://github.com/civicrm/civicrm-core/pull/14425))**
+- **[NFC] formatting on test class cleanup
+ ([14649](https://github.com/civicrm/civicrm-core/pull/14649))**
-- **5.15 ([14483](https://github.com/civicrm/civicrm-core/pull/14483))**
+- **NFC These pseudoconstant functions return array or string
+ ([14619](https://github.com/civicrm/civicrm-core/pull/14619))**
-- **Add WP-oriented E2E test suite, with HookTest as an example ([159](https://github.com/civicrm/civicrm-wordpress/pull/159))**
+- **NFC Comments and formatting only
+ ([14497](https://github.com/civicrm/civicrm-core/pull/14497))**
-- **Recreate rewrite rules when basepage setting is updated ([157](https://github.com/civicrm/civicrm-wordpress/pull/157))**
+- **NFC Cleanup comments on BAO event
+ ([14603](https://github.com/civicrm/civicrm-core/pull/14603))**
-- **Implement "document_title_parts" filter to apply CiviCRM title on basepage ([158](https://github.com/civicrm/civicrm-wordpress/pull/158))**
+- **[TEST] add assert to ensure nullArray & nullObject are not contaminated
+ ([14543](https://github.com/civicrm/civicrm-core/pull/14543))**
-- **5.15 ([256](https://github.com/civicrm/civicrm-packages/pull/256))**
+- **[TEST] Update Email Common Test to incorporate testing for the fix fo…
+ ([14629](https://github.com/civicrm/civicrm-core/pull/14629))**
-## <a name="misc"></a>Miscellany
+- **[TEST] Fix intermittent test fail on NULL array getting contaminated
+ ([14542](https://github.com/civicrm/civicrm-core/pull/14542))**
+
+- **[Test] Add in unit test attempting to demonstrate issue caused by dev…
+ ([14637](https://github.com/civicrm/civicrm-core/pull/14637))**
+
+- **[test] Call parent tearDown more consistently
+ ([14552](https://github.com/civicrm/civicrm-core/pull/14552))**
+
+- **[test] convert export test to handle exception rather than early return
+ ([14608](https://github.com/civicrm/civicrm-core/pull/14608))**
+
+- **[test] truncate pledge block when cleaning up financial entities
+ ([14538](https://github.com/civicrm/civicrm-core/pull/14538))**
+
+- **Fix failing test by changing expected date format
+ ([14686](https://github.com/civicrm/civicrm-core/pull/14686))**
+
+- **Fix proportional test to test Payment.create & for the test to make more
+ sense ([14436](https://github.com/civicrm/civicrm-core/pull/14436))**
+
+- **Fix test which fails when run in isolation.
+ ([14517](https://github.com/civicrm/civicrm-core/pull/14517))**
+
+- **[REF] do not receive by reference in CustomField::create
+ ([14670](https://github.com/civicrm/civicrm-core/pull/14670))**
+
+- **[REF] extract createOptionValue function in CustomField::create
+ ([14652](https://github.com/civicrm/civicrm-core/pull/14652))**
+
+- **[REF] remove instances of pass-by-reference where no change takes place
+ ([14693](https://github.com/civicrm/civicrm-core/pull/14693))**
+
+- **[REF] extract prepareCreate from CustomField.create
+ ([14689](https://github.com/civicrm/civicrm-core/pull/14689))**
+
+- **[REF] Minor code cleanup on string concatenation
+ ([14444](https://github.com/civicrm/civicrm-core/pull/14444))**
+
+- **[REF] Move sort_name definition to searchFieldMetadata
+ ([14478](https://github.com/civicrm/civicrm-core/pull/14478))**
+
+- **[REF] Copy assignProportional Line items back into Payment.create function
+ ([14622](https://github.com/civicrm/civicrm-core/pull/14622))**
+
+- **[REF] minor code cleanup - move indexExist calculation to the only place in
+ the code that needs it
+ ([14650](https://github.com/civicrm/civicrm-core/pull/14650))**
+
+- **[REF] Remove columnName field
+ ([14651](https://github.com/civicrm/civicrm-core/pull/14651))**
+
+- **[REF + test] extract buildFieldChangeSql and add unit test
+ ([14653](https://github.com/civicrm/civicrm-core/pull/14653))**
+
+- **[REF] CRM_Case_BAO_Case::addcaseActivityLinks to CRM_Case_Selector_Search
+ ([14512](https://github.com/civicrm/civicrm-core/pull/14512))**
+
+- **[REF] dev/core#561 Convert Contribution Date field to use date picker…
+ ([14486](https://github.com/civicrm/civicrm-core/pull/14486))**
+
+- **[REF] do not pass by reference to store & create functions
+ ([14598](https://github.com/civicrm/civicrm-core/pull/14598))**
+
+- **[REF] Add in utility function for resetting ACL and System Level Caches
+ ([14600](https://github.com/civicrm/civicrm-core/pull/14600))**
+
+- **REF Extract getDefaultRoleID for add participant
+ ([14499](https://github.com/civicrm/civicrm-core/pull/14499))**
+
+- **REF Deduplicate recaptcha handling code
+ ([14500](https://github.com/civicrm/civicrm-core/pull/14500))**
+
+- **REF Extract override default currency function
+ ([14496](https://github.com/civicrm/civicrm-core/pull/14496))**
+
+- **REF: Extract preProcess paypalexpress
+ ([14498](https://github.com/civicrm/civicrm-core/pull/14498))**
+
+- **Remove more uses of CRM_Core_DAO::$_nullArray that are unncessary
+ ([14564](https://github.com/civicrm/civicrm-core/pull/14564))**
+
+- **Remove unncessary $_nullArray usage when calling createProfileContact
+ function ([14560](https://github.com/civicrm/civicrm-core/pull/14560))**
+
+- **Remove unneeded use of CRM_Core_DAO::$_nullArray in executeQuery or s…
+ ([14561](https://github.com/civicrm/civicrm-core/pull/14561))**
+
+- **Remove more free calls
+ ([14493](https://github.com/civicrm/civicrm-core/pull/14493))**
+
+- **Remove a few places where pass by reference is used but does not need to be
+ ([14643](https://github.com/civicrm/civicrm-core/pull/14643))**
+
+- **Remove failing assertion
+ ([14695](https://github.com/civicrm/civicrm-core/pull/14695))**
+
+- **Removing unused spec function
+ ([14646](https://github.com/civicrm/civicrm-core/pull/14646))**
+
+- **Remove superfluous pass-by-ref in api3
+ ([14645](https://github.com/civicrm/civicrm-core/pull/14645))**
+
+- **Add in Andrei Mondoc(mecachisenros) to contributor key
+ ([14665](https://github.com/civicrm/civicrm-core/pull/14665))**
+
+- **Adding myself to the contributors file
+ ([14532](https://github.com/civicrm/civicrm-core/pull/14532))**
## <a name="credits"></a>Credits
This release was developed by the following code authors:
-AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Alok Patel, Francis Whittle; Andrei Mondoc; Australian Greens - Seamus Lee; Christian Wach; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Fuzion - Jitendra Purohit; Greenpeace CEE - Patrick Figel; iXiam - César Ramos; JMA Consulting - Monish Deb; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Nicol Wistreich; Pradeep Nayak; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Wikimedia Foundation - Eileen McNaughton
+AGH Strategies - Alice Frumin, Andie Hunt, Eli Lisseck; Agileware - Alok Patel,
+Francis Whittle; Andrei Mondoc; Australian Greens - Seamus Lee; Christian Wach;
+CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC -
+Mathieu Lutfy, Samuel Vanhove; Dave D; Electronic Frontier Foundation - Mark
+Burdett; Fuzion - Jitendra Purohit; Greenpeace CEE - Patrick Figel; iXiam -
+César Ramos; JMA Consulting - Monish Deb; John Kingsnorth; Megaphone Technology
+Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Nicol Wistreich;
+Pradeep Nayak; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin
+Cristiano; Wikimedia Foundation - Eileen McNaughton
Most authors also reviewed code for this release; in addition, the following
reviewers contributed their comments:
-AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Francis Whittle, Justin Freeman; Andrei Mondoc; Australian Greens - Seamus Lee; Christian Wach; civibot[bot]; CiviCoop - Jaap Jansma; civicrm-builder; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Sunil Pawar, Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Fuzion - Jitendra Purohit, Luke Stewart; Greenpeace CEE - Patrick Figel; JMA Consulting - Joe Murray, Monish Deb; Korlon - Stuart Gaston; Lighthouse Design and Consulting - Brian Shaughnessy; ltaliano; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Nicol Wistreich; Palante - Morgan Robinson; Pradeep Nayak; Semper IT - Karin Gerritsen; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano; Tech To The People - Xavier Dutoit; Wikimedia Foundation - Eileen McNaughton
+Agileware - Justin Freeman; CiviCoop - Jaap Jansma; CiviDesk - Sunil Pawar;
+Fuzion - Luke Stewart; JMA Consulting - Joe Murray; Korlon - Stuart Gaston;
+Lighthouse Design and Consulting - Brian Shaughnessy; National Urban League -
+Lisa Taliano; Palante Technology Cooperative - Morgan Robinson; Semper IT -
+Karin Gerritsen; Tech To The People - Xavier Dutoit
## <a name="feedback"></a>Feedback
-These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
+These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
and contact `@agh1`.