5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
12 ## <a name="synopsis"></a>Synopsis
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | no |
17 | Change the database schema? | **yes** |
18 | Alter the API? | **yes** |
19 | Require attention to configuration options? | **yes** |
20 | Fix problems installing or upgrading to a previous version? | **yes** |s
21 | Introduce features? | **yes** |
22 | Fix bugs? | **yes** |
24 ## <a name="features"></a>Features
28 - **Configurable menubar color
29 ([13996](https://github.com/civicrm/civicrm-core/pull/13996))**
31 v5.12 introduced a new menu bar. The change also revised the default color
32 scheme (applying a more contemporary palette), but this created stress for
33 some users who were trained to recognize the old menu color. This exposes a
34 new setting for customizing the color scheme, and it changes the default to
35 match previous scheme (be black instead of beige).
37 - **Menu config screen improvements
38 ([14002](https://github.com/civicrm/civicrm-core/pull/14002))**
40 Improves the Menu configuration screen by: making changes to the menu (adding
41 or editing menu items) on the admin screen be reflected immediately, adding
42 links to the related settings pages to reduce confusion about how to configure
43 various aspects of the menu bar and fixing the broken icon picker and missing
46 - **[dev/core#824](https://lab.civicrm.org/dev/core/issues/824) What to do with
47 the merge screen ([13898](https://github.com/civicrm/civicrm-core/pull/13898)
48 and [13895](https://github.com/civicrm/civicrm-core/pull/13895)) Continued
51 Continues work to clean up the Merge screen by moving toward
52 using contact type icons in a standard way instead of the contact type names
53 and cleaning up alignment.
55 - **Mutliple activity type filters on activity tab on contact records
56 ([13873](https://github.com/civicrm/civicrm-core/pull/13873))**
58 Change include/exclude activity type filters to be multiple select2 widgets so
59 that users can filter my multiple activity types rather than only permitting
60 users to select one activity type with a traditional select field.
62 - **Added a DB check to prevent deleting exisiting CiviCRM data from database.
63 ([13944](https://github.com/civicrm/civicrm-core/pull/13944))**
65 When installing CiviCRM this change adds a check to see if there are existing
66 CiviCRM tables and requires users to manually remove any CiviCRM tables
67 before continuing to prevent users from accidentally deleting tables.
69 - **Encourage developers to use .then instead of .done
70 ([13982](https://github.com/civicrm/civicrm-core/pull/13982))**
72 This change makes it so the Api Explorer generates js code using `.then()`
73 (instead of `.done`) and demonstrates proper errQor handling to encourage
74 developers to use `.then()`.
76 - **[dev/core#561](https://lab.civicrm.org/dev/core/issues/561) Replace
77 jcalendar instances with datepicker
78 ([13919](https://github.com/civicrm/civicrm-core/pull/13919),
79 [13855](https://github.com/civicrm/civicrm-core/pull/13855),
80 [13965](https://github.com/civicrm/civicrm-core/pull/13965),
81 [13950](https://github.com/civicrm/civicrm-core/pull/13950) and
82 [13918](https://github.com/civicrm/civicrm-core/pull/13918)) Continued Work**
84 Moves from jcalendar to datepicker in the following places: the fulfilled date
85 on the premium tab on back end contribution add/edit screens, the activity
86 tab, the receive_date and the renewal_date fields in Membership forms and the
87 transaction date field on the update pending status task. And updates tests to
88 reflect progress getting rid of jcalendar.
90 - **Expose sort_name as a dedupe-matchable field
91 ([13864](https://github.com/civicrm/civicrm-core/pull/13864))**
93 Allow sort_name to be used in dedupe rules.
95 - **Standardise setTitle method on forms
96 ([13781](https://github.com/civicrm/civicrm-core/pull/13781))**
98 Makes the title of a form available in the buildForm hook.
100 - **send action links on any page that extends CRM_Core_Page_basic thru
102 ([13068](https://github.com/civicrm/civicrm-core/pull/13068))**
104 Makes it so extension developers can use hook_civicrm_links to add or remove
105 links from the Relationship Types Administration Page (CiviCRM Navigation
106 Menu->Administer->Customize Data and Screens->Relationship Types) and any
107 other page that extends CRM_Core_Page_Basic.
109 - **[CRM-18011](https://issues.civicrm.org/jira/browse/CRM-18011) improve lock
110 handling for mysql 5.7.5+
111 ([13854](https://github.com/civicrm/civicrm-core/pull/13854))**
113 Ensures mysql locks are supported on mysql 5.7.5+ and MariaDB '10.0.2'+.
115 - **Deploy PEAR Log package and upgrade to latest version in the process
116 ([13835](https://github.com/civicrm/civicrm-core/pull/13835))**
118 Upgrades the PEAR Log package version and deploys it via
121 - **Make cacheCode optional in CRM.loadScript
122 ([13824](https://github.com/civicrm/civicrm-core/pull/13824))**
124 A cacheCode was recently added to script urls fetched by CRM.getScript(). This
125 is not always desirable e.g. for scripts fetched from an external source, this
126 change makes it so the cacheCode is added by default but can be disabled.
128 - **Load hooks during upgrade mode
129 ([13551](https://github.com/civicrm/civicrm-core/pull/13551))**
131 Allow extensions to load hooks during an upgrade.
133 - **[CRM-21008](https://issues.civicrm.org/jira/browse/CRM-21008) Checkbox to
134 explicitly change employer when sharing address
135 ([13700](https://github.com/civicrm/civicrm-core/pull/13700))**
137 Before this change when an individual was set to share an address with an
138 organization, that organization was set as its current employer. This change
139 adds a checkbox that allows users to explicitly tell civicrm whether the
140 organization is the current employer or not when sharing an address.
142 - **[CRM-21677](https://issues.civicrm.org/jira/browse/CRM-21677) Report
143 improvements ([13792](https://github.com/civicrm/civicrm-core/pull/13792),
144 [13790](https://github.com/civicrm/civicrm-core/pull/13790) and
145 [13780](https://github.com/civicrm/civicrm-core/pull/13780))**
147 These changes improve reports by removing redundant birth date and gender
150 - **[dev/core/544](https://lab.civicrm.org/dev/core/issues/544) Contact Subtype
151 field at Reports does not support contacts with multiple subtypes
152 ([13158](https://github.com/civicrm/civicrm-core/pull/13158) and
153 [13908](https://github.com/civicrm/civicrm-core/pull/13908))**
155 Makes reports support filtering on multiple contact subtypes.
157 - **[dev/core#560](https://lab.civicrm.org/dev/core/issues/560) Replace all
158 instances of CRM_Core_Fatal with throw new CRM_Core_Exception
159 ([13850](https://github.com/civicrm/civicrm-core/pull/13850)) Continued Work**
161 Updates Cancel Billing & Update Billing screens to use status bounce rather
162 than throw a fatal error.
164 - **Activity tab performance fix - switch to faster getActivities &
166 ([13768](https://github.com/civicrm/civicrm-core/pull/13768))**
168 Performance improvement when loading the activity tab for a contact.
170 - **Add hook findDuplicates
171 ([13234](https://github.com/civicrm/civicrm-core/pull/13234))**
173 Adds the hook findDuplicates which provides the ability for extensions to
174 intercept and/or override core duplicate checking when
175 registering/contributing.
177 - **[dev/core#748](https://lab.civicrm.org/dev/core/issues/748) Deadlocks and
178 performance issues when using smartgroups / ACLs extensively
179 ([13772](https://github.com/civicrm/civicrm-core/pull/13772)) continued Work**
181 Improves performance by switching the alphabetQuery to use new
182 getSearchSQLParts() function.
184 - **Improve data when known time-dependent-failing test fails
185 ([13964](https://github.com/civicrm/civicrm-core/pull/13964))**
187 Improves output data when time dependent tests fail.
189 - **Use TempTable methods.
190 ([13880](https://github.com/civicrm/civicrm-core/pull/13880),
191 [13865](https://github.com/civicrm/civicrm-core/pull/13865),
192 [13819](https://github.com/civicrm/civicrm-core/pull/13819),
193 [13848](https://github.com/civicrm/civicrm-core/pull/13848),
194 [13847](https://github.com/civicrm/civicrm-core/pull/13847) and
195 [13703](https://github.com/civicrm/civicrm-core/pull/13703))**
197 These changes move towards using the tempTable class to improve
198 standardization including but not limited to the following places: when
199 creating the dedupe table, on the contribution detail report, on the
200 bookkeeping report and when debugging.
202 - **Allow extensions to enable validate.tpl
203 ([13961](https://github.com/civicrm/civicrm-core/pull/13961))**
205 This change makes it possible for extensions to add a validate.tpl which
206 provides front end javascript validation, which improves user experience by
207 making it so users do not have to refresh the page to see validation issues.
209 - **Promise Polyfill for older browsers
210 ([13955](https://github.com/civicrm/civicrm-core/pull/13955))**
212 Loads a polyfill for IE aQnd other outdated browsers so developers can use
213 native js Promises in our code.
217 - **[dev/core#641](https://lab.civicrm.org/dev/core/issues/641) Case Activity
218 Assignment Restriction
219 ([13541](https://github.com/civicrm/civicrm-core/pull/13541))**
221 Makes it possible to restrict the assignment of case activities to
222 a group or to contacts having user accounts.
226 - **[dev/core#830](https://lab.civicrm.org/dev/core/issues/830) Proposal - add
227 cancel_reason field to civicrm_contribution_recur table
228 ([13930](https://github.com/civicrm/civicrm-core/pull/13930) and
229 [13999](https://github.com/civicrm/civicrm-core/pull/13999))**
231 Adds a recur cancel reason field `civicrm_contribution_recur.cancel_reason
234 - **Add ID / Test ID for payment processors to list - makes setup of IPNs much
235 easier! ([13869](https://github.com/civicrm/civicrm-core/pull/13869))**
237 Adds a column for payment processor id and test payment processor id to the
238 table of "Settings - Payment Processors" page so that users can more easily
241 - **Add payment_processor column/filter to recurring contribution report
242 ([13699](https://github.com/civicrm/civicrm-core/pull/13699))**
244 On the "Recurring Contribution" report, this adds "Payment Processor" as an
245 option to the Column and Filter tabs enabling users to filter this report by
246 "Payment Processor" and/or include a column for "Payment Processor".
248 - **[dev/financial#2](https://lab.civicrm.org/dev/financial/issues/2) Payment
249 processor names: separate internal and external usage
250 ([13995](https://github.com/civicrm/civicrm-core/pull/13995) and
251 [13954](https://github.com/civicrm/civicrm-core/pull/13954))**
253 Adds the field `payment_processor.title` to the schema and makes it
256 - **[dev/financial#38](https://lab.civicrm.org/dev/financial/issues/38) Support
257 paying refunds ([13952](https://github.com/civicrm/civicrm-core/pull/13952))
260 Adds a PaymentProcessor.refund API which makes it possible for payment
261 processor extension authors to have their extensions issue refund payments.
263 - **Add minimal PaymentProcessor.pay api
264 ([13953](https://github.com/civicrm/civicrm-core/pull/13953))**
266 Adds a new api PaymentProcessor.pay.
268 - **Include lower level data when throwing an exception on payment processor.pay
269 ([14006](https://github.com/civicrm/civicrm-core/pull/14006))**
271 Improves error processing when using the PaymentProcessor.pay api.
273 - **Add billingblock region to event registration thankyou to match contribution
274 thankyou ([13762](https://github.com/civicrm/civicrm-core/pull/13762))**
276 This change makes it so one can use the same method to
277 replace billingblock for both event and contribution thankyou workflows.
279 - **[dev/core#846](https://lab.civicrm.org/dev/core/issues/846) CQ: Refactor
280 Recurring Contribution Forms
281 ([13940](https://github.com/civicrm/civicrm-core/pull/13940)) Begins Work**
283 Begins work to refactor recurring contribution forms specifically by
284 rationalizing url variables into shared parent for recurring contribution
287 - **Use label not name for payment processor type
288 ([13885](https://github.com/civicrm/civicrm-core/pull/13885))**
290 On the "Settings - Payment Processor" page changes the "Processor Type" column
291 to use the label instead of the name.
293 - **Improve ContributionPage.validate api
294 ([13798](https://github.com/civicrm/civicrm-core/pull/13798))**
296 Makes it so that one can use the ContributionPage validate api on POST, for
297 example when using Paypal Checkout which calls a Promise, the
298 ContributionPage.validate api could be called to determine whether to proceed
299 after the button is pushed.
301 - **Add pseudoconstant support for payment_processor_id on ContributionRecur
302 ([13698](https://github.com/civicrm/civicrm-core/pull/13698))**
304 - **Allow payment processor to determine the text around 'continue'
305 ([13787](https://github.com/civicrm/civicrm-core/pull/13787))**
310 - **[dev/core#835](https://lab.civicrm.org/dev/core/issues/835) Expose
311 Registered by Participant Name field to participant report
312 ([13936](https://github.com/civicrm/civicrm-core/pull/13936))**
314 Exposes "Registered by Participant Name" field to participant reports.
318 - **[dev/core#491](https://lab.civicrm.org/dev/core/issues/491) Report results
319 don't show inactive campaigns
320 ([13383](https://github.com/civicrm/civicrm-core/pull/13383))**
322 Standardizes the way campaign fields are added to the "Mailing Summary"
327 - **Membership form address fields for payment processors
328 ([13802](https://github.com/civicrm/civicrm-core/pull/13802))**
330 Standardizes processing and validating address parameters on the
333 ### Wordpress Integration
335 - **Cleaner front-end URLs
336 ([144](https://github.com/civicrm/civicrm-wordpress/pull/144))**
338 Makes Wordpress URLs have the same structure as Drupal URLs ex:
339 `https://domain.tld/civicrm/contribute/transact/?reset=1&id=1 as opposed to
340 old` Wordpress URLs that looked like
341 `https://domain.tld/civicrm/?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=1`
343 ## <a name="bugs"></a>Bugs resolved
347 - **[infra/ops#878](https://lab.civicrm.org/infra/ops/issues/878) Add a test
348 matrix for E2E tests on each CMS
349 ([13810](https://github.com/civicrm/civicrm-core/pull/13810) and
350 [13811](https://github.com/civicrm/civicrm-core/pull/13811)) Coninued Work**
352 These changes resolve bugs when running E2E tests on WordPress moving the
353 project towards the goal of having a test matrix for E2E tests for each CMS
354 that CiviCRM is compatible with.
356 - **[dev/core#288](https://lab.civicrm.org/dev/core/issues/288) Use the correct
357 membership date for the notification that appear after completing the
358 membership payment in case pre hook is used
359 ([12583](https://github.com/civicrm/civicrm-core/pull/12583))**
361 This change ensures that any changes made to the membership dates using
362 hook_civicrm_pre are taken into account when generating the membership payment
365 - **[dev/core#499](https://lab.civicrm.org/dev/core/issues/499) Custom Field
366 Checkbox value renders empty if the values are randomly sorted
367 ([13051](https://github.com/civicrm/civicrm-core/pull/13051))**
369 This change ensures that the values selected by a user for alphanumeric
370 checkbox custom fields render properly in view mode.
372 - **[dev/core#570](https://lab.civicrm.org/dev/core/issues/570) New
373 Organisation: "Check For Matching Contact (S)" button does not find matching
374 records ([13398](https://github.com/civicrm/civicrm-core/pull/13398))**
376 This change ensures that "Check For Matching Contact(s)" retrieves
377 contacts for users with limited permissions.
379 - **[dev/core#655](https://lab.civicrm.org/dev/core/issues/655) Soft Credits
380 Multiply GIft Amount in Contribution Detail Report
381 ([13906](https://github.com/civicrm/civicrm-core/pull/13906))**
383 This change updates the Contribution Detail report so that the "Total Amount"
384 field is not summed because the summing of the "Total Amount" field was
385 leading to the "Total Amount" field for contributions with multiple soft
386 credits to be multiplied by the number of soft credits.
388 - **[dev/core#664](https://lab.civicrm.org/dev/core/issues/664) Add new indexes
389 when updating log table schema regardless of engine change
390 ([13462](https://github.com/civicrm/civicrm-core/pull/13462))**
392 This change makes it so that when the alterLogTables hook defines a new index
393 it is applied regardless of the engine.
395 - **[dev/core#688](https://lab.civicrm.org/dev/core/issues/688) Contacts -> New
396 Email give Unknown Error in Smarty when Allow Mail to be sent from logged in
397 contact's email address disabled
398 ([13508](https://github.com/civicrm/civicrm-core/pull/13508))**
400 This change fixes an error "Warning: Smarty error" when attempting to send an
401 email from Contacts -> New Email for sites with "Allow Mail to be sent from
402 logged in user" disabled.
404 - **[dev/core#706](https://lab.civicrm.org/dev/core/issues/706) Edit
405 contribution : wrong decimal separator on total_amount for participant(s)
406 ([13554](https://github.com/civicrm/civicrm-core/pull/13554))**
408 This change ensures that the decimal separator on total_amount field for
409 participant(s) is displayed as it is configured on the site.
411 - **[dev/core#709](https://lab.civicrm.org/dev/core/issues/709) Contact Report:
412 The filter by the custom datetime field with "Today" option doesn't find
414 ([13567](https://github.com/civicrm/civicrm-core/pull/13567))**
416 This change ensures that on the Contact Report, when using a filter for a
417 custom datetime field the "Today" option properly filters results.
419 - **[dev/core#725](https://lab.civicrm.org/dev/core/issues/725) Address API
420 incorrectly sets state_province_id if multiple countries have same state name /
421 abbreviation ([13938](https://github.com/civicrm/civicrm-core/pull/13938))**
423 This change fixes a regression so that the Address API country_id parameter
424 works with an abbreviation or numeric id.
426 - **[dev/core#726](https://lab.civicrm.org/dev/core/issues/726) Advanced Search:
427 There is an Internal Server Error (500) when the user tries to search by the
428 "Mailing List" group type
429 ([13603](https://github.com/civicrm/civicrm-core/pull/13603) and
430 [13888](https://github.com/civicrm/civicrm-core/pull/13888))**
432 Fixes a bug where searching by a group type (ex: Mailing List) on the Advanced
433 Search form would result in a fatal error so that this search runs as
436 - **[dev/core#740](https://lab.civicrm.org/dev/core/issues/740) Notes: It isn't
437 possible to edit note if the user uploaded an image larger than 3 MByte(s)
438 ([13640](https://github.com/civicrm/civicrm-core/pull/13640))**
440 This change makes it so that it is possible to edit a note field
441 that includes images larger than 3 MByte(s).
443 - **[dev/core#755](https://lab.civicrm.org/dev/core/issues/755) custom field
444 caching is not group-specific
445 ([13900](https://github.com/civicrm/civicrm-core/pull/13900))**
447 Adds the $groupTitle parameter to the cache key for custom fields, so field
448 names that exist in multiple groups will be cached separately.
450 - **[dev/core#788](https://lab.civicrm.org/dev/core/issues/788) Warning: A
451 non-numeric value encountered in ...
452 ([13795](https://github.com/civicrm/civicrm-core/pull/13795))**
454 This change fixes several warnings "Warning: A non-numeric value encountered
455 in ..." on contribution pages & event registrations forms.
457 - **[dev/core#795](https://lab.civicrm.org/dev/core/issues/795) PHP Warning
458 "explode() expects parameter 2 to be string, array given" for multi-value
459 country fields ([13858](https://github.com/civicrm/civicrm-core/pull/13858))**
461 Fixes a PHP warning when updating a multiselect country field.
463 - **[dev/core#798](https://lab.civicrm.org/dev/core/issues/798) Prefix/suffix
464 select2 renders oddly on public-facing pages
465 ([13816](https://github.com/civicrm/civicrm-core/pull/13816))**
467 This change makes the Prefix/suffix select2's render full height (as opposed
468 to squished) in contribution/event profiles.
470 - **[dev/core#806](https://lab.civicrm.org/dev/core/issues/806) DB Error::
471 Already exists during renewing membership automatically
472 ([13852](https://github.com/civicrm/civicrm-core/pull/13852))**
474 Fixes a DB error "already exists" when recording recurring payments with taxes
477 - **[dev/core#811](https://lab.civicrm.org/dev/core/issues/811) Autocomplete
478 select list disabled options
479 ([13859](https://github.com/civicrm/civicrm-core/pull/13859))**
481 This change ensures that for select fields with autocomplete, only enabled
482 options autocomplete.
484 - **[dev/core#819](https://lab.civicrm.org/dev/core/issues/819) Search results:
485 Actions: Export contacts: DB Error: Syntax error occurs when not all necessary
487 ([13889](https://github.com/civicrm/civicrm-core/pull/13889))**
489 Resolves a fatal database error when attempting to export contacts without
490 selecting any fields to be exported.
492 - **[dev/core#823](https://lab.civicrm.org/dev/core/issues/823) Value in the
493 "Contact Type" field disappears when the user tries to edit Contact Details
494 ([13945](https://github.com/civicrm/civicrm-core/pull/13945))**
496 Ensures that when a user uses a profile with a contact sub type field to
497 update a contact that the contact sub type field pre-populates as expected.
499 - **[dev/core#837](https://lab.civicrm.org/dev/core/issues/837) Notice error
500 while creating smart group using Contribution Aggregate custom search
501 ([13921](https://github.com/civicrm/civicrm-core/pull/13921))**
503 Resolves "Notice: Undefined index:" errors when creating a smart group using
504 Contribution Aggregate custom search.
506 - **[dev/core#840](https://lab.civicrm.org/dev/core/issues/840) Notice error
507 when deleting profile
508 ([13926](https://github.com/civicrm/civicrm-core/pull/13926))**
510 Resolves a "Undefined property" notice when deleting a profile.
512 - **[dev/core#849](https://lab.civicrm.org/dev/core/issues/849) CQ: Use Guzzle
513 as our preferred way to retrieve via http
514 ([13946](https://github.com/civicrm/civicrm-core/pull/13946))**
516 Replaces get_headers functions call with Guzzle HTTP request to prevent timing
519 - **[dev/core#433](https://lab.civicrm.org/dev/core/issues/433) Queries
520 combining multiple text labels using REGEXP do not escape regular expression
521 metacharacters ([12998](https://github.com/civicrm/civicrm-core/pull/12998))**
523 Ensures that querying for fee levels that contain regex metacharacters will
526 - **Fix status type (error, not fail) for CRM_Core_Session::setStatus
527 ([13943](https://github.com/civicrm/civicrm-core/pull/13943))**
529 Fixes an incorrect status for setMessage which was using 'fail' (which is not
530 a valid status) instead of 'error'.
532 - **Covert the CRM_Core_Error::fatal calls to exceptions when trying to access
533 Contact Photos ([13917](https://github.com/civicrm/civicrm-core/pull/13917))**
535 Cleaner errors when attempting to access contact photos fails.
537 - **CiviCRM API, lookup state_province_id options based on country parameter if
538 present, or default country
539 ([13596](https://github.com/civicrm/civicrm-core/pull/13596))**
541 Ensures the CiviCRM Address API correctly sets state_province_id for states
542 whose name/abbreviation exist in multiple countries.
544 - **Fix php 7.2 count notice
545 ([13877](https://github.com/civicrm/civicrm-core/pull/13877))**
547 Fixes a "Warning: count()" error on the "Import Contacts" Summary step screen.
549 - **[dev/core#699](https://lab.civicrm.org/dev/core/issues/699) New
550 Organisation: "Contact Type" dropdown disappears when fields validation occurs
551 ([13545](https://github.com/civicrm/civicrm-core/pull/13545))**
553 Fixes a bug where when creating a new organization, if the form fails
554 validation the "Contact Sub Type" dropdown disappears.
556 - **Fix contact.merge api to pass check_permissions parameter through to the
557 deeper layer ([13807](https://github.com/civicrm/civicrm-core/pull/13807))**
559 Fixes a bug where calling Contact.merge from php will leave the merged contact
560 unmerged if the logged in user does not have the delete contacts permission
562 - **checkEditInboundEmailsPermissions should be a static function
563 ([13805](https://github.com/civicrm/civicrm-core/pull/13805))**
565 - **[dev/core#502](https://lab.civicrm.org/dev/core/issues/502) DB error "no
566 such field" when executing actions on a sorted contact search result with
567 search profile ([13884](https://github.com/civicrm/civicrm-core/pull/13884))**
569 - **[dev/core#314](https://lab.civicrm.org/dev/core/issues/314) Transfer picks
570 up the deleted contact ID basically transferring to the wrong contact
571 ([12639](https://github.com/civicrm/civicrm-core/pull/12639))**
573 - **Fix bug whereby sorting by state province gives an error in search builder
574 ([13748](https://github.com/civicrm/civicrm-core/pull/13748))**
576 - **Fix Contact.create calls to respect passed in variables & variables set via
577 hook for sort_name & display_name
578 ([13863](https://github.com/civicrm/civicrm-core/pull/13863))**
580 - **Do not cause a fatal error if no contact_id field for a note is filled in
581 when viewing contact notes
582 ([13910](https://github.com/civicrm/civicrm-core/pull/13910))**
584 - **Disable phpcs checking in the Crypt files where mcrypt functions are
585 ([14031](https://github.com/civicrm/civicrm-core/pull/14031))**
587 - **Fix 4.7.31 Upgrade in multilingual mode
588 ([14003](https://github.com/civicrm/civicrm-core/pull/14003))**
590 - **Optimise the loading of the CiviCRM Deduplication Exception page
591 ([13435](https://github.com/civicrm/civicrm-core/pull/13435))**
593 - **Unfork Zetacomponents mail and use patch to apply differences
594 ([13934](https://github.com/civicrm/civicrm-core/pull/13934))**
596 - **Update lockfile to take into account of civicrm/zetacomponents-mail#4 being
597 merged ([13822](https://github.com/civicrm/civicrm-core/pull/13822))**
599 - **Upgrade zetacomponents/base and zetacomponents/mail
600 ([13799](https://github.com/civicrm/civicrm-core/pull/13799))**
602 - **[dev/core#771](https://lab.civicrm.org/dev/core/issues/771) Smart group with
603 uf_group_id does not load contacts with same search profile
604 ([13742](https://github.com/civicrm/civicrm-core/pull/13742))**
608 - **[dev/core#784](https://lab.civicrm.org/dev/core/issues/784) Creating a new
609 relationship type while editing case type definition adds a blank row in the
610 roles section ([13785](https://github.com/civicrm/civicrm-core/pull/13785))**
612 - **PHP warnings on Case Dashboard and Find Cases
613 ([13998](https://github.com/civicrm/civicrm-core/pull/13998))**
617 - **[dev/core#571](https://lab.civicrm.org/dev/core/issues/571) Can't
618 self-service cancel a recurring contribution made while you're logged in
619 ([13237](https://github.com/civicrm/civicrm-core/pull/13237))**
621 This change makes it so that users without "edit contributions" permission can
622 edit their own recurring contribution subscriptions if they are logged in,
623 before this change they could only edit their own contribution subscriptions
624 thru a checksum link.
626 - **Possible paypal fix to avoid sending 500 errors from ipn triggerred by
628 ([13867](https://github.com/civicrm/civicrm-core/pull/13867))**
630 Fixes paypal system sending a warning email when there is a failed IPN call
631 (500 errors from ipn triggered by non-recurring payment).
633 - **[dev/core#704](https://lab.civicrm.org/dev/core/issues/704) Missing links to
634 cancel recurring payments (regression .. sorta)
635 ([13935](https://github.com/civicrm/civicrm-core/pull/13935))**
637 Fixes a 5.8 regression where the cancel link became unavailable on recurring
638 contributions with no attached payment processor id.
640 - **Improve flushing after creating a processor so it can be used for a
641 recurring in the same run
642 ([14009](https://github.com/civicrm/civicrm-core/pull/14009))**
644 This change ensures tests run properly by flushing caches when creating a
647 - **Flush ContributionRecur static cache when flushing processors
648 ([13962](https://github.com/civicrm/civicrm-core/pull/13962))**
650 Ensures a (new) static cache is flushed when creating a processor, mostly
651 useful for unit testing.
653 - **Display test contributions when viewing contributions related to a test
654 recurring contribution
655 ([13779](https://github.com/civicrm/civicrm-core/pull/13779))**
659 - **[dev/core#253](https://lab.civicrm.org/dev/core/issues/253) Cancelling or An
660 Error during event registration payment should cancel all additional
661 participates ([12457](https://github.com/civicrm/civicrm-core/pull/12457))**
663 This fixes a bug where if a user was registering for an event with additional
664 participants, and for some reason the payment failed or the user decided to
665 cancel the payment, only the main user participant record was set to
666 "canceled", the rest of the additional participants would have the status
667 "pending incomplete transaction" so that all participant statuses are changed
670 - **Event Cart: Fix PHP 7.2 fatal error (pass by ref)
671 ([13927](https://github.com/civicrm/civicrm-core/pull/13927))**
673 Fixes a Fatal error when using Event cart and PHP 7.2, specifically when
676 - **CRM/Event - Fix participant note search parameter being ignored
677 ([13697](https://github.com/civicrm/civicrm-core/pull/13697))**
679 This change ensures that when searching by "Participant Note" on the "Search
680 Builder form the filter is applied.
682 - **BAO_Participant - Use default status if not specified for create
683 ([13875](https://github.com/civicrm/civicrm-core/pull/13875))**
685 This change fixes a api4 test failure by ensuring that the default value of
686 'status_id' is respected by the Participant BAO. Before this change the
687 'status_id' had a default value and thus was not required but the BAO would
688 not work correctly if a 'status_id' was not supplied. After this change the
689 'status_id' default is respected and the BAO works regardless of whether the
690 'status_id' is supplied.
694 - **PHP Error on Grant Detail Report
695 ([13883](https://github.com/civicrm/civicrm-core/pull/13883))**
697 Fixes a PHP error when viewing the "Grant Detail Report" for sites running PHP
702 - **[dev/core#836](https://lab.civicrm.org/dev/core/issues/836) Do not track CSS
703 urls ([13920](https://github.com/civicrm/civicrm-core/pull/13920))**
705 Ensures CiviMail does not convert css URLs into trackable URLs.
709 - **Disabling or deleting Expired status breaks membership status update
710 ([13259](https://github.com/civicrm/civicrm-core/pull/13259))**
712 This change ensures that deleting, disabling or renaming the "Expired"
713 membership status does not cause issues when running the "Membership status
714 processor" scheduled job. Before this change deleting, disabling or renaming
715 the "Expired" membership status would result in the "Membership status
716 processor" scheduled job failing with the message `Finished execution of
717 Membership status processor with result: Failure, Error message: A fatal error
718 was triggered: One of parameters (value: ) is not of the type Integer`.
720 - **Fatal error to exception on Membership BAO
721 ([13774](https://github.com/civicrm/civicrm-core/pull/13774))**
723 This change improves experience by throwing an exception instead of a fatal
726 ### Backdrop Integration
728 - **civicrm/admin/setting/uf - Fix advice about Backdrop Views
730 ([13803](https://github.com/civicrm/civicrm-core/pull/13803))**
732 This change updates the advice for configuring views on the
733 `civicrm/admin/setting/uf` form so that it works for Backdrop sites.
735 ### Drupal Integration
737 - **[dev/drupal#42](https://lab.civicrm.org/dev/drupal/issues/42) Drupal8: Can't
738 upload images via CKEditor/kcfinder
739 ([242](https://github.com/civicrm/civicrm-packages/pull/242))**
741 Makes it so on Drupal 8 sites users can upload and browse images in KCFinder.
743 ## <a name="misc"></a>Miscellany
745 - **Fix E-notice in IDS
746 ([247](https://github.com/civicrm/civicrm-packages/pull/247))**
748 - **Update 7.x Drupal code to be that of the new coder style
749 ([571](https://github.com/civicrm/civicrm-drupal/pull/571))**
751 - **Fix up to newer coder style
752 ([69](https://github.com/civicrm/civicrm-backdrop/pull/69))**
754 - **Remove now-obsolete additionalFromClause parameter from prepareOrderBy
755 ([13874](https://github.com/civicrm/civicrm-core/pull/13874))**
757 - **Remove switch statement that no longer switches
758 ([13886](https://github.com/civicrm/civicrm-core/pull/13886))**
760 - **Add Unit test for export with incomplete data
761 ([13904](https://github.com/civicrm/civicrm-core/pull/13904))**
763 - **As discussed, delete webtests
764 ([13861](https://github.com/civicrm/civicrm-core/pull/13861))**
766 - **Add a class to handle test entities consistently
767 ([13814](https://github.com/civicrm/civicrm-core/pull/13814))**
769 - **Fix up composer for composer 2.0 compatibility
770 ([13872](https://github.com/civicrm/civicrm-core/pull/13872))**
772 - **Remove Log.php from the Original folder as well
773 ([245](https://github.com/civicrm/civicrm-packages/pull/245))**
775 - **Remove log files as now supplied by composer
776 ([244](https://github.com/civicrm/civicrm-packages/pull/244))**
778 - **Remove htmlpurifier from within the IDS to facilitate it being provided by
779 composer ([246](https://github.com/civicrm/civicrm-packages/pull/246))**
781 - **Remove Log.php require_once statements
782 ([13842](https://github.com/civicrm/civicrm-core/pull/13842))**
785 ([243](https://github.com/civicrm/civicrm-packages/pull/243))**
787 - **Remove amavisd now that it is removed from the packages repository
788 ([13841](https://github.com/civicrm/civicrm-core/pull/13841))**
790 - **Upgrade htmlpurifier to 4.10 to support PHP7.2 and install via composer
791 ([13840](https://github.com/civicrm/civicrm-core/pull/13840))**
793 - **Refactor CRM_Contact_Form_Task_PDFLetterCommon
794 ([13892](https://github.com/civicrm/civicrm-core/pull/13892))**
796 - **Reformat test files for array format
797 ([13862](https://github.com/civicrm/civicrm-core/pull/13862))**
799 - **Logging - attempt to fix tests
800 ([13832](https://github.com/civicrm/civicrm-core/pull/13832))**
802 - **Try Reverting commit removing require once to see if it fixes the problem
803 for api4 ([13870](https://github.com/civicrm/civicrm-core/pull/13870))**
806 ([13823](https://github.com/civicrm/civicrm-core/pull/13823))**
808 - **Add shared parent for ContributionRecur forms
809 ([13931](https://github.com/civicrm/civicrm-core/pull/13931))**
811 - **Update PHPWord Patches to match the latest versions of their code
812 ([13923](https://github.com/civicrm/civicrm-core/pull/13923))**
814 - **Extract assignPaymentFields
815 ([13957](https://github.com/civicrm/civicrm-core/pull/13957))**
817 - **Move code to assign tax information into shared parent
818 ([13899](https://github.com/civicrm/civicrm-core/pull/13899))**
820 - **Update test to reflect recently merged PR lower permission to access
821 dedupecheck ([13866](https://github.com/civicrm/civicrm-core/pull/13866))**
823 - **Test fix ([13856](https://github.com/civicrm/civicrm-core/pull/13856))**
825 - **Add unit testing for activity creation when cancelling a recurring, related
826 cleanup ([14000](https://github.com/civicrm/civicrm-core/pull/14000))**
828 - **Improve test coverage for CRM_Utils_Color::getRgb()
829 ([14007](https://github.com/civicrm/civicrm-core/pull/14007))**
831 - **Add in tests of purifying HTML output
832 ([13845](https://github.com/civicrm/civicrm-core/pull/13845))**
834 - **[dev/core#562](https://lab.civicrm.org/dev/core/issues/562) remove more
835 instances of ->free()
836 ([13786](https://github.com/civicrm/civicrm-core/pull/13786)) Continued Work**
838 - **(NFC) Ensure phpcs ignores eval notice in these files as it is required
839 ([14032](https://github.com/civicrm/civicrm-core/pull/14032))**
841 - **(NFC) Lint additional php files up to the new coder standard
842 ([14025](https://github.com/civicrm/civicrm-core/pull/14025))**
844 - **Port Code Style Fixes to 5.13 from master
845 ([14026](https://github.com/civicrm/civicrm-core/pull/14026))**
847 - **(NFC) Update CRM/Core CRM/Custom CRM/Dedupe to match the new coder style
848 ([14023](https://github.com/civicrm/civicrm-core/pull/14023))**
850 - **(NFC) Update CRM/Event folder for the new coder style
851 ([14019](https://github.com/civicrm/civicrm-core/pull/14019))**
853 - **(NFC) update CRM/Contribute to be the new coder standard
854 ([14021](https://github.com/civicrm/civicrm-core/pull/14021))**
856 - **(NFC) Update CRM/Friend CRM/Grant CRM/Group CRM/Mailing to be up to d…
857 ([14016](https://github.com/civicrm/civicrm-core/pull/14016))**
859 - **(NFC) Update CRM/Badge CRM/Campaign CRM/Case to be up to date with a …
860 ([14017](https://github.com/civicrm/civicrm-core/pull/14017))**
862 - **(NFC) Update CRM/Cxn CRM/Dashlet CRM/Export CRM/Extension and CRM/Fin…
863 ([14018](https://github.com/civicrm/civicrm-core/pull/14018))**
865 - **[NFC] Short array syntax - auto convert settings dir
866 ([14005](https://github.com/civicrm/civicrm-core/pull/14005))**
868 - **(NFC) SchemaStructure.php - Fix up mismatch between stored+generated code
869 ([14046](https://github.com/civicrm/civicrm-core/pull/14046))**
871 - **Arg I put these fixes in 5.12 & master while trying for 5.13
872 ([14036](https://github.com/civicrm/civicrm-core/pull/14036))**
874 - **(NFC) Update CRM/Member CRM/Note CRM/Logging CRM/Import and CRM/Price…
875 ([13992](https://github.com/civicrm/civicrm-core/pull/13992))**
877 - **(REF) CRM_Core_Resources - Move hook declaration from addCoreResources() to
878 Container.php ([14008](https://github.com/civicrm/civicrm-core/pull/14008))**
880 - **(NFC) Update CRM/Activity CRM/Admin and CRM/Batch folders to be the f…
881 ([13990](https://github.com/civicrm/civicrm-core/pull/13990))**
883 - **(NFC) Update coding style in PCP, Pledge, Profile, Queue, Report folders
884 ([13987](https://github.com/civicrm/civicrm-core/pull/13987))**
886 - **(NFC) Update CRM/SMS/ CRM/UF/ CRM/Upgrade/ CRM/Tag/ to be up to speed…
887 ([13986](https://github.com/civicrm/civicrm-core/pull/13986))**
889 - **(NFC) Bring CRM/Utils folder up to future coder standards
890 ([13985](https://github.com/civicrm/civicrm-core/pull/13985))**
892 - **(NFC) Set _log and _tableName variables to be public
893 ([13988](https://github.com/civicrm/civicrm-core/pull/13988))**
895 - **[unreleased regression] Add error handling for when no test procesor row
896 exists. ([13947](https://github.com/civicrm/civicrm-core/pull/13947))**
899 ([13960](https://github.com/civicrm/civicrm-core/pull/13960))**
901 - **Update Unit test styling to cover the future coder version
902 ([13983](https://github.com/civicrm/civicrm-core/pull/13983))**
904 - **(NFC) Fix location of comment to match future coder version
905 ([13984](https://github.com/civicrm/civicrm-core/pull/13984))**
907 - **(NFC) Bring up API folder to style of future coder checker
908 ([13980](https://github.com/civicrm/civicrm-core/pull/13980))**
910 - **(NFC) Upgrade Civi Folder to the new coder version
911 ([13981](https://github.com/civicrm/civicrm-core/pull/13981))**
913 - **(NFC) Update various files to pass future civicrm/coder ruleset
914 ([13979](https://github.com/civicrm/civicrm-core/pull/13979))**
916 - **(NFC) Update various files to pass current phpcs
917 ([13978](https://github.com/civicrm/civicrm-core/pull/13978))**
919 - **[NFC] Reformat tricksy file CRM_Mailing_BAO_Mailing
920 ([13973](https://github.com/civicrm/civicrm-core/pull/13973))**
922 - **[NFC] Reformat tricksy file CRM/Contribute/Import/Form/MapField
923 ([13974](https://github.com/civicrm/civicrm-core/pull/13974))**
925 - **[NFC] short array syntax Autoformat - just the tricksy bits of CRM/Activity
926 ([13969](https://github.com/civicrm/civicrm-core/pull/13969))**
928 - **[NFC] array format tricksie file CRM/Admin/Form/MessageTemplates
929 ([13970](https://github.com/civicrm/civicrm-core/pull/13970))**
931 - **[NFC] array format tricksie file CRM_Utils_Rest
932 ([13971](https://github.com/civicrm/civicrm-core/pull/13971))**
934 - **[NFC] array formatting tricksy tricksie file (another CRM/UF/Form/Group.php)
935 ([13972](https://github.com/civicrm/civicrm-core/pull/13972))**
937 - **[NFC] short array syntax Autoformat - just CRM/ACL dir
938 ([13968](https://github.com/civicrm/civicrm-core/pull/13968))**
940 - **[NFC] Short array syntax - auto-format CRM directory
941 ([13915](https://github.com/civicrm/civicrm-core/pull/13915))**
943 - **[REF] extract token functions
944 ([13967](https://github.com/civicrm/civicrm-core/pull/13967))**
946 - **Test fix ([13949](https://github.com/civicrm/civicrm-core/pull/13949))**
948 - **Payment test cleanup
949 ([13924](https://github.com/civicrm/civicrm-core/pull/13924))**
951 - **(NFC) Fix mode on files
952 ([13933](https://github.com/civicrm/civicrm-core/pull/13933))**
954 - **[NFC] Cleanup DAO factory classes for code standards
955 ([13922](https://github.com/civicrm/civicrm-core/pull/13922))**
957 - **NFC - Short array syntax - auto-convert ang dir
958 ([13912](https://github.com/civicrm/civicrm-core/pull/13912))**
960 - **NFC - Short array syntax - auto-convert Civi dir
961 ([13911](https://github.com/civicrm/civicrm-core/pull/13911))**
963 - **[NFC] Short array syntax - auto-convert api dir
964 ([13909](https://github.com/civicrm/civicrm-core/pull/13909))**
966 - **Minor code cleanup
967 ([13839](https://github.com/civicrm/civicrm-core/pull/13839))**
969 - **Minor code cleanup - remove unnecessary ids declaration
970 ([13838](https://github.com/civicrm/civicrm-core/pull/13838))**
972 - **Code cleanup on membership block loop
973 ([13851](https://github.com/civicrm/civicrm-core/pull/13851))**
975 - **[NFC] IDE formatting only
976 ([13896](https://github.com/civicrm/civicrm-core/pull/13896))**
978 - **Minor code cleanups around invoicing assignment
979 ([13857](https://github.com/civicrm/civicrm-core/pull/13857))**
981 - **[nfc] Reset entire session object between tests
982 ([13878](https://github.com/civicrm/civicrm-core/pull/13878))**
984 - **Fixing formatting of contributors section
985 ([13860](https://github.com/civicrm/civicrm-core/pull/13860))**
987 - **[NFC] code formatting only
988 ([13846](https://github.com/civicrm/civicrm-core/pull/13846))**
990 - **[NFC] Code reformatting
991 ([13849](https://github.com/civicrm/civicrm-core/pull/13849))**
993 - **Add comments about usage for doPayment() function
994 ([13812](https://github.com/civicrm/civicrm-core/pull/13812))**
996 - **[nfc] Attempt to improve false negatives on Logging test
997 ([13829](https://github.com/civicrm/civicrm-core/pull/13829))**
999 - **[NFC] remove unnecessary variable
1000 ([13836](https://github.com/civicrm/civicrm-core/pull/13836))**
1002 - **REF Extract case action links into a separate function to facilitate
1003 refactoring ([13793](https://github.com/civicrm/civicrm-core/pull/13793))**
1005 - **(NFC, infra/ops#878) AssetBuilderTest - Relax getUrl() assertion for WP
1006 compat ([13826](https://github.com/civicrm/civicrm-core/pull/13826))**
1008 - **NFC Whitespace cleanup MembershipBlock.tpl
1009 ([13830](https://github.com/civicrm/civicrm-core/pull/13830))**
1011 - **Further cleanup on getRelatedMemberships - just get them with the api
1012 ([13797](https://github.com/civicrm/civicrm-core/pull/13797))**
1014 - **[REF] small cleanups on payment.create flow.
1015 ([13778](https://github.com/civicrm/civicrm-core/pull/13778))**
1017 - **[NFC] reformat Contact api file to switch to new array formatting
1018 ([13806](https://github.com/civicrm/civicrm-core/pull/13806))**
1020 - **[REF] minor code simplification - remove over-handling of amount comp with
1021 zero ([13783](https://github.com/civicrm/civicrm-core/pull/13783))**
1023 - **Attempted test fix
1024 ([13791](https://github.com/civicrm/civicrm-core/pull/13791))**
1026 - **Remove reference to google checkout
1027 ([13784](https://github.com/civicrm/civicrm-core/pull/13784))**
1029 - **[NFC] template whitespace cleanup
1030 ([13782](https://github.com/civicrm/civicrm-core/pull/13782))**
1032 - **(NFC) Update for compliance with next phpcs standard
1033 ([577](https://github.com/civicrm/civicrm-drupal/pull/577))**
1035 - **Lint .inc files in Drupal module folder to match newer coder standard
1036 ([574](https://github.com/civicrm/civicrm-drupal/pull/574))**
1038 - **(NFC) Get phpcs to ignore the use of eval in this file as it is required
1039 ([575](https://github.com/civicrm/civicrm-drupal/pull/575))**
1041 - **(NFC) Update for compliance with next phpcs standard
1042 ([72](https://github.com/civicrm/civicrm-backdrop/pull/72))**
1044 - **(NFC) Lint .inc files and ensure that the eval usage in tests/phpunit…
1045 ([71](https://github.com/civicrm/civicrm-backdrop/pull/71))**
1047 ## <a name="credits"></a>Credits
1049 This release was developed by the following code authors:
1051 AGH Strategies - Alice Frumin, Andrew Hunt, Eli Lisseck;
1052 Agileware - Alok Patel, Francis Whittle;
1053 Australian Greens - Seamus Lee;
1054 calibrate - Wouter Hechtermans;
1056 CiviCRM - Coleman Watts, Tim Otten;
1057 CiviDesk - Yashodha Chaku;
1058 CompuCorp - Omar Abu Hussein;
1059 Coop SymbioTIC - Mathieu Lutfy;
1061 Electronic Frontier Foundation - Mark Burdett;
1062 Freeform Solutions - Herb van den Dool;
1063 Fuzion - Jitendra Purohit;
1064 GreenPeace Central and Eastern Europe - Patrick Figel;
1065 JMA Consulting - Monish Deb;
1066 Megaphone Technology Consulting - Jon Goldberg;
1067 MJW Consulting - Matthew Wire;
1069 Skvare - Mark Hanna;
1070 Squiffle Consulting - Aidan Saunders;
1072 Timbsoft Technologies - Tunbola Ogunwande;
1073 Wikimedia Foundation - Eileen McNaughton
1075 Most authors also reviewed code for this release; in addition, the following
1076 reviewers contributed their comments:
1078 Agileware - Justin Freeman;
1080 Artful Robot - Rich Lott;
1081 British Humanist Association - Andrew West;
1082 Circle Interactive - Dave Jenkins;
1084 Coop SymbioTIC - Samuel Vanhove;
1086 JMA Consulting - Joe Murray;
1087 Joinery - Allen Shaw;
1089 Korlon - Stuart Gaston;
1090 Lighthouse Design and Consulting - Brian Shaughnessy;
1093 Tadpole Collective - Kevin Cristiano;
1095 ## <a name="feedback"></a>Feedback
1097 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
1098 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
1099 and contact `@agh1`.