3 Released January 1, 2020
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? | no |
20 | Fix problems installing or upgrading to a previous version? | no |
21 | **Introduce features?** | **yes** |
22 | **Fix bugs?** | **yes** |
24 ## <a name="features"></a>Features
28 - **Temporary tables should follow consistent naming convention (Work Towards
29 [dev/core#183](https://lab.civicrm.org/dev/core/issues/183):
30 [15795](https://github.com/civicrm/civicrm-core/pull/15795),
31 [15798](https://github.com/civicrm/civicrm-core/pull/15798),
32 [15819](https://github.com/civicrm/civicrm-core/pull/15819),
33 [15793](https://github.com/civicrm/civicrm-core/pull/15793),
34 [15792](https://github.com/civicrm/civicrm-core/pull/15792),
35 [15874](https://github.com/civicrm/civicrm-core/pull/15874),
36 [15821](https://github.com/civicrm/civicrm-core/pull/15821),
37 [15823](https://github.com/civicrm/civicrm-core/pull/15823),
38 [15826](https://github.com/civicrm/civicrm-core/pull/15826),
39 [15820](https://github.com/civicrm/civicrm-core/pull/15820),
40 [15825](https://github.com/civicrm/civicrm-core/pull/15825)
41 and [15876](https://github.com/civicrm/civicrm-core/pull/15876))**
43 Begins work to enforce a common naming convention for temporary tables.
45 - **Performance issue when exporting to CSV from reports with custom fields
46 ([dev/report#19](https://lab.civicrm.org/dev/report/issues/19):
47 [15248](https://github.com/civicrm/civicrm-core/pull/15248))**
49 Performance improvements when exporting a report to CSV.
51 - **Memory error on creating large pdfs
52 ([dev/core#574](https://lab.civicrm.org/dev/core/issues/574):
53 [13232](https://github.com/civicrm/civicrm-core/pull/13232))**
55 Improves performance when creating PDFs.
57 - **Update Country list: change Macedonia, Republic of into North Macedonia
58 ([dev/core#1166](https://lab.civicrm.org/dev/core/issues/1166):
59 [15997](https://github.com/civicrm/civicrm-core/pull/15997))**
61 Updates the name of "Macedonia, Republic of" to "North Macedonia" in
62 accordance with the iso 3166-1 list.
64 - **Default to 'copy' for non-empty fields on merge screen
65 ([dev/core#1339](https://lab.civicrm.org/dev/core/issues/1339):
66 [15595](https://github.com/civicrm/civicrm-core/pull/15595))**
68 Updates the Merge screen to default to copy for all non empty fields. This
69 change makes it easier to keep too much data but harder to lose some.
71 - **Tagsets should display vertically in activity/new case forms
72 ([dev/core#1346](https://lab.civicrm.org/dev/core/issues/1346):
73 [15649](https://github.com/civicrm/civicrm-core/pull/15649))**
75 Improves the User interface of the "New Activity" and "New Case" forms by
76 displaying the tag fields vertically instead of horizontally.
78 - **Make utf8mb4 status check language more for the general consumer
79 ([15946](https://github.com/civicrm/civicrm-core/pull/15946))**
81 This alters the language on the utf8mb4 status check so that it is a bit more
82 general in nature and hopefully easier to digest for end users.
84 - **Include Metadata on advanced search form for membership, grant, pledge,
85 fields ([15936](https://github.com/civicrm/civicrm-core/pull/15936))**
87 Adds the ability filter on fields like `membership_join_date` and
88 `pledge_payment_start_date` on the advanced search form via url parameters.
90 - **Replace all instances of CRM_Core_Fatal with throw new CRM_Core_Exception
91 (Work towards [dev/core#560](https://lab.civicrm.org/dev/core/issues/560):
92 [15903](https://github.com/civicrm/civicrm-core/pull/15903),
93 [15770](https://github.com/civicrm/civicrm-core/pull/15770),
94 [15941](https://github.com/civicrm/civicrm-core/pull/15941),
95 [15775](https://github.com/civicrm/civicrm-core/pull/15775) and
96 [15822](https://github.com/civicrm/civicrm-core/pull/15822))**
98 Work towards throwing exceptions instead of fatal errors.
100 - **Remove background opacity in menus; improving accessibility/readability
101 ([15847](https://github.com/civicrm/civicrm-core/pull/15847))**
103 Makes the CiviCRM Menu opaque to improve readability.
105 - **Improve datePicker placeholder/icons
106 ([15848](https://github.com/civicrm/civicrm-core/pull/15848))**
108 Small tweaks to the datepicker widget to improve flexibility & consistency.
110 - **modified shared address note under contact dashboard
111 ([15666](https://github.com/civicrm/civicrm-core/pull/15666) and
112 [15769](https://github.com/civicrm/civicrm-core/pull/15769))**
114 Improves the note below the Shared Address field to include a link to the
115 contact that the address lives on to make it easier for get to the shared
118 - **Grant in Edit mode doesn't show the associated contact and standardize all
119 screens accordingly. (Work Towards
120 [dev/core#1065](https://lab.civicrm.org/dev/core/issues/1065):
121 [15757](https://github.com/civicrm/civicrm-core/pull/15757),
122 [15833](https://github.com/civicrm/civicrm-core/pull/15833) and
123 [15840](https://github.com/civicrm/civicrm-core/pull/15840))**
125 Work towards ensuring that a clickable link to the associated contact is
126 included on the Grant Form in edit mode and the Membership Renewal Form and
127 standardizes the display of associated contacts across edit forms.
131 - **Enable Case search metadata on Advanced Search Form
132 ([15928](https://github.com/civicrm/civicrm-core/pull/15928))**
134 This change makes it so one can pass case search parameters using url
135 parameters on the Advanced Search Form.
139 - **Develop getter & setter structure for Payment classes (Work Towards
140 [dev/financial#82](https://lab.civicrm.org/dev/financial/issues/82):
141 [15697](https://github.com/civicrm/civicrm-core/pull/15697))**
143 This PR adds a new class, `Civi\Payment\PropertyBag` which will eventually
144 replace the wild `$params` array that gets thrown at payment processors, with
145 a standardized, at least minimally validated and type cast object. It uses the
146 new class in one very minimal way and adds some comments to outline future
147 work. This is a non functional change that lays the groundwork for future
150 - **Always display amount paid even if it is 0.00. Blank looks like it's missing
151 data rather than nothing paid
152 ([16021](https://github.com/civicrm/civicrm-core/pull/16021))**
154 This improves user experience by displaying contributions of 0 as 0 instead
157 - **Contribution url params - add contribution_page_id as a supported url
158 parameter ([15785](https://github.com/civicrm/civicrm-core/pull/15785))**
160 Adds `contribution_page_id` as a supported url parameter on the advanced
165 - **CiviMail - Only display "Headers and Footers" if there are headers and
166 footers ([15326](https://github.com/civicrm/civicrm-core/pull/15326))**
168 Makes it so when creating a CiviMail Mailing the "Headers and Footers" tab
169 only displays if there are Headers and/or Footers configured on the site.
171 ### Drupal Integration
173 - **Add participant is_test field to views
174 ([590](https://github.com/civicrm/civicrm-drupal/pull/590))**
176 Makes the Participant `is_test` field available in views.
178 ### PayPal Implementation
180 - **PayPalImpl: Add SOLUTIONTYPE parameter that triggers allowing to pay without
181 having to create a paypal account.
182 ([15523](https://github.com/civicrm/civicrm-core/pull/15523))**
184 Adds a `SOLUTIONTYPE` parameter to the PayPal checkout values so that one can
185 make a contribution without having to create an account.
187 ## <a name="bugs"></a>Bugs resolved
191 - **Lybunt report - remove broken chart functionality
192 ([dev/core#523](https://lab.civicrm.org/dev/core/issues/523):
193 [15989](https://github.com/civicrm/civicrm-core/pull/15989))**
195 Fixes the LYBUNT charts.
197 - **Search builder error on Membership source field.
198 ([dev/core#1390](https://lab.civicrm.org/dev/core/issues/1390):
199 [15845](https://github.com/civicrm/civicrm-core/pull/15845))**
201 Fixes an error: "DB error: syntax error" when adding "Membership Source" on
202 the search builder screen.
204 - **Option to open navigation item in new window (if present)
205 ([dev/core#1398](https://lab.civicrm.org/dev/core/issues/1398):
206 [15861](https://github.com/civicrm/civicrm-core/pull/15861))**
208 Ensures the target attribute is respected for CiviCRM Navigation menu submenu
211 - **CIVI-SA-2019-21 may lead to regressions when following typehints on
212 CRM_Core_BAO_Setting::setItem() (Work Towards
213 [dev/core#1425](https://lab.civicrm.org/dev/core/issues/1425):
214 [15981](https://github.com/civicrm/civicrm-core/pull/15981),
215 [15988](https://github.com/civicrm/civicrm-core/pull/15988) and
216 [15980](https://github.com/civicrm/civicrm-core/pull/15980))**
218 Removes a misleading PHPDoc type hint for the `$value` parameter in
219 `CRM_Core_BAO_Setting::setItem()` and updates tests that use this function.
221 - **allow PCP report to filter on contribution status
222 ([16024](https://github.com/civicrm/civicrm-core/pull/16024))**
224 The PCP report template lists all PCP pages with total number of contributions
225 made against each PCP page and total amount raised. Before this change the
226 report had no filter for Contribution Status so Cancelled Contributions were
227 showing and throwing off the totals. With this change there is a filter for
228 contribution status allowing users to filter this list as they see fit for
231 - **Only add in the metadata for advanced search if user has access to the
233 ([15987](https://github.com/civicrm/civicrm-core/pull/15987))**
235 Ensures the user has access to the relevant component before adding metadata
236 for that component to the advanced search form.
238 - **Fix api explorer formatting IS NULL clauses
239 ([15817](https://github.com/civicrm/civicrm-core/pull/15817))**
241 Fixes a formatting issue in the api explorer output where IS NULL and IS NOT
242 NULL clauses would output invalid code due to the missing value piece of the
245 - **Add in translation function around newly converted statusBounce messages
246 ([15774](https://github.com/civicrm/civicrm-core/pull/15774))**
248 - **Fix cachekey string
249 ([15761](https://github.com/civicrm/civicrm-core/pull/15761))**
251 Fixes an obscure bug where no custom fields were being returned when doing a
252 Contact.get api call with check_permissions=0.
254 - **Fix potential test glitch when repeatedly calling createLoggedInUser
255 ([15965](https://github.com/civicrm/civicrm-core/pull/15965))**
257 - **[UI] Ensure that when sorting on columns in the find activity search the
258 arrow shows which field is being sorted and direction
259 ([15943](https://github.com/civicrm/civicrm-core/pull/15943))**
261 - **Move greeting handling up as it is not paymentValidation dependent
262 ([15904](https://github.com/civicrm/civicrm-core/pull/15904))**
264 - **Remove nbsp from UserDashboard Event section
265 ([15880](https://github.com/civicrm/civicrm-core/pull/15880))**
267 - **translate strings
268 ([15858](https://github.com/civicrm/civicrm-core/pull/15858))**
270 - **Filter contact sub-type by "is not one of" fails
271 ([dev/report#23](https://lab.civicrm.org/dev/report/issues/23):
272 [15971](https://github.com/civicrm/civicrm-core/pull/15971))**
274 - **Fix activity search to work by url params
275 ([15990](https://github.com/civicrm/civicrm-core/pull/15990))**
277 - **CiviCRM Option Group with a name containing spaces cannot have any options
278 added, error message is shown also impacts the in-place option editor
279 ([dev/core#1405](https://lab.civicrm.org/dev/core/issues/1405):
280 [15937](https://github.com/civicrm/civicrm-core/pull/15937))**
282 - **Quicksearch with phone filter doesn't work with non-numeric character
283 ([dev/core#1420](https://lab.civicrm.org/dev/core/issues/1420):
284 [15955](https://github.com/civicrm/civicrm-core/pull/15955))**
288 - **Case Activities Report includes core activities *always*
289 ([dev/core#1366](https://lab.civicrm.org/dev/core/issues/1366):
290 [15882](https://github.com/civicrm/civicrm-core/pull/15882) and
291 [15877](https://github.com/civicrm/civicrm-core/pull/15877))**
293 - **civicrm/case/search?reset=1&force=1&case_subject=test gives php warning
294 ([dev/core#1410](https://lab.civicrm.org/dev/core/issues/1410):
295 [15920](https://github.com/civicrm/civicrm-core/pull/15920))**
297 - **Url search with `civicrm/case/search?case_owner=2&force=1` gives an E_NOTICE
298 ([dev/core#1414](https://lab.civicrm.org/dev/core/issues/1414):
299 [15924](https://github.com/civicrm/civicrm-core/pull/15924))**
301 - **CiviCase - Make static function `allActivityTypes()` static
302 ([15839](https://github.com/civicrm/civicrm-core/pull/15839))**
306 - **Membership form permits creating invalid transactions
307 ([dev/financial#100](https://lab.civicrm.org/dev/financial/issues/100):
308 [15771](https://github.com/civicrm/civicrm-core/pull/15771))**
310 To avoid users accidentally setting invalid statuses Removes the statuses
311 "Partially Paid", "Cancelled", and "Failed" from the `Payment Status` field
312 when recording a payment for a Contribution related to a Membership.
313 Additionally, removes the statuses "Partially Paid", "Overdue" and "In
314 Progress" from the `Payment Status` field when recording a payment for a
315 Contribution related to an Event.
317 - **Fix api Payment.create to support overpayments
318 ([15909](https://github.com/civicrm/civicrm-core/pull/15909))**
322 - **Fix Participant Search in force mode to support query parameters in URL
323 ([15791](https://github.com/civicrm/civicrm-core/pull/15791))**
325 - **Handling comma separated list of participant statuses in url
326 ([15807](https://github.com/civicrm/civicrm-core/pull/15807))**
330 - **DB error in Mail Clickthroughs bar chart display
331 ([dev/core#1434](https://lab.civicrm.org/dev/core/issues/1434):
332 [16000](https://github.com/civicrm/civicrm-core/pull/16000))**
334 Fixes the bar chart view on the Mail Clickthroughs report.
336 - **Unsubscribe broken if mailing sent to previous mailing recipients with an
337 excluded group ([dev/core#1108](https://lab.civicrm.org/dev/core/issues/1108):
338 [15815](https://github.com/civicrm/civicrm-core/pull/15815))**
340 ### Drupal Integration
342 - **Implement drupal_get_user_timezone()
343 ([15794](https://github.com/civicrm/civicrm-core/pull/15794))**
345 Ensures that the timezone is set using the drupal timezone on Contributions
346 made by anonymous users (Drupal 8).
348 ### Joomla Integration
350 - **New Accessible Menu Color Picker display issue on Joomla
351 ([dev/core#874](https://lab.civicrm.org/dev/core/issues/874):
352 [15945](https://github.com/civicrm/civicrm-core/pull/15945))**
354 Fixes the display of the menubar color picker on Joomla so it looks more like
357 ## <a name="misc"></a>Miscellany
359 - **Field metadata cleanup: Contact & Activity & Custom
360 ([15818](https://github.com/civicrm/civicrm-core/pull/15818))**
362 - **Create a GitLab general issue template
363 ([15665](https://github.com/civicrm/civicrm-core/pull/15665))**
365 - **Don't pass \$input to completeOrder by reference - return values are never
366 used ([15699](https://github.com/civicrm/civicrm-core/pull/15699))**
368 - **Fix incorrect reference on extracted function
369 ([15865](https://github.com/civicrm/civicrm-core/pull/15865))**
371 - **Add $params type declaration to global API functions.
372 ([15852](https://github.com/civicrm/civicrm-core/pull/15852))**
374 - **Add string type declarations to global API functions.
375 ([15864](https://github.com/civicrm/civicrm-core/pull/15864))**
377 - **Convert fee selection test to use Order api
378 ([15812](https://github.com/civicrm/civicrm-core/pull/15812))**
380 - **Fix CRM_Contribute_BAO_ContributionTest to no longer use unreliable legacy
381 set up method ([15905](https://github.com/civicrm/civicrm-core/pull/15905))**
383 - **Sort CMS Database Table list
384 ([15944](https://github.com/civicrm/civicrm-core/pull/15944))**
386 - **Rename activity search field from status_id to activity_status_id
387 ([15947](https://github.com/civicrm/civicrm-core/pull/15947))**
389 - **CSV Export: Add deprecation warning
390 ([15951](https://github.com/civicrm/civicrm-core/pull/15951))**
392 - **Remove CRM_Contact_Form_Search_Custom_Basic from searches added on install.
393 ([15979](https://github.com/civicrm/civicrm-core/pull/15979))**
395 - **Add import & export metadata to activity.priority_id
396 ([15993](https://github.com/civicrm/civicrm-core/pull/15993))**
398 - **Too many dead people in sample data
399 ([dev/core#1329](https://lab.civicrm.org/dev/core/issues/1329):
400 [15967](https://github.com/civicrm/civicrm-core/pull/15967))**
402 - **Update dompdf (0.8.0=>0.8.3) & dependencies
403 ([15739](https://github.com/civicrm/civicrm-core/pull/15739))**
405 - **Upgrade ui-sortable angular library to v0.19.0
406 ([15868](https://github.com/civicrm/civicrm-core/pull/15868))**
408 - **Remove unused parameter
409 ([15953](https://github.com/civicrm/civicrm-core/pull/15953))**
411 - **Remove unused variables in completeOrder()
412 ([15841](https://github.com/civicrm/civicrm-core/pull/15841))**
414 - **Make else statement more legible
415 ([15974](https://github.com/civicrm/civicrm-core/pull/15974))**
417 - **Code style, remove typo, double ;; from code where it makes sense to do so
418 ([16001](https://github.com/civicrm/civicrm-core/pull/16001))**
420 - **Remove obsolete warning
421 ([15786](https://github.com/civicrm/civicrm-core/pull/15786))**
423 - **Remove calls to deprecated pseudoconstant activityType, test
424 ([15995](https://github.com/civicrm/civicrm-core/pull/15995))**
426 - **Remove unused cancelledStatus assign on contributionView
427 ([16019](https://github.com/civicrm/civicrm-core/pull/16019))**
429 - **Remove join to civicrm_option_value in favour of using getLabel funct…
430 ([15734](https://github.com/civicrm/civicrm-core/pull/15734))**
432 - **Remove unused functions
433 ([15956](https://github.com/civicrm/civicrm-core/pull/15956))**
435 - **Remove unused parameter recur from CompleteOrder signature
436 ([15800](https://github.com/civicrm/civicrm-core/pull/15800))**
438 - **[REF] minor refactor - move handling of 'skipMerge' to the skipMerge
439 function ([15828](https://github.com/civicrm/civicrm-core/pull/15828))**
441 - **[REF] refactor on nasty Dedupe function
442 ([15830](https://github.com/civicrm/civicrm-core/pull/15830))**
444 - **[REF] calculate 'amount' on ContributionPage in a shared way in one scenario
445 ([15810](https://github.com/civicrm/civicrm-core/pull/15810))**
447 - **[REF] XMLProcessor/Report - Extract method to make it more testable
448 ([15838](https://github.com/civicrm/civicrm-core/pull/15838))**
450 - **[REF] very minor tidy up
451 ([15756](https://github.com/civicrm/civicrm-core/pull/15756))**
453 - **[REF] remove another unnecessary pass-by-reference
454 ([15902](https://github.com/civicrm/civicrm-core/pull/15902))**
456 - **[REF] Convert CRM_Core_Error::fatal to CRM_Core_Error::statusBounce i…
457 ([15863](https://github.com/civicrm/civicrm-core/pull/15863))**
459 - **[REF] CSV Export: Remove impossible checks on var
460 ([15954](https://github.com/civicrm/civicrm-core/pull/15954))**
462 - **[REF] Further cleanup on address handling in merge code.
463 ([15950](https://github.com/civicrm/civicrm-core/pull/15950))**
465 - **[REF] Move CRM_Event_Form_EventFees::buildQuickForm to Participant_Form
466 class ([15871](https://github.com/civicrm/civicrm-core/pull/15871))**
468 - **[REF] Minor simplifcation on initSet
469 ([15870](https://github.com/civicrm/civicrm-core/pull/15870))**
471 - **[REF] remove unused lines of code
472 ([15869](https://github.com/civicrm/civicrm-core/pull/15869))**
474 - **[REF] Standardise the Grant Search form handling
475 ([15931](https://github.com/civicrm/civicrm-core/pull/15931))**
477 - **[REF] further removal of unnecessary params
478 ([15901](https://github.com/civicrm/civicrm-core/pull/15901))**
480 - **[REF] Remove unused parameter
481 ([15960](https://github.com/civicrm/civicrm-core/pull/15960))**
483 - **[REF] clean up merge array.
484 ([15970](https://github.com/civicrm/civicrm-core/pull/15970))**
486 - **[REF] replace copy & paste with shared getSortID function.
487 ([15783](https://github.com/civicrm/civicrm-core/pull/15783))**
489 - **[REF] return determination of whether to show expired fields to the calling
490 function ([15934](https://github.com/civicrm/civicrm-core/pull/15934))**
492 - **[REF] Minor code cleanup on the setting of contact greetings.
493 ([15949](https://github.com/civicrm/civicrm-core/pull/15949))**
495 - **[REF] Standardise form handling in the Find Pledges search form
496 ([15930](https://github.com/civicrm/civicrm-core/pull/15930))**
498 - **[REF] Add setSearchMetadata to each of the classes that extend
500 ([15806](https://github.com/civicrm/civicrm-core/pull/15806))**
502 - **[REF] extract setDeprecatedDefaults
503 ([15805](https://github.com/civicrm/civicrm-core/pull/15805))**
505 - **Add unit test for searching by participant_status_id & switch to generic
506 function ([15803](https://github.com/civicrm/civicrm-core/pull/15803))**
508 - **Add testing for various params that pass through
509 Contact_BAO_Query::optionValueQuery
510 ([15996](https://github.com/civicrm/civicrm-core/pull/15996))**
512 - **Fix CRM/Event/BAO/AdditionalPaymentTest.php to use Order.create
513 ([15813](https://github.com/civicrm/civicrm-core/pull/15813))**
515 - **Test fixes - addresses more invalid setup data
516 ([15802](https://github.com/civicrm/civicrm-core/pull/15802))**
518 - **FinancialTrxnTest - Fix unit test to be 'legit'
519 ([15799](https://github.com/civicrm/civicrm-core/pull/15799))**
521 - **[Test] Remove hard coded it reference
522 ([15906](https://github.com/civicrm/civicrm-core/pull/15906))**
524 - **[Test] fix test setup on ANet tests
525 ([15908](https://github.com/civicrm/civicrm-core/pull/15908))**
527 - **CiviCaseTestCase setup() can make duplicate activity type option values
528 (Test for [dev/core#1394](https://lab.civicrm.org/dev/core/issues/1394):
529 [15853](https://github.com/civicrm/civicrm-core/pull/15853))**
531 - **[NFC] Add in unit test of code being altered by #15826
532 ([15849](https://github.com/civicrm/civicrm-core/pull/15849))**
534 - **[NFC] [Test] Minor test cleanup on CiviMailUtils
535 ([15907](https://github.com/civicrm/civicrm-core/pull/15907))**
537 - **(NFC) api_v3_ExtensionTest - Fix when executing on build with 25+ extensions
538 ([15892](https://github.com/civicrm/civicrm-core/pull/15892))**
540 - **[NFC] [Test-only] Remove partially paid from statuses tested for
542 ([15866](https://github.com/civicrm/civicrm-core/pull/15866))**
544 - **[NFC] Test fix - incorrect records created due to test set up using
545 PartiallyPaid when no payment is made
546 ([15854](https://github.com/civicrm/civicrm-core/pull/15854))**
548 - **[NFC] Update composer lockfile to remove warning
549 ([15886](https://github.com/civicrm/civicrm-core/pull/15886))**
551 - **[NFC] Cleanup comments, string comparison in grant search
552 ([15983](https://github.com/civicrm/civicrm-core/pull/15983))**
554 - **[NFC] cleanup on QueryTest
555 ([15994](https://github.com/civicrm/civicrm-core/pull/15994))**
557 - **[NFC] reformat CiviUnitTestCase.php
558 ([15801](https://github.com/civicrm/civicrm-core/pull/15801))**
560 - **[NFC] Reformat Contact_Form_Search_Advanced
561 ([15777](https://github.com/civicrm/civicrm-core/pull/15777))**
563 - **[NFC] comment fixes - exceptions & don't declare NULL
564 ([15776](https://github.com/civicrm/civicrm-core/pull/15776))**
566 - **[NFC] Update copyright date for 2020
567 ([586](https://github.com/civicrm/civicrm-drupal/pull/586))**
569 - **Remove copyright & years from all code, except LICENSE.md etc
570 ([dev/core#878](https://lab.civicrm.org/dev/core/issues/878):
571 [588](https://github.com/civicrm/civicrm-drupal/pull/588),
572 [169](https://github.com/civicrm/civicrm-wordpress/pull/169),
573 [15843](https://github.com/civicrm/civicrm-core/pull/15843),
574 [587](https://github.com/civicrm/civicrm-drupal/pull/587) and
575 [104](https://github.com/civicrm/civicrm-backdrop/pull/104))**
577 - **[NFC] Update copyright date for 2020
578 ([585](https://github.com/civicrm/civicrm-drupal/pull/585))**
580 - **[NFC] Update copyright date for 2020
581 ([270](https://github.com/civicrm/civicrm-packages/pull/270))**
583 - **[NFC] Remove dinosaur function
584 ([16010](https://github.com/civicrm/civicrm-core/pull/16010))**
586 - **[NFC] code cleanup in test class.
587 ([16026](https://github.com/civicrm/civicrm-core/pull/16026))**
589 - **Membership and Event Related Contributions - shows all contributions (Clean
590 up for [dev/core#1435](https://lab.civicrm.org/dev/core/issues/1435):
591 [16023](https://github.com/civicrm/civicrm-core/pull/16023))**
593 - **[NFC] Remove unused variable not used since v4.4
594 ([15835](https://github.com/civicrm/civicrm-core/pull/15835))**
596 - **(NFC) PULL_REQUEST_TEMPLATE.md - Improve suggestions for
597 under-the-hood/non-UI changes
598 ([15837](https://github.com/civicrm/civicrm-core/pull/15837))**
600 - **Duplicate custom field blocks on open case (Add Code Comments for
601 [dev/core#1352](https://lab.civicrm.org/dev/core/issues/1352):
602 [15851](https://github.com/civicrm/civicrm-core/pull/15851))**
604 - **[NFC] minimal test for Mailing.update_email_resetdate
605 ([15832](https://github.com/civicrm/civicrm-core/pull/15832))**
607 - **[NFC] declare thrown exceptions
608 ([15809](https://github.com/civicrm/civicrm-core/pull/15809))**
610 - **[NFC] fix test to correctly set up partially paid contribution
611 ([15867](https://github.com/civicrm/civicrm-core/pull/15867))**
613 - **[NFC] Update copyright date for 2020
614 ([167](https://github.com/civicrm/civicrm-wordpress/pull/167))**
616 - **[NFC] Update copyright date for 2020
617 ([54](https://github.com/civicrm/civicrm-joomla/pull/54))**
619 - **[NFC] Update copyright date for 2020
620 ([15755](https://github.com/civicrm/civicrm-core/pull/15755))**
622 - **Update copyright date for 2020
623 ([102](https://github.com/civicrm/civicrm-backdrop/pull/102))**
625 - **add contributor name
626 ([15758](https://github.com/civicrm/civicrm-core/pull/15758))**
628 ## <a name="credits"></a>Credits
630 This release was developed by the following code authors:
632 AGH Strategies - Andrew Hunt; Agileware - Justin Freeman; Australian Greens -
633 Seamus Lee; Christian Wach; CiviCRM - Coleman Watts, Tim Otten; CiviDesk -
634 Yashodha Chaku; CompuCorp - Camilo Rodriguez; Coop SymbioTIC - Mathieu Lutfy;
635 Dave D; Electronic Frontier Foundation - Mark Burdett; Fuzion - Jitendra
636 Purohit; Greenpeace CEE - Patrick Figel; Jamie Tillman; Jens Schuppe; JMA
637 Consulting - Monish Deb; Joost Fock; Megaphone Technology Consulting - Jon
638 Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Progressive
639 Technology Project - Jamie McClelland; Richard van Oosterhout; Semper IT - Karin
640 Gerritsen; Squiffle Consulting - Aidan Saunders; Tadpole Collective - Kevin
641 Cristiano; Wikimedia Foundation - Eileen McNaughton
643 Most authors also reviewed code for this release; in addition, the following
644 reviewers contributed their comments:
646 AGH Strategies - Alice Frumin; Artful Robot - Rich Lott; Chris Burgess; Circle
647 Interactive - Dave Jenkins; John Kingsnorth; Freeform Solutions - Lola Slade;
648 OSSeed Technologies LLP - Revati Gawas;
650 ## <a name="feedback"></a>Feedback
652 These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like
653 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm