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