Merge pull request #23809 from eileenmcnaughton/invoice_recur
[civicrm-core.git] / release-notes / 5.13.0.md
1 # CiviCRM 5.13.0
2
3 Released May 1, 2019
4
5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
11
12 ## <a name="synopsis"></a>Synopsis
13
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | no |
17 | **Change the database schema?** | **yes** |
18 | **Alter the API?** | **yes** |
19 | **Require attention to configuration options?** | **yes** |
20 | **Fix problems installing or upgrading to a previous version?** | **yes** |
21 | **Introduce features?** | **yes** |
22 | **Fix bugs?** | **yes** |
23
24 ## <a name="features"></a>Features
25
26 ### Core CiviCRM
27
28 - **Configurable menubar color
29 ([13996](https://github.com/civicrm/civicrm-core/pull/13996))**
30
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).
36
37 - **Menu config screen improvements
38 ([14002](https://github.com/civicrm/civicrm-core/pull/14002))**
39
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
44 CiviCRM icon.
45
46 - **What to do with the merge screen
47 ([dev/core#824](https://lab.civicrm.org/dev/core/issues/824):
48 [13898](https://github.com/civicrm/civicrm-core/pull/13898) and
49 [13895](https://github.com/civicrm/civicrm-core/pull/13895)) CONTINUES WORK**
50
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.
54
55 - **Mutliple activity type filters on activity tab on contact records
56 ([13873](https://github.com/civicrm/civicrm-core/pull/13873))**
57
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.
61
62 - **Added a DB check to prevent deleting exisiting CiviCRM data from database.
63 ([13944](https://github.com/civicrm/civicrm-core/pull/13944))**
64
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.
68
69 - **Encourage developers to use .then instead of .done
70 ([13982](https://github.com/civicrm/civicrm-core/pull/13982))**
71
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()`.
75
76 - **Replace jcalendar instances with datepicker
77 ([dev/core#561](https://lab.civicrm.org/dev/core/issues/561):
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)) CONTINUES WORK**
83
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.
89
90 - **Expose sort_name as a dedupe-matchable field
91 ([13864](https://github.com/civicrm/civicrm-core/pull/13864))**
92
93 Allow sort_name to be used in dedupe rules.
94
95 - **Standardise setTitle method on forms
96 ([13781](https://github.com/civicrm/civicrm-core/pull/13781))**
97
98 Makes the title of a form available in the buildForm hook.
99
100 - **Send action links on any page that extends CRM_Core_Page_Basic thru
101 hook_civicrm_links
102 ([13068](https://github.com/civicrm/civicrm-core/pull/13068))**
103
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.
108
109 - **Improve lock handling for mysql 5.7.5+
110 ([CRM-18011](https://issues.civicrm.org/jira/browse/CRM-18011):
111 [13854](https://github.com/civicrm/civicrm-core/pull/13854))**
112
113 Ensures mysql locks are supported on mysql 5.7.5+ and MariaDB '10.0.2'+.
114
115 - **Deploy PEAR Log package and upgrade to latest version in the process
116 ([13835](https://github.com/civicrm/civicrm-core/pull/13835))**
117
118 Upgrades the PEAR Log package version and deploys it via
119 composer.
120
121 - **Make cacheCode optional in CRM.loadScript
122 ([13824](https://github.com/civicrm/civicrm-core/pull/13824))**
123
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.
127
128 - **Load hooks during upgrade mode
129 ([13551](https://github.com/civicrm/civicrm-core/pull/13551))**
130
131 Allow extensions to load hooks during an upgrade.
132
133 - **Checkbox to explicitly change employer when sharing address
134 ([CRM-21008](https://issues.civicrm.org/jira/browse/CRM-21008):
135 [13700](https://github.com/civicrm/civicrm-core/pull/13700))**
136
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.
141
142 - **Report improvements
143 ([CRM-21677](https://issues.civicrm.org/jira/browse/CRM-21677):
144 [13792](https://github.com/civicrm/civicrm-core/pull/13792),
145 [13790](https://github.com/civicrm/civicrm-core/pull/13790) and
146 [13780](https://github.com/civicrm/civicrm-core/pull/13780))**
147
148 These changes improve reports by removing redundant birth date and gender
149 evaluation code.
150
151 - **Contact Subtype field at Reports does not support contacts with multiple
152 subtypes ([dev/core/544](https://lab.civicrm.org/dev/core/issues/544):
153 [13158](https://github.com/civicrm/civicrm-core/pull/13158) and
154 [13908](https://github.com/civicrm/civicrm-core/pull/13908))**
155
156 Makes reports support filtering on multiple contact subtypes.
157
158 - **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
159 ([dev/core#560](https://lab.civicrm.org/dev/core/issues/560):
160 [13850](https://github.com/civicrm/civicrm-core/pull/13850)) CONTINUES WORK**
161
162 Updates Cancel Billing & Update Billing screens to use status bounce rather
163 than throw a fatal error.
164
165 - **Activity tab performance fix - switch to faster getActivities &
166 getActivitiesCount
167 ([13768](https://github.com/civicrm/civicrm-core/pull/13768))**
168
169 Performance improvement when loading the activity tab for a contact.
170
171 - **Add hook findDuplicates
172 ([13234](https://github.com/civicrm/civicrm-core/pull/13234))**
173
174 Adds the hook findDuplicates which provides the ability for extensions to
175 intercept and/or override core duplicate checking when
176 registering/contributing.
177
178 - **Deadlocks and performance issues when using smartgroups / ACLs extensively
179 ([dev/core#748](https://lab.civicrm.org/dev/core/issues/748):
180 [13772](https://github.com/civicrm/civicrm-core/pull/13772)) CONTINUES WORK**
181
182 Improves performance by switching the alphabetQuery to use new
183 getSearchSQLParts() function.
184
185 - **Improve data when known time-dependent-failing test fails
186 ([13964](https://github.com/civicrm/civicrm-core/pull/13964))**
187
188 Improves output data when time dependent tests fail.
189
190 - **Use TempTable methods.
191 ([13880](https://github.com/civicrm/civicrm-core/pull/13880),
192 [13865](https://github.com/civicrm/civicrm-core/pull/13865),
193 [13819](https://github.com/civicrm/civicrm-core/pull/13819),
194 [13848](https://github.com/civicrm/civicrm-core/pull/13848),
195 [13847](https://github.com/civicrm/civicrm-core/pull/13847) and
196 [13703](https://github.com/civicrm/civicrm-core/pull/13703))**
197
198 These changes move towards using the TempTable class to improve
199 naming standards, including but not limited to the following places: when
200 creating the dedupe table, on the contribution detail report, on the
201 bookkeeping report and when debugging.
202
203 - **Allow extensions to enable validate.tpl
204 ([13961](https://github.com/civicrm/civicrm-core/pull/13961))**
205
206 This change makes it possible for extensions to add a validate.tpl which
207 provides front end javascript validation, which improves user experience by
208 making it so users do not have to refresh the page to see validation issues.
209
210 - **Promise polyfill for older browsers
211 ([13955](https://github.com/civicrm/civicrm-core/pull/13955))**
212
213 Loads a polyfill for IE aQnd other outdated browsers so developers can use
214 native js Promises in our code.
215
216 ### CiviCase
217
218 - **Case Activity Assignment Restriction
219 ([dev/core#641](https://lab.civicrm.org/dev/core/issues/641):
220 [13541](https://github.com/civicrm/civicrm-core/pull/13541))**
221
222 Makes it possible to restrict the assignment of case activities to
223 a group or to contacts having user accounts.
224
225 ### CiviContribute
226
227 - **Add cancel_reason field to civicrm_contribution_recur table
228 ([dev/core#830](https://lab.civicrm.org/dev/core/issues/830):
229 [13930](https://github.com/civicrm/civicrm-core/pull/13930),
230 [13999](https://github.com/civicrm/civicrm-core/pull/13999), and
231 [14164](https://github.com/civicrm/civicrm-core/pull/14164))**
232
233 Adds a recur cancel reason field `civicrm_contribution_recur.cancel_reason
234 field`.
235
236 - **Add ID / Test ID for payment processors to list - makes setup of IPNs much
237 easier! ([13869](https://github.com/civicrm/civicrm-core/pull/13869))**
238
239 Adds a column for payment processor id and test payment processor id to the
240 table of "Settings - Payment Processors" page so that users can more easily
241 access these ids.
242
243 - **Add payment_processor column/filter to recurring contribution report
244 ([13699](https://github.com/civicrm/civicrm-core/pull/13699))**
245
246 On the "Recurring Contribution" report, this adds "Payment Processor" as an
247 option to the Column and Filter tabs enabling users to filter this report by
248 "Payment Processor" and/or include a column for "Payment Processor".
249
250 - **Payment processor names: separate internal and external usage
251 ([dev/financial#2](https://lab.civicrm.org/dev/financial/issues/2):
252 [13995](https://github.com/civicrm/civicrm-core/pull/13995) and
253 [13954](https://github.com/civicrm/civicrm-core/pull/13954))**
254
255 Adds the field `payment_processor.title` to the schema and makes it
256 translatable.
257
258 - **Support paying refunds
259 ([dev/financial#38](https://lab.civicrm.org/dev/financial/issues/38):
260 [13952](https://github.com/civicrm/civicrm-core/pull/13952)) BEGINS WORK**
261
262 Adds a PaymentProcessor.refund API which makes it possible for payment
263 processor extension authors to have their extensions issue refund payments.
264
265 - **Add minimal PaymentProcessor.pay api
266 ([13953](https://github.com/civicrm/civicrm-core/pull/13953))**
267
268 Adds a new api PaymentProcessor.pay.
269
270 - **Include lower level data when throwing an exception on payment processor.pay
271 ([14006](https://github.com/civicrm/civicrm-core/pull/14006))**
272
273 Improves error processing when using the PaymentProcessor.pay api.
274
275 - **Add billingblock region to event registration thankyou to match contribution
276 thankyou ([13762](https://github.com/civicrm/civicrm-core/pull/13762))**
277
278 This change makes it so one can use the same method to
279 replace billingblock for both event and contribution thankyou workflows.
280
281 - **CQ: Refactor Recurring Contribution Forms
282 ([dev/core#846](https://lab.civicrm.org/dev/core/issues/846):
283 [13940](https://github.com/civicrm/civicrm-core/pull/13940)) BEGINS WORK**
284
285 Begins work to refactor recurring contribution forms specifically by
286 rationalizing url variables into shared parent for recurring contribution
287 forms.
288
289 - **Use label not name for payment processor type
290 ([13885](https://github.com/civicrm/civicrm-core/pull/13885))**
291
292 On the "Settings - Payment Processor" page changes the "Processor Type" column
293 to use the label instead of the name.
294
295 - **Improve ContributionPage.validate api
296 ([13798](https://github.com/civicrm/civicrm-core/pull/13798))**
297
298 Makes it so that one can use the ContributionPage validate api on POST, for
299 example when using Paypal Checkout which calls a Promise, the
300 ContributionPage.validate api could be called to determine whether to proceed
301 after the button is pushed.
302
303 - **Add pseudoconstant support for payment_processor_id on ContributionRecur
304 ([13698](https://github.com/civicrm/civicrm-core/pull/13698))**
305
306 - **Allow payment processor to determine the text around 'continue'
307 ([13787](https://github.com/civicrm/civicrm-core/pull/13787))**
308
309
310 ### CiviEvent
311
312 - **Expose Registered by Participant Name field to participant report
313 ([dev/core#835](https://lab.civicrm.org/dev/core/issues/835):
314 [13936](https://github.com/civicrm/civicrm-core/pull/13936))**
315
316 Exposes "Registered by Participant Name" field to participant reports.
317
318 ### CiviMail
319
320 - **Report results don't show inactive campaigns
321 ([dev/core#491](https://lab.civicrm.org/dev/core/issues/491):
322 [13383](https://github.com/civicrm/civicrm-core/pull/13383))**
323
324 Standardizes the way campaign fields are added to the "Mailing Summary"
325 report.
326
327 - **Use Mailing.preview API to display mailing in browser
328 ([14163](https://github.com/civicrm/civicrm-core/pull/14163))**
329
330 This resolves an error on sites with Flexmailer when an anonymous visitor
331 views a mailing in the browser.
332
333 ### CiviMember
334
335 - **Membership form address fields for payment processors
336 ([13802](https://github.com/civicrm/civicrm-core/pull/13802))**
337
338 Standardizes processing and validating address parameters on the
339 Membership form.
340
341 ### Wordpress Integration
342
343 - **Cleaner front-end URLs
344 ([144](https://github.com/civicrm/civicrm-wordpress/pull/144))**
345
346 Makes Wordpress URLs have the same structure as Drupal URLs ex:
347 `https://domain.tld/civicrm/contribute/transact/?reset=1&id=1 as opposed to
348 old` Wordpress URLs that looked like
349 `https://domain.tld/civicrm/?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=1`
350
351 ## <a name="bugs"></a>Bugs resolved
352
353 ### Core CiviCRM
354
355 - **Add a test matrix for E2E tests on each CMS
356 ([infra/ops#878](https://lab.civicrm.org/infra/ops/issues/878):
357 [13810](https://github.com/civicrm/civicrm-core/pull/13810),
358 [13826](https://github.com/civicrm/civicrm-core/pull/13826) and
359 [13811](https://github.com/civicrm/civicrm-core/pull/13811)) CONTINUES WORK**
360
361 These changes resolve bugs when running E2E tests on WordPress moving the
362 project towards the goal of having a test matrix for E2E tests for each CMS
363 that CiviCRM is compatible with.
364
365 - **Use the correct membership date for the notification that appear after
366 completing the membership payment in case pre hook is used
367 ([dev/core#288](https://lab.civicrm.org/dev/core/issues/288):
368 [12583](https://github.com/civicrm/civicrm-core/pull/12583))**
369
370 This change ensures that any changes made to the membership dates using
371 hook_civicrm_pre are taken into account when generating the membership payment
372 notification.
373
374 - **Custom Field checkbox value renders empty if the values are randomly sorted
375 ([dev/core#499](https://lab.civicrm.org/dev/core/issues/499):
376 [13051](https://github.com/civicrm/civicrm-core/pull/13051))**
377
378 This change ensures that the values selected by a user for alphanumeric
379 checkbox custom fields render properly in view mode.
380
381 - **New Organisation: "Check For Matching Contact (S)" button does not find
382 matching records ([dev/core#570](https://lab.civicrm.org/dev/core/issues/570):
383 [13398](https://github.com/civicrm/civicrm-core/pull/13398))**
384
385 This change ensures that "Check For Matching Contact(s)" retrieves
386 contacts for users with limited permissions.
387
388 - **Soft Credits Multiply GIft Amount in Contribution Detail Report
389 ([dev/core#655](https://lab.civicrm.org/dev/core/issues/655):
390 [13906](https://github.com/civicrm/civicrm-core/pull/13906))**
391
392 This change updates the Contribution Detail report so that the "Total Amount"
393 field is not summed because the summing of the "Total Amount" field was
394 leading to the "Total Amount" field for contributions with multiple soft
395 credits to be multiplied by the number of soft credits.
396
397 - **Add new indexes when updating log table schema regardless of engine change
398 ([dev/core#664](https://lab.civicrm.org/dev/core/issues/664):
399 [13462](https://github.com/civicrm/civicrm-core/pull/13462))**
400
401 This change makes it so that when the alterLogTables hook defines a new index
402 it is applied regardless of the engine.
403
404 - **Contacts -> New Email give Unknown Error in Smarty when Allow Mail to be
405 sent from logged in contact's email address disabled
406 ([dev/core#688](https://lab.civicrm.org/dev/core/issues/688):
407 [13508](https://github.com/civicrm/civicrm-core/pull/13508))**
408
409 This change fixes an error "Warning: Smarty error" when attempting to send an
410 email from Contacts -> New Email for sites with "Allow Mail to be sent from
411 logged in user" disabled.
412
413 - **Edit contribution : wrong decimal separator on total_amount for
414 participant(s) ([dev/core#706](https://lab.civicrm.org/dev/core/issues/706):
415 [13554](https://github.com/civicrm/civicrm-core/pull/13554))**
416
417 This change ensures that the decimal separator on total_amount field for
418 participant(s) is displayed as it is configured on the site.
419
420 - **Contact Report: The filter by the custom datetime field with "Today" option
421 doesn't find matching contacts
422 ([dev/core#709](https://lab.civicrm.org/dev/core/issues/709):
423 [13567](https://github.com/civicrm/civicrm-core/pull/13567))**
424
425 This change ensures that on the Contact Report, when using a filter for a
426 custom datetime field the "Today" option properly filters results.
427
428 - **Address API incorrectly sets state_province_id if multiple countries have
429 same state name / abbreviation
430 ([dev/core#725](https://lab.civicrm.org/dev/core/issues/725):
431 [13938](https://github.com/civicrm/civicrm-core/pull/13938))**
432
433 This change fixes a regression so that the Address API country_id parameter
434 works with an abbreviation or numeric id.
435
436 - **Advanced Search: There is an Internal Server Error (500) when the user tries
437 to search by the "Mailing List" group type
438 ([dev/core#726](https://lab.civicrm.org/dev/core/issues/726):
439 [13603](https://github.com/civicrm/civicrm-core/pull/13603) and
440 [13888](https://github.com/civicrm/civicrm-core/pull/13888))**
441
442 Fixes a bug where searching by a group type (ex: Mailing List) on the Advanced
443 Search form would result in a fatal error so that this search runs as
444 expected.
445
446 - **Notes: It isn't possible to edit note if the user uploaded an image larger
447 than 3 MByte(s) ([dev/core#740](https://lab.civicrm.org/dev/core/issues/740):
448 [13640](https://github.com/civicrm/civicrm-core/pull/13640))**
449
450 This change makes it so that it is possible to edit a note field
451 that includes images larger than 3 MByte(s).
452
453 - **Custom field caching is not group-specific
454 ([dev/core#755](https://lab.civicrm.org/dev/core/issues/755):
455 [13900](https://github.com/civicrm/civicrm-core/pull/13900))**
456
457 Adds the $groupTitle parameter to the cache key for custom fields, so field
458 names that exist in multiple groups will be cached separately.
459
460 - **Warning: A non-numeric value encountered in ...
461 ([dev/core#788](https://lab.civicrm.org/dev/core/issues/788):
462 [13795](https://github.com/civicrm/civicrm-core/pull/13795))**
463
464 This change fixes several warnings "Warning: A non-numeric value encountered
465 in ..." on contribution pages & event registrations forms.
466
467 - **PHP Warning "explode() expects parameter 2 to be string, array given" for
468 multi-value country fields
469 ([dev/core#795](https://lab.civicrm.org/dev/core/issues/795):
470 [13858](https://github.com/civicrm/civicrm-core/pull/13858))**
471
472 Fixes a PHP warning when updating a multiselect country field.
473
474 - **Prefix/suffix select2 renders oddly on public-facing pages
475 ([dev/core#798](https://lab.civicrm.org/dev/core/issues/798):
476 [13816](https://github.com/civicrm/civicrm-core/pull/13816))**
477
478 This change makes the Prefix/suffix select2's render full height (as opposed
479 to squished) in contribution/event profiles.
480
481 - **DB Error:: Already exists during renewing membership automatically
482 ([dev/core#806](https://lab.civicrm.org/dev/core/issues/806):
483 [13852](https://github.com/civicrm/civicrm-core/pull/13852))**
484
485 Fixes a DB error "already exists" when recording recurring payments with taxes
486 enabled.
487
488 - **Autocomplete select list disabled options
489 ([dev/core#811](https://lab.civicrm.org/dev/core/issues/811):
490 [13859](https://github.com/civicrm/civicrm-core/pull/13859))**
491
492 This change ensures that for select fields with autocomplete, only enabled
493 options autocomplete.
494
495 - **Search results: Actions: Export contacts: DB Error: Syntax error occurs when
496 not all necessary fields are selected
497 ([dev/core#819](https://lab.civicrm.org/dev/core/issues/819):
498 [13889](https://github.com/civicrm/civicrm-core/pull/13889))**
499
500 Resolves a fatal database error when attempting to export contacts without
501 selecting any fields to be exported.
502
503 - **Value in the "Contact Type" field disappears when the user tries to edit
504 Contact Details ([dev/core#823](https://lab.civicrm.org/dev/core/issues/823):
505 [13945](https://github.com/civicrm/civicrm-core/pull/13945))**
506
507 Ensures that when a user uses a profile with a contact sub type field to
508 update a contact that the contact sub type field pre-populates as expected.
509
510 - **Notice error while creating smart group using Contribution Aggregate custom
511 search ([dev/core#837](https://lab.civicrm.org/dev/core/issues/837):
512 [13921](https://github.com/civicrm/civicrm-core/pull/13921))**
513
514 Resolves "Notice: Undefined index:" errors when creating a smart group using
515 Contribution Aggregate custom search.
516
517 - **Notice error when deleting profile
518 ([dev/core#840](https://lab.civicrm.org/dev/core/issues/840):
519 [13926](https://github.com/civicrm/civicrm-core/pull/13926))**
520
521 Resolves a "Undefined property" notice when deleting a profile.
522
523 - **CQ: Use Guzzle as our preferred way to retrieve via http
524 ([dev/core#849](https://lab.civicrm.org/dev/core/issues/849):
525 [13946](https://github.com/civicrm/civicrm-core/pull/13946))**
526
527 Replaces get_headers functions call with Guzzle HTTP request to prevent timing
528 out.
529
530 - **Queries combining multiple text labels using REGEXP do not escape regular
531 expression metacharacters
532 ([dev/core#433](https://lab.civicrm.org/dev/core/issues/433):
533 [12998](https://github.com/civicrm/civicrm-core/pull/12998))**
534
535 Ensures that querying for fee levels that contain regex metacharacters will
536 match.
537
538 - **Fix status type (error, not fail) for CRM_Core_Session::setStatus
539 ([13943](https://github.com/civicrm/civicrm-core/pull/13943))**
540
541 Fixes an incorrect status for setMessage which was using 'fail' (which is not
542 a valid status) instead of 'error'.
543
544 - **Covert the CRM_Core_Error::fatal calls to exceptions when trying to access
545 Contact Photos ([13917](https://github.com/civicrm/civicrm-core/pull/13917))**
546
547 Cleaner errors when attempting to access contact photos fails.
548
549 - **CiviCRM API, lookup state_province_id options based on country parameter if
550 present, or default country
551 ([13596](https://github.com/civicrm/civicrm-core/pull/13596))**
552
553 Ensures the CiviCRM Address API correctly sets state_province_id for states
554 whose name/abbreviation exist in multiple countries.
555
556 - **Fix php 7.2 count notice
557 ([13877](https://github.com/civicrm/civicrm-core/pull/13877))**
558
559 Fixes a "Warning: count()" error on the "Import Contacts" Summary step screen.
560
561 - **New Organisation: "Contact Type" dropdown disappears when fields validation
562 occurs ([dev/core#699](https://lab.civicrm.org/dev/core/issues/699):
563 [13545](https://github.com/civicrm/civicrm-core/pull/13545))**
564
565 Fixes a bug where when creating a new organization, if the form fails
566 validation the "Contact Sub Type" dropdown disappears.
567
568 - **Fix contact.merge api to pass check_permissions parameter through to the
569 deeper layer ([13807](https://github.com/civicrm/civicrm-core/pull/13807))**
570
571 Fixes a bug where calling Contact.merge from php will leave the merged contact
572 unmerged if the logged in user does not have the delete contacts permission
573
574 - **checkEditInboundEmailsPermissions should be a static function
575 ([13805](https://github.com/civicrm/civicrm-core/pull/13805))**
576
577 - **DB error "no such field" when executing actions on a sorted contact search
578 result with search profile
579 ([dev/core#502](https://lab.civicrm.org/dev/core/issues/502):
580 [13884](https://github.com/civicrm/civicrm-core/pull/13884))**
581
582 - **Transfer picks up the deleted contact ID basically transferring to the wrong
583 contact ([dev/core#314](https://lab.civicrm.org/dev/core/issues/314):
584 [12639](https://github.com/civicrm/civicrm-core/pull/12639))**
585
586 - **Fix bug whereby sorting by state province gives an error in search builder
587 ([13748](https://github.com/civicrm/civicrm-core/pull/13748))**
588
589 - **Fix Contact.create calls to respect passed in variables & variables set via
590 hook for sort_name & display_name
591 ([13863](https://github.com/civicrm/civicrm-core/pull/13863))**
592
593 - **Do not cause a fatal error if no contact_id field for a note is filled in
594 when viewing contact notes
595 ([13910](https://github.com/civicrm/civicrm-core/pull/13910))**
596
597 - **Disable phpcs checking in the Crypt files where mcrypt functions are
598 ([14031](https://github.com/civicrm/civicrm-core/pull/14031))**
599
600 - **Fix 4.7.31 Upgrade in multilingual mode
601 ([14003](https://github.com/civicrm/civicrm-core/pull/14003))**
602
603 - **Optimise the loading of the CiviCRM Deduplication Exception page
604 ([13435](https://github.com/civicrm/civicrm-core/pull/13435))**
605
606 - **Unfork Zetacomponents mail and use patch to apply differences
607 ([13934](https://github.com/civicrm/civicrm-core/pull/13934))**
608
609 - **Update lockfile to take into account of civicrm/zetacomponents-mail#4 being
610 merged ([13822](https://github.com/civicrm/civicrm-core/pull/13822))**
611
612 - **Upgrade zetacomponents/base and zetacomponents/mail
613 ([13799](https://github.com/civicrm/civicrm-core/pull/13799))**
614
615 - **Smart group with uf_group_id does not load contacts with same search profile
616 ([dev/core#771](https://lab.civicrm.org/dev/core/issues/771):
617 [13742](https://github.com/civicrm/civicrm-core/pull/13742))**
618
619 - **Fix Deprecation notice for use of `while` in PHP7.2 in bin/cli.class.php
620 ([dev/core#907](https://lab.civicrm.org/dev/core/issues/907):
621 [14155](https://github.com/civicrm/civicrm-core/pull/14155))**
622
623 ### CiviCase
624
625 - **PR 13333 breaks the Save and New button on a new case
626 ([dev/core#904](https://lab.civicrm.org/dev/core/issues/904):
627 [14145](https://github.com/civicrm/civicrm-core/pull/14145))**
628
629 This reverts a change making the Save and New button `submitOnce`, as that
630 prevented the button from opening a new case form after saving.
631
632 - **Creating a new relationship type while editing case type definition adds a
633 blank row in the roles section
634 ([dev/core#784](https://lab.civicrm.org/dev/core/issues/784):
635 [13785](https://github.com/civicrm/civicrm-core/pull/13785))**
636
637 - **PHP warnings on Case Dashboard and Find Cases
638 ([13998](https://github.com/civicrm/civicrm-core/pull/13998))**
639
640 ### CiviContribute
641
642 - **Can't self-service cancel a recurring contribution made while you're logged
643 in ([dev/core#571](https://lab.civicrm.org/dev/core/issues/571):
644 [13237](https://github.com/civicrm/civicrm-core/pull/13237))**
645
646 This change makes it so that users without "edit contributions" permission can
647 edit their own recurring contribution subscriptions if they are logged in,
648 before this change they could only edit their own contribution subscriptions
649 thru a checksum link.
650
651 - **Possible paypal fix to avoid sending 500 errors from ipn triggerred by
652 one-off payment
653 ([13867](https://github.com/civicrm/civicrm-core/pull/13867))**
654
655 Fixes paypal system sending a warning email when there is a failed IPN call
656 (500 errors from ipn triggered by non-recurring payment).
657
658 - **Missing links to cancel recurring payments (regression .. sorta)
659 ([dev/core#704](https://lab.civicrm.org/dev/core/issues/704):
660 [13935](https://github.com/civicrm/civicrm-core/pull/13935))**
661
662 Fixes a 5.8 regression where the cancel link became unavailable on recurring
663 contributions with no attached payment processor id.
664
665 - **Improve flushing after creating a processor so it can be used for a
666 recurring in the same run
667 ([14009](https://github.com/civicrm/civicrm-core/pull/14009))**
668
669 This change ensures tests run properly by flushing caches when creating a
670 payment processor.
671
672 - **Flush ContributionRecur static cache when flushing processors
673 ([13962](https://github.com/civicrm/civicrm-core/pull/13962))**
674
675 Ensures a (new) static cache is flushed when creating a processor, mostly
676 useful for unit testing.
677
678 - **Display test contributions when viewing contributions related to a test
679 recurring contribution
680 ([13779](https://github.com/civicrm/civicrm-core/pull/13779))**
681
682 ### CiviEvent
683
684 - **Cancelling or An Error during event registration payment should cancel all
685 additional participates
686 ([dev/core#253](https://lab.civicrm.org/dev/core/issues/253):
687 [12457](https://github.com/civicrm/civicrm-core/pull/12457))**
688
689 This fixes a bug where if a user was registering for an event with additional
690 participants, and for some reason the payment failed or the user decided to
691 cancel the payment, only the main user participant record was set to
692 "canceled", the rest of the additional participants would have the status
693 "pending incomplete transaction" so that all participant statuses are changed
694 to "canceled".
695
696 - **Event Cart: Fix PHP 7.2 fatal error (pass by ref)
697 ([13927](https://github.com/civicrm/civicrm-core/pull/13927))**
698
699 Fixes a Fatal error when using Event cart and PHP 7.2, specifically when
700 checking out.
701
702 - **CRM/Event - Fix participant note search parameter being ignored
703 ([13697](https://github.com/civicrm/civicrm-core/pull/13697))**
704
705 This change ensures that when searching by "Participant Note" on the "Search
706 Builder form the filter is applied.
707
708 - **BAO_Participant - Use default status if not specified for create
709 ([13875](https://github.com/civicrm/civicrm-core/pull/13875))**
710
711 This change fixes a api4 test failure by ensuring that the default value of
712 'status_id' is respected by the Participant BAO. Before this change the
713 'status_id' had a default value and thus was not required but the BAO would
714 not work correctly if a 'status_id' was not supplied. After this change the
715 'status_id' default is respected and the BAO works regardless of whether the
716 'status_id' is supplied.
717
718 ### CiviGrant
719
720 - **PHP Error on Grant Detail Report
721 ([13883](https://github.com/civicrm/civicrm-core/pull/13883))**
722
723 Fixes a PHP error when viewing the "Grant Detail Report" for sites running PHP
724 7.2.
725
726 ### CiviMail
727
728 - **Do not track CSS URLs
729 ([dev/core#836](https://lab.civicrm.org/dev/core/issues/836):
730 [13920](https://github.com/civicrm/civicrm-core/pull/13920))**
731
732 Ensures CiviMail does not convert css URLs into trackable URLs.
733
734 - **Restore support for preview of "mailing"/"action" tokens via
735 TokenProcessor/Flexmailer
736 ([14156](https://github.com/civicrm/civicrm-core/pull/14156))**
737
738 ### CiviMember
739
740 - **Disabling or deleting Expired status breaks membership status update
741 ([13259](https://github.com/civicrm/civicrm-core/pull/13259))**
742
743 This change ensures that deleting, disabling or renaming the "Expired"
744 membership status does not cause issues when running the "Membership status
745 processor" scheduled job. Before this change deleting, disabling or renaming
746 the "Expired" membership status would result in the "Membership status
747 processor" scheduled job failing with the message `Finished execution of
748 Membership status processor with result: Failure, Error message: A fatal error
749 was triggered: One of parameters (value: ) is not of the type Integer`.
750
751 - **Fatal error to exception on Membership BAO
752 ([13774](https://github.com/civicrm/civicrm-core/pull/13774))**
753
754 This change improves experience by throwing an exception instead of a fatal
755 error.
756
757 ### Backdrop Integration
758
759 - **civicrm/admin/setting/uf - Fix advice about Backdrop Views
760 ($database_prefix)
761 ([13803](https://github.com/civicrm/civicrm-core/pull/13803))**
762
763 This change updates the advice for configuring views on the
764 `civicrm/admin/setting/uf` form so that it works for Backdrop sites.
765
766 ### Drupal Integration
767
768 - **Drupal8: Can't upload images via CKEditor/kcfinder
769 ([dev/drupal#42](https://lab.civicrm.org/dev/drupal/issues/42):
770 [242](https://github.com/civicrm/civicrm-packages/pull/242))**
771
772 Makes it so on Drupal 8 sites users can upload and browse images in KCFinder.
773
774 ## <a name="misc"></a>Miscellany
775
776 - **Fix e-notice in IDS
777 ([247](https://github.com/civicrm/civicrm-packages/pull/247))**
778
779 - **Update 7.x Drupal code to be that of the new coder style
780 ([571](https://github.com/civicrm/civicrm-drupal/pull/571))**
781
782 - **Fix up to newer coder style
783 ([69](https://github.com/civicrm/civicrm-backdrop/pull/69))**
784
785 - **Remove now-obsolete additionalFromClause parameter from prepareOrderBy
786 ([13874](https://github.com/civicrm/civicrm-core/pull/13874))**
787
788 - **Remove switch statement that no longer switches
789 ([13886](https://github.com/civicrm/civicrm-core/pull/13886))**
790
791 - **Add unit test for exporting with incomplete data
792 ([13904](https://github.com/civicrm/civicrm-core/pull/13904))**
793
794 - **Delete webtests
795 ([13861](https://github.com/civicrm/civicrm-core/pull/13861))**
796
797 - **Add a class to handle test entities consistently
798 ([13814](https://github.com/civicrm/civicrm-core/pull/13814))**
799
800 - **Fix up composer for composer 2.0 compatibility
801 ([13872](https://github.com/civicrm/civicrm-core/pull/13872))**
802
803 - **Remove log files as now supplied by composer
804 ([244](https://github.com/civicrm/civicrm-packages/pull/244), [245](https://github.com/civicrm/civicrm-packages/pull/245))**
805
806 - **Remove htmlpurifier from within the IDS to facilitate it being provided by
807 composer ([246](https://github.com/civicrm/civicrm-packages/pull/246))**
808
809 - **Remove Log.php require_once statements
810 ([13842](https://github.com/civicrm/civicrm-core/pull/13842))**
811
812 - **Remove amavisd now that it is removed from the packages repository
813 ([243](https://github.com/civicrm/civicrm-packages/pull/243), [13841](https://github.com/civicrm/civicrm-core/pull/13841))**
814
815 - **Upgrade htmlpurifier to 4.10 to support PHP7.2 and install via composer
816 ([13840](https://github.com/civicrm/civicrm-core/pull/13840))**
817
818 - **Refactor CRM_Contact_Form_Task_PDFLetterCommon
819 ([13892](https://github.com/civicrm/civicrm-core/pull/13892))**
820
821 - **Reformat test files for array format
822 ([13862](https://github.com/civicrm/civicrm-core/pull/13862))**
823
824 - **Logging - attempt to fix tests
825 ([13832](https://github.com/civicrm/civicrm-core/pull/13832))**
826
827 - **Try Reverting commit removing require once to see if it fixes the problem
828 for api4 ([13870](https://github.com/civicrm/civicrm-core/pull/13870))**
829
830 - **Import date test
831 ([13823](https://github.com/civicrm/civicrm-core/pull/13823))**
832
833 - **Add shared parent for ContributionRecur forms
834 ([13931](https://github.com/civicrm/civicrm-core/pull/13931))**
835
836 - **Update PHPWord Patches to match the latest versions of their code
837 ([13923](https://github.com/civicrm/civicrm-core/pull/13923))**
838
839 - **Extract assignPaymentFields
840 ([13957](https://github.com/civicrm/civicrm-core/pull/13957))**
841
842 - **Move code to assign tax information into shared parent
843 ([13899](https://github.com/civicrm/civicrm-core/pull/13899))**
844
845 - **Update test to reflect recently merged PR lower permission to access
846 dedupecheck ([13866](https://github.com/civicrm/civicrm-core/pull/13866))**
847
848 - **Test fix ([13856](https://github.com/civicrm/civicrm-core/pull/13856))**
849
850 - **Add unit testing for activity creation when cancelling a recurring, related
851 cleanup ([14000](https://github.com/civicrm/civicrm-core/pull/14000))**
852
853 - **Improve test coverage for CRM_Utils_Color::getRgb()
854 ([14007](https://github.com/civicrm/civicrm-core/pull/14007))**
855
856 - **Add in tests of purifying HTML output
857 ([13845](https://github.com/civicrm/civicrm-core/pull/13845))**
858
859 - **Remove more instances of ->free()
860 ([dev/core#562](https://lab.civicrm.org/dev/core/issues/562):
861 [13786](https://github.com/civicrm/civicrm-core/pull/13786)) CONTINUES WORK**
862
863 - **(NFC) Ensure phpcs ignores eval notice in these files as it is required
864 ([14032](https://github.com/civicrm/civicrm-core/pull/14032))**
865
866 - **(NFC) Lint additional php files up to the new coder standard
867 ([14025](https://github.com/civicrm/civicrm-core/pull/14025))**
868
869 - **Port code style fixes to 5.13 from master
870 ([14026](https://github.com/civicrm/civicrm-core/pull/14026))**
871
872 - **(NFC) Update CRM/Core CRM/Custom CRM/Dedupe to match the new coder style
873 ([14023](https://github.com/civicrm/civicrm-core/pull/14023))**
874
875 - **(NFC) Update CRM/Event folder for the new coder style
876 ([14019](https://github.com/civicrm/civicrm-core/pull/14019))**
877
878 - **(NFC) update CRM/Contribute to be the new coder standard
879 ([14021](https://github.com/civicrm/civicrm-core/pull/14021))**
880
881 - **(NFC) Update CRM/Friend CRM/Grant CRM/Group CRM/Mailing to be up to d…
882 ([14016](https://github.com/civicrm/civicrm-core/pull/14016))**
883
884 - **(NFC) Update CRM/Badge CRM/Campaign CRM/Case to be up to date with a …
885 ([14017](https://github.com/civicrm/civicrm-core/pull/14017))**
886
887 - **(NFC) Update CRM/Cxn CRM/Dashlet CRM/Export CRM/Extension and CRM/Fin…
888 ([14018](https://github.com/civicrm/civicrm-core/pull/14018))**
889
890 - **[NFC] Short array syntax - auto convert settings dir
891 ([14005](https://github.com/civicrm/civicrm-core/pull/14005))**
892
893 - **(NFC) SchemaStructure.php - Fix up mismatch between stored+generated code
894 ([14046](https://github.com/civicrm/civicrm-core/pull/14046))**
895
896 - **Arg I put these fixes in 5.12 & master while trying for 5.13
897 ([14036](https://github.com/civicrm/civicrm-core/pull/14036))**
898
899 - **(NFC) Update CRM/Member CRM/Note CRM/Logging CRM/Import and CRM/Price…
900 ([13992](https://github.com/civicrm/civicrm-core/pull/13992))**
901
902 - **(REF) CRM_Core_Resources - Move hook declaration from addCoreResources() to
903 Container.php ([14008](https://github.com/civicrm/civicrm-core/pull/14008))**
904
905 - **(NFC) Update CRM/Activity CRM/Admin and CRM/Batch folders to be the f…
906 ([13990](https://github.com/civicrm/civicrm-core/pull/13990))**
907
908 - **(NFC) Update coding style in PCP, Pledge, Profile, Queue, Report folders
909 ([13987](https://github.com/civicrm/civicrm-core/pull/13987))**
910
911 - **(NFC) Update CRM/SMS/ CRM/UF/ CRM/Upgrade/ CRM/Tag/ to be up to speed…
912 ([13986](https://github.com/civicrm/civicrm-core/pull/13986))**
913
914 - **(NFC) Bring CRM/Utils folder up to future coder standards
915 ([13985](https://github.com/civicrm/civicrm-core/pull/13985))**
916
917 - **(NFC) Set _log and _tableName variables to be public
918 ([13988](https://github.com/civicrm/civicrm-core/pull/13988))**
919
920 - **Grammar fixes
921 ([13960](https://github.com/civicrm/civicrm-core/pull/13960))**
922
923 - **Update Unit test styling to cover the future coder version
924 ([13983](https://github.com/civicrm/civicrm-core/pull/13983))**
925
926 - **(NFC) Fix location of comment to match future coder version
927 ([13984](https://github.com/civicrm/civicrm-core/pull/13984))**
928
929 - **(NFC) Bring up API folder to style of future coder checker
930 ([13980](https://github.com/civicrm/civicrm-core/pull/13980))**
931
932 - **(NFC) Upgrade Civi Folder to the new coder version
933 ([13981](https://github.com/civicrm/civicrm-core/pull/13981))**
934
935 - **(NFC) Update various files to pass future civicrm/coder ruleset
936 ([13979](https://github.com/civicrm/civicrm-core/pull/13979))**
937
938 - **(NFC) Update various files to pass current phpcs
939 ([13978](https://github.com/civicrm/civicrm-core/pull/13978))**
940
941 - **[NFC] Reformat tricksy file CRM_Mailing_BAO_Mailing
942 ([13973](https://github.com/civicrm/civicrm-core/pull/13973))**
943
944 - **[NFC] Reformat tricksy file CRM/Contribute/Import/Form/MapField
945 ([13974](https://github.com/civicrm/civicrm-core/pull/13974))**
946
947 - **[NFC] short array syntax Autoformat - just the tricksy bits of CRM/Activity
948 ([13969](https://github.com/civicrm/civicrm-core/pull/13969))**
949
950 - **[NFC] array format tricksie file CRM/Admin/Form/MessageTemplates
951 ([13970](https://github.com/civicrm/civicrm-core/pull/13970))**
952
953 - **[NFC] array format tricksie file CRM_Utils_Rest
954 ([13971](https://github.com/civicrm/civicrm-core/pull/13971))**
955
956 - **[NFC] array formatting tricksy tricksie file (another CRM/UF/Form/Group.php)
957 ([13972](https://github.com/civicrm/civicrm-core/pull/13972))**
958
959 - **[NFC] short array syntax Autoformat - just CRM/ACL dir
960 ([13968](https://github.com/civicrm/civicrm-core/pull/13968))**
961
962 - **[NFC] Short array syntax - auto-format CRM directory
963 ([13915](https://github.com/civicrm/civicrm-core/pull/13915))**
964
965 - **[REF] extract token functions
966 ([13967](https://github.com/civicrm/civicrm-core/pull/13967))**
967
968 - **Test fix ([13949](https://github.com/civicrm/civicrm-core/pull/13949))**
969
970 - **Payment test cleanup
971 ([13924](https://github.com/civicrm/civicrm-core/pull/13924))**
972
973 - **(NFC) Fix mode on files
974 ([13933](https://github.com/civicrm/civicrm-core/pull/13933))**
975
976 - **[NFC] Cleanup DAO factory classes for code standards
977 ([13922](https://github.com/civicrm/civicrm-core/pull/13922))**
978
979 - **NFC - Short array syntax - auto-convert ang dir
980 ([13912](https://github.com/civicrm/civicrm-core/pull/13912))**
981
982 - **NFC - Short array syntax - auto-convert Civi dir
983 ([13911](https://github.com/civicrm/civicrm-core/pull/13911))**
984
985 - **[NFC] Short array syntax - auto-convert api dir
986 ([13909](https://github.com/civicrm/civicrm-core/pull/13909))**
987
988 - **Minor code cleanup
989 ([13839](https://github.com/civicrm/civicrm-core/pull/13839))**
990
991 - **Minor code cleanup - remove unnecessary ids declaration
992 ([13838](https://github.com/civicrm/civicrm-core/pull/13838))**
993
994 - **Code cleanup on membership block loop
995 ([13851](https://github.com/civicrm/civicrm-core/pull/13851))**
996
997 - **[NFC] IDE formatting only
998 ([13896](https://github.com/civicrm/civicrm-core/pull/13896))**
999
1000 - **Minor code cleanups around invoicing assignment
1001 ([13857](https://github.com/civicrm/civicrm-core/pull/13857))**
1002
1003 - **[nfc] Reset entire session object between tests
1004 ([13878](https://github.com/civicrm/civicrm-core/pull/13878))**
1005
1006 - **Fixing formatting of contributors section
1007 ([13860](https://github.com/civicrm/civicrm-core/pull/13860))**
1008
1009 - **[NFC] code formatting only
1010 ([13846](https://github.com/civicrm/civicrm-core/pull/13846))**
1011
1012 - **[NFC] Code reformatting
1013 ([13849](https://github.com/civicrm/civicrm-core/pull/13849))**
1014
1015 - **Add comments about usage for doPayment() function
1016 ([13812](https://github.com/civicrm/civicrm-core/pull/13812))**
1017
1018 - **[nfc] Attempt to improve false negatives on Logging test
1019 ([13829](https://github.com/civicrm/civicrm-core/pull/13829))**
1020
1021 - **[NFC] remove unnecessary variable
1022 ([13836](https://github.com/civicrm/civicrm-core/pull/13836))**
1023
1024 - **REF Extract case action links into a separate function to facilitate
1025 refactoring ([13793](https://github.com/civicrm/civicrm-core/pull/13793))**
1026
1027 - **NFC Whitespace cleanup MembershipBlock.tpl
1028 ([13830](https://github.com/civicrm/civicrm-core/pull/13830))**
1029
1030 - **Further cleanup on getRelatedMemberships - just get them with the api
1031 ([13797](https://github.com/civicrm/civicrm-core/pull/13797))**
1032
1033 - **[REF] small cleanups on payment.create flow.
1034 ([13778](https://github.com/civicrm/civicrm-core/pull/13778))**
1035
1036 - **[NFC] reformat Contact api file to switch to new array formatting
1037 ([13806](https://github.com/civicrm/civicrm-core/pull/13806))**
1038
1039 - **[REF] minor code simplification - remove over-handling of amount comp with
1040 zero ([13783](https://github.com/civicrm/civicrm-core/pull/13783))**
1041
1042 - **Attempted test fix
1043 ([13791](https://github.com/civicrm/civicrm-core/pull/13791))**
1044
1045 - **Remove reference to google checkout
1046 ([13784](https://github.com/civicrm/civicrm-core/pull/13784))**
1047
1048 - **[NFC] template whitespace cleanup
1049 ([13782](https://github.com/civicrm/civicrm-core/pull/13782))**
1050
1051 - **(NFC) Update for compliance with next phpcs standard
1052 ([577](https://github.com/civicrm/civicrm-drupal/pull/577))**
1053
1054 - **Lint .inc files in Drupal module folder to match newer coder standard
1055 ([574](https://github.com/civicrm/civicrm-drupal/pull/574))**
1056
1057 - **(NFC) Get phpcs to ignore the use of eval in this file as it is required
1058 ([575](https://github.com/civicrm/civicrm-drupal/pull/575))**
1059
1060 - **(NFC) Update for compliance with next phpcs standard
1061 ([72](https://github.com/civicrm/civicrm-backdrop/pull/72))**
1062
1063 - **(NFC) Lint .inc files and ensure that the eval usage in tests/phpunit…
1064 ([71](https://github.com/civicrm/civicrm-backdrop/pull/71))**
1065
1066 ## <a name="credits"></a>Credits
1067
1068 This release was developed by the following code authors:
1069
1070 AGH Strategies - Alice Frumin, Andie Hunt, Eli Lisseck; Agileware - Alok Patel,
1071 Francis Whittle; Australian Greens - Seamus Lee; calibrate - Wouter Hechtermans;
1072 Christian Wach; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku;
1073 CompuCorp - Omar Abu Hussein; Coop SymbioTIC - Mathieu Lutfy; Dave D; Electronic
1074 Frontier Foundation - Mark Burdett; Freeform Solutions - Herb van den Dool;
1075 Fuzion - Jitendra Purohit; GreenPeace Central and Eastern Europe - Patrick
1076 Figel; JMA Consulting - Monish Deb; Megaphone Technology Consulting - Jon
1077 Goldberg; MJW Consulting - Matthew Wire; Pradeep Nayak; Skvare - Mark Hanna;
1078 Squiffle Consulting - Aidan Saunders; Stephen Palmstrom; Timbsoft Technologies -
1079 Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton
1080
1081 Most authors also reviewed code for this release; in addition, the following
1082 reviewers contributed their comments:
1083
1084 Agileware - Justin Freeman; Aniessh Sethh; Artful Robot - Rich Lott; British
1085 Humanist Association - Andrew West; Circle Interactive - Dave Jenkins; Shitij
1086 Gugnani; Coop SymbioTIC - Samuel Vanhove; GValFr35; JMA Consulting - Joe Murray;
1087 Joinery - Allen Shaw; Aivars; Korlon - Stuart Gaston; Lighthouse Design and
1088 Consulting - Brian Shaughnessy; mcuradoc; Onyemenam Ndubuisi; Tadpole
1089 Collective - Kevin Cristiano
1090
1091 ## <a name="feedback"></a>Feedback
1092
1093 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
1094 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
1095 and contact `@agh1`.