| 1 | # CiviCRM 5.19.0 |
| 2 | |
| 3 | Released November 6, 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? | 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 | - **Migrate APIv4 into civicrm-core |
| 29 | ([15309](https://github.com/civicrm/civicrm-core/pull/15309) and |
| 30 | [15331](https://github.com/civicrm/civicrm-core/pull/15331))** |
| 31 | |
| 32 | Migrates API version 4 from a standalone extension (`org.civicrm.api4`) |
| 33 | into the core codebase. If the old extension is present, it will be disabled. |
| 34 | |
| 35 | For more information, see [Developer Guide: APIv4 Usage](https://docs.civicrm.org/dev/en/latest/api/v4/usage/) |
| 36 | and [Differences between APIv3 / APIv4](https://docs.civicrm.org/dev/en/latest/api/v4/differences-with-v3/). |
| 37 | |
| 38 | - **Improve obsolete extension management |
| 39 | ([15352](https://github.com/civicrm/civicrm-core/pull/15352))** |
| 40 | |
| 41 | This change improves the extension UI by marking obsolete extensions as |
| 42 | "Obsolete", removing the Install and Enable actions for obsolete extensions |
| 43 | and completely uninstalling obsolete extensions during core upgrades. |
| 44 | |
| 45 | - **Check requirements before upgrading extensions via the UI |
| 46 | ([15450](https://github.com/civicrm/civicrm-core/pull/15450))** |
| 47 | |
| 48 | Improves user experience by checking for required dependencies when upgrading |
| 49 | an extension. If the extension version being upgraded to requires a dependency |
| 50 | throws a helpful error. |
| 51 | |
| 52 | - **Upgrader: handle missing obsolete extensions |
| 53 | ([15343](https://github.com/civicrm/civicrm-core/pull/15343))** |
| 54 | |
| 55 | Improves the mechanism for auto-disabling obsolete extensions during the |
| 56 | upgrade process to disable extensions even if they are missing. |
| 57 | |
| 58 | - **Updated entityRefFilters hook to support alter form create links |
| 59 | ([15231](https://github.com/civicrm/civicrm-core/pull/15231))** |
| 60 | |
| 61 | Improves the `hook_civicrm_entityRefFilters()` to support altering create |
| 62 | links like "New Household" and "New Individual". |
| 63 | |
| 64 | - **Add getdisplayvalue api with unit test. |
| 65 | ([15335](https://github.com/civicrm/civicrm-core/pull/15335))** |
| 66 | |
| 67 | Adds a new action `getdisplayvalue` to the `CustomValue` entity. |
| 68 | |
| 69 | - **Add in an index on geo_code_1 and geo_code_2 to assist with distance and |
| 70 | other queries ([15361](https://github.com/civicrm/civicrm-core/pull/15361))** |
| 71 | |
| 72 | Adds an index to `geo_code_1` and `geo_code_2` to help calculation |
| 73 | queries based on latitude and longitude. |
| 74 | |
| 75 | - **Allow columns in relationship table to be modified by searchColumns hook |
| 76 | ([14184](https://github.com/civicrm/civicrm-core/pull/14184))** |
| 77 | |
| 78 | Allow columns in the relationship table to be modified by |
| 79 | `hook_civicrm_searchColumns()`. This allows developers to modify the columns |
| 80 | shown to the user on the Contact relationships tab. |
| 81 | |
| 82 | - **Per agreement in NYC sprint, add status check is_active to table |
| 83 | ([dev/core#1295](https://lab.civicrm.org/dev/core/issues/1295): |
| 84 | [15409](https://github.com/civicrm/civicrm-core/pull/15409) and |
| 85 | [15416](https://github.com/civicrm/civicrm-core/pull/15416))** |
| 86 | |
| 87 | Adds an `is_active` field to the `civicrm_status_pref` table which is |
| 88 | api-accessible but not UI exposed. This field enables developers and system |
| 89 | administrators to turn off a system check. |
| 90 | |
| 91 | - **Declare metadata for component payment fields on export |
| 92 | ([15243](https://github.com/civicrm/civicrm-core/pull/15243))** |
| 93 | |
| 94 | Adds metadata for component payment fields. |
| 95 | |
| 96 | - **Add CRM_Utils_JS::encode function |
| 97 | ([15285](https://github.com/civicrm/civicrm-core/pull/15285))** |
| 98 | |
| 99 | Adds a utility function for encoding javascript strings which gives an output |
| 100 | that looks more like handwritten javascript and less like the overly-quoted |
| 101 | `json_encode`. |
| 102 | |
| 103 | - **CRM_Utils_JS - Improve encode handling of strings |
| 104 | ([15295](https://github.com/civicrm/civicrm-core/pull/15295))** |
| 105 | |
| 106 | Improves test scenarios and tweaks the encode and decode functions to handle |
| 107 | strings better. |
| 108 | |
| 109 | - **Event Info/Contribution Page Smarty templates are inconsistent and ugly |
| 110 | ([dev/core#1225](https://lab.civicrm.org/dev/core/issues/1225): |
| 111 | [15168](https://github.com/civicrm/civicrm-core/pull/15168))** |
| 112 | |
| 113 | Improves the HTML of the smarty templates that power the "Event Info" and |
| 114 | "Contribution Page". The pages appear the same to the end user but the |
| 115 | underlying HTML is cleaner. |
| 116 | |
| 117 | ### CiviContribute |
| 118 | |
| 119 | - **Update Online Contributions section of configuration checklist |
| 120 | ([dev/core#1259](https://lab.civicrm.org/dev/core/issues/1259): |
| 121 | [15317](https://github.com/civicrm/civicrm-core/pull/15317))** |
| 122 | |
| 123 | Improves the user experience of the Configuration Checklist Online |
| 124 | Contributions section, specifically: only shows this section if CiviContribute |
| 125 | is enabled, removes the system workflow templates list item, improves links to |
| 126 | documentation. |
| 127 | |
| 128 | - **Add trxn_id as a parameter on Payment.get |
| 129 | ([15417](https://github.com/civicrm/civicrm-core/pull/15417))** |
| 130 | |
| 131 | Adds `trxn_id` as a viable parameter to the API call `Payment.get`. |
| 132 | |
| 133 | ### CiviMail |
| 134 | |
| 135 | - **Mailing API - Expose option list for `header_id` and `footer_id` |
| 136 | ([15325](https://github.com/civicrm/civicrm-core/pull/15325))** |
| 137 | |
| 138 | Improves the Mailing API `getoptions` and `getfields` actions to work for the |
| 139 | fields `header_id` and `footer_id`. |
| 140 | |
| 141 | - **Add unique name to mailing_job.start_date |
| 142 | ([15210](https://github.com/civicrm/civicrm-core/pull/15210))** |
| 143 | |
| 144 | Adds metadata to the `MailingJob.start_date` field to prepare this field to |
| 145 | use datepicker. |
| 146 | |
| 147 | ## <a name="bugs"></a>Bugs resolved |
| 148 | |
| 149 | ### Core CiviCRM |
| 150 | |
| 151 | - **Error during "Import Contribution" and not able to import |
| 152 | ([dev/core#1269](https://lab.civicrm.org/dev/core/issues/1269): |
| 153 | [15447](https://github.com/civicrm/civicrm-core/pull/15447))** |
| 154 | |
| 155 | Fixes an error 'Error: Class name must be a valid object or a string in |
| 156 | CRM_Import_Parser->parsePseudoConstantField()'' when attempting to import a |
| 157 | contribution spreadsheet with a custom field column. |
| 158 | |
| 159 | - **PHP 7.3 warning on "Import contribution" page. |
| 160 | ([dev/core#1272](https://lab.civicrm.org/dev/core/issues/1272): |
| 161 | [15346](https://github.com/civicrm/civicrm-core/pull/15346))** |
| 162 | |
| 163 | Fixes a warning: 'Warning: "continue" targeting switch is equivalent to |
| 164 | "break".' on the match fields screen of a Contributions import. |
| 165 | |
| 166 | - **Undefined variable isLiveMode when using print/merge document action from |
| 167 | search results ([dev/core#1281](https://lab.civicrm.org/dev/core/issues/1281): |
| 168 | [15420](https://github.com/civicrm/civicrm-core/pull/15420))** |
| 169 | |
| 170 | Fixes an E-notice "Undefined variable: isLiveMode in |
| 171 | CRM_Contact_Form_Task_PDFLetterCommon::postProcess() (line 183 of |
| 172 | .../web/sites/all/modules/civicrm/CRM/Contact/Form/Task/PDFLetterCommon.php)" |
| 173 | when using print/merge document action from search results. |
| 174 | |
| 175 | - **Add Custom Fields to Logging Tables |
| 176 | ([15642](https://github.com/civicrm/civicrm-core/pull/15642), |
| 177 | [15726](https://github.com/civicrm/civicrm-core/pull/15726), and |
| 178 | [15741](https://github.com/civicrm/civicrm-core/pull/15741); related to |
| 179 | [dev/core#1093](https://lab.civicrm.org/dev/core/issues/1093))** |
| 180 | |
| 181 | This resolves a fatal error when a custom field is added via XML file upon |
| 182 | installation of an extension, logging is turned on, and part of the |
| 183 | installation process inserts information on that new field. |
| 184 | |
| 185 | In addition, it preserves a feature looking up option group IDs according to |
| 186 | names provided in the XML. |
| 187 | |
| 188 | - **Find Activities/Pledges not working in 5.19beta1 and master |
| 189 | ([dev/core#1348](https://lab.civicrm.org/dev/core/issues/1348): |
| 190 | [15655](https://github.com/civicrm/civicrm-core/pull/15655) and |
| 191 | [15657](https://github.com/civicrm/civicrm-core/pull/15657))** |
| 192 | |
| 193 | This resolves a bug where the values set on activity and pledge search forms |
| 194 | were not respected, instead returning all activities or pledges. |
| 195 | |
| 196 | - **Programatic Installation of Extension after Upgrading CiviCRM causes Error |
| 197 | ([dev/core#1360](https://lab.civicrm.org/dev/core/issues/1360): |
| 198 | [15724](https://github.com/civicrm/civicrm-core/pull/15724))** |
| 199 | |
| 200 | - **exported data truncated to 255 when alphanumeric field value |
| 201 | ([dev/core#1283](https://lab.civicrm.org/dev/core/issues/1283): |
| 202 | [15414](https://github.com/civicrm/civicrm-core/pull/15414))** |
| 203 | |
| 204 | Fixes a bug where custom fields longer than 255 chars were not being truncated |
| 205 | to 255 characters when exported. |
| 206 | |
| 207 | - **Importing campaigns only works with label |
| 208 | ([dev/core#1285](https://lab.civicrm.org/dev/core/issues/1285): |
| 209 | [15453](https://github.com/civicrm/civicrm-core/pull/15453))** |
| 210 | |
| 211 | Fixes a regression when importing Contributions where the campaign id stopped |
| 212 | working as a valid option so that the contribution import accepts ids or |
| 213 | labels for campaigns. |
| 214 | |
| 215 | - **Blank screen with no errors if you choose "Exclude contacts with 'do not |
| 216 | mail' privacy" during export where that causes it to have zero contacts |
| 217 | ([dev/core#1293](https://lab.civicrm.org/dev/core/issues/1293): |
| 218 | [15439](https://github.com/civicrm/civicrm-core/pull/15439) and |
| 219 | [15440](https://github.com/civicrm/civicrm-core/pull/15440))** |
| 220 | |
| 221 | Improves the ui when outputting an empty csv file. Before this change |
| 222 | attempting to export a csv with no rows would result in a white screen of |
| 223 | death with this change an empty csv is exported. |
| 224 | |
| 225 | - **Do not check for the extension we are trying to download itself |
| 226 | ([15506](https://github.com/civicrm/civicrm-core/pull/15506))** |
| 227 | |
| 228 | Fixes an error when trying to add and install a new extension thru the ui. |
| 229 | |
| 230 | - **Removing 'Array' from user dashboard contributions |
| 231 | ([15365](https://github.com/civicrm/civicrm-core/pull/15365))** |
| 232 | |
| 233 | Ensures that the word "Array" never appears in the "Your Contribution's" |
| 234 | section on the user dashboard. |
| 235 | |
| 236 | - **Stop passing exportMode, componentTable and ids by reference in export hook |
| 237 | ([15302](https://github.com/civicrm/civicrm-core/pull/15302))** |
| 238 | |
| 239 | Makes it easier to alter an exports `exportMode`, `componentTable` and ids |
| 240 | variables. |
| 241 | |
| 242 | - **Ensure Dashboard domain ID is set even when passed as a param |
| 243 | ([15282](https://github.com/civicrm/civicrm-core/pull/15282))** |
| 244 | |
| 245 | Ensures the `domain_id` parameter is respected when creating a dashlet via the |
| 246 | `Dashboard.create` API. |
| 247 | |
| 248 | - **CRM-21777 - Set readonly for the smtp fields initialised in |
| 249 | civicrm_settings.php |
| 250 | ([15305](https://github.com/civicrm/civicrm-core/pull/15305))** |
| 251 | |
| 252 | Ensures that SMTP fields initialized in `civicrm.settings.php` are loaded as |
| 253 | read only. Before this change SMTP fields initialized in `civicrm.settings.php` |
| 254 | were loaded as editable but editing them would do nothing. |
| 255 | |
| 256 | - **Fix php 7.2+ deprecation error |
| 257 | ([15178](https://github.com/civicrm/civicrm-core/pull/15178))** |
| 258 | |
| 259 | - **Update spelling of htmlpurifier to be correct spelling |
| 260 | ([15342](https://github.com/civicrm/civicrm-core/pull/15342))** |
| 261 | |
| 262 | - **Fix directory name spelling for htmlpurifier |
| 263 | ([265](https://github.com/civicrm/civicrm-packages/pull/265))** |
| 264 | |
| 265 | - **Fatal error in export when using "Merge All Contacts with the Same Address" |
| 266 | and Selected Fields instead of Primary Fields |
| 267 | ([dev/core#1302](https://lab.civicrm.org/dev/core/issues/1302): |
| 268 | [15443](https://github.com/civicrm/civicrm-core/pull/15443))** |
| 269 | |
| 270 | - **Fatal error when sorting on a custom field in a profile listing |
| 271 | ([dev/core#1305](https://lab.civicrm.org/dev/core/issues/1305): |
| 272 | [15454](https://github.com/civicrm/civicrm-core/pull/15454))** |
| 273 | |
| 274 | - **Fix status check not rendering before 5.19 migrations |
| 275 | ([15428](https://github.com/civicrm/civicrm-core/pull/15428))** |
| 276 | |
| 277 | - **Fix height of select2 box (appears squished) |
| 278 | ([15403](https://github.com/civicrm/civicrm-core/pull/15403))** |
| 279 | |
| 280 | - **Regression: on translated site with Pending status being translated, |
| 281 | membership are renewed twice |
| 282 | ([dev/core#1291](https://lab.civicrm.org/dev/core/issues/1291): |
| 283 | [15376](https://github.com/civicrm/civicrm-core/pull/15376))** |
| 284 | |
| 285 | ### CiviCase |
| 286 | |
| 287 | - **Case statuses in case type configuration page are not ordered by their |
| 288 | weight. ([dev/core#1262](https://lab.civicrm.org/dev/core/issues/1262): |
| 289 | [15319](https://github.com/civicrm/civicrm-core/pull/15319))** |
| 290 | |
| 291 | ### CiviContribute |
| 292 | |
| 293 | - **Fix a regression whereby payment details are not saved from the |
| 294 | AdditionalPayment form |
| 295 | ([15537](https://github.com/civicrm/civicrm-core/pull/15537))** |
| 296 | |
| 297 | - **Contribution Summary report only shows first 50 entries |
| 298 | ([dev/core#1252](https://lab.civicrm.org/dev/core/issues/1252): |
| 299 | [15558](https://github.com/civicrm/civicrm-core/pull/15558))** |
| 300 | |
| 301 | - **Notice error on contribution page |
| 302 | ([dev/core#1264](https://lab.civicrm.org/dev/core/issues/1264): |
| 303 | [15320](https://github.com/civicrm/civicrm-core/pull/15320))** |
| 304 | |
| 305 | Fixes an e-notice "undefined index receipt_from_name" on the |
| 306 | contribution page. |
| 307 | |
| 308 | - **Fix checking of isSubscriptionCancelled when label is changed |
| 309 | ([15406](https://github.com/civicrm/civicrm-core/pull/15406))** |
| 310 | |
| 311 | Moves to comparing names instead of labels to prevent issues for multilingual |
| 312 | users. |
| 313 | |
| 314 | - **Check number doesn't show up if payment method name - Check changed to |
| 315 | Cheque ([dev/financial#67](https://lab.civicrm.org/dev/financial/issues/67): |
| 316 | [15263](https://github.com/civicrm/civicrm-core/pull/15263))** |
| 317 | |
| 318 | - **Check number doesn't get stored in associated financial_trxn record, if the |
| 319 | contribution is made using 'Contribution/Membership batch data Entry' form |
| 320 | ([dev/financial#68](https://lab.civicrm.org/dev/financial/issues/68): |
| 321 | [15272](https://github.com/civicrm/civicrm-core/pull/15272))** |
| 322 | |
| 323 | - **Recording one payment against a "Pending (Incomplete Transaction)" results |
| 324 | in two payments |
| 325 | ([dev/financial#69](https://lab.civicrm.org/dev/financial/issues/69): |
| 326 | [15502](https://github.com/civicrm/civicrm-core/pull/15502))** |
| 327 | |
| 328 | - **Can't email a partially paid invoice |
| 329 | ([dev/financial#71](https://lab.civicrm.org/dev/financial/issues/71): |
| 330 | [15388](https://github.com/civicrm/civicrm-core/pull/15388))** |
| 331 | |
| 332 | ### CiviEvent |
| 333 | |
| 334 | - **Enotice fix (unreleased enotice) |
| 335 | ([15569](https://github.com/civicrm/civicrm-core/pull/15569))** |
| 336 | |
| 337 | This resolves a PHP notice reading "Notice: Undefined variable: eventID" when |
| 338 | recording a payment linked to an event registration. |
| 339 | |
| 340 | ### CiviMail |
| 341 | |
| 342 | - **Mail job stuck after contact marked deceased |
| 343 | ([dev/core#861](https://lab.civicrm.org/dev/core/issues/861): |
| 344 | [15404](https://github.com/civicrm/civicrm-core/pull/15404))** |
| 345 | |
| 346 | Ensures no bulk emails are sent to contacts changed to deceased or put on hold |
| 347 | between when the mailing is scheduled and when it is sent. |
| 348 | |
| 349 | - **jasmine test crmMailingRadioDateSpec.js always has a failure if west of GMT |
| 350 | ([dev/core#1279](https://lab.civicrm.org/dev/core/issues/1279): |
| 351 | [15366](https://github.com/civicrm/civicrm-core/pull/15366))** |
| 352 | |
| 353 | ### CiviMember |
| 354 | |
| 355 | - **Fix 5.18 regression on membership handling |
| 356 | ([15494](https://github.com/civicrm/civicrm-core/pull/15494))** |
| 357 | |
| 358 | Fixes a 5.18 regression where sites with labels for contribution status |
| 359 | 'Pending' that are NOT 'Pending' would result in the membership end date being |
| 360 | inappropriately extended when the back end renewal form is submitted with a |
| 361 | pending payment. |
| 362 | |
| 363 | - **Prevent error on price set membership update |
| 364 | ([15142](https://github.com/civicrm/civicrm-core/pull/15142))** |
| 365 | |
| 366 | Fixes a fatal error when the `repeattransaction` action is called for a |
| 367 | transaction that includes two memberships of the same type. |
| 368 | |
| 369 | - **Contributions not recording if selected membership is "none" when using a |
| 370 | membership priceset |
| 371 | ([dev/core#792](https://lab.civicrm.org/dev/core/issues/792): |
| 372 | [15094](https://github.com/civicrm/civicrm-core/pull/15094))** |
| 373 | |
| 374 | - **Regression fix on Paypal Std with memberships not being finalised correctly. |
| 375 | ([15538](https://github.com/civicrm/civicrm-core/pull/15538))** |
| 376 | |
| 377 | ### Joomla Integration |
| 378 | |
| 379 | - **[Joomla 4.0] CiviCRM pages don't work in Joomla frontend - Class 'JRequest' |
| 380 | not found ([dev/joomla#22](https://lab.civicrm.org/dev/joomla/issues/22): |
| 381 | [15132](https://github.com/civicrm/civicrm-core/pull/15132))** |
| 382 | |
| 383 | Fixes a bug where no CiviCRM Frontend page could be viewed on Joomla 4.0. |
| 384 | |
| 385 | ## <a name="misc"></a>Miscellany |
| 386 | |
| 387 | - **Rename balanceTrxnParams to paymentTrxnParams [REF] |
| 388 | ([15539](https://github.com/civicrm/civicrm-core/pull/15539))** |
| 389 | |
| 390 | - **Remove legacy Yahoo references from the Mapping/Geocoding settings/code. |
| 391 | ([15405](https://github.com/civicrm/civicrm-core/pull/15405))** |
| 392 | |
| 393 | - **(DX) api/v3/examples - Rename `*.php` to `*.ex.php` |
| 394 | ([15310](https://github.com/civicrm/civicrm-core/pull/15310))** |
| 395 | |
| 396 | - **Update CiviCRM contributors.txt |
| 397 | ([15303](https://github.com/civicrm/civicrm-core/pull/15303))** |
| 398 | |
| 399 | - **Remove static caching of static on Contribution page tab |
| 400 | ([15329](https://github.com/civicrm/civicrm-core/pull/15329))** |
| 401 | |
| 402 | - **Extract the code to get the field name. |
| 403 | ([15389](https://github.com/civicrm/civicrm-core/pull/15389))** |
| 404 | |
| 405 | - **Don't use random parameters to detect if we should create MembershipPayment |
| 406 | ([14897](https://github.com/civicrm/civicrm-core/pull/14897))** |
| 407 | |
| 408 | - **Remove call to updateRecurMembership which is handled by Membership::create |
| 409 | BAO ([15384](https://github.com/civicrm/civicrm-core/pull/15384))** |
| 410 | |
| 411 | - **[REF] Pull out anonymous javascript function to make it testable |
| 412 | ([15378](https://github.com/civicrm/civicrm-core/pull/15378))** |
| 413 | |
| 414 | - **[REF] Consolidate getFormValues on contribution search |
| 415 | ([15379](https://github.com/civicrm/civicrm-core/pull/15379))** |
| 416 | |
| 417 | - **[REF] Fix path to htmlpurifier in IDS file |
| 418 | ([15360](https://github.com/civicrm/civicrm-core/pull/15360))** |
| 419 | |
| 420 | - **[REF] Remove call to depreacated getValue call in Mailing Preferences… |
| 421 | ([15368](https://github.com/civicrm/civicrm-core/pull/15368))** |
| 422 | |
| 423 | - **(REF) Remove unused functions, setTemplateMenuValues() and getNavigation() |
| 424 | ([15274](https://github.com/civicrm/civicrm-core/pull/15274))** |
| 425 | |
| 426 | - **REF Make the formatParamsForPaymentProcessor function more generic so it can |
| 427 | be used more ([15280](https://github.com/civicrm/civicrm-core/pull/15280))** |
| 428 | |
| 429 | - **REF Explicitly specify params so we can find problems with comparing |
| 430 | translated labels |
| 431 | ([15397](https://github.com/civicrm/civicrm-core/pull/15397))** |
| 432 | |
| 433 | - **REF Remove some duplication in CRM_Utils_Type::escape/validate |
| 434 | ([14577](https://github.com/civicrm/civicrm-core/pull/14577))** |
| 435 | |
| 436 | - **[REF] don't handle non-array, pass by reference |
| 437 | ([15413](https://github.com/civicrm/civicrm-core/pull/15413))** |
| 438 | |
| 439 | - **(NFC) api4 - Apply standard headers |
| 440 | ([15353](https://github.com/civicrm/civicrm-core/pull/15353))** |
| 441 | |
| 442 | - **[NFC] code formatting & exceptions in doc blocks |
| 443 | ([15402](https://github.com/civicrm/civicrm-core/pull/15402))** |
| 444 | |
| 445 | - **[NFC] Rename local variable |
| 446 | ([15377](https://github.com/civicrm/civicrm-core/pull/15377))** |
| 447 | |
| 448 | - **[NFC] Reword event docs to clarify priority vs weight |
| 449 | ([15308](https://github.com/civicrm/civicrm-core/pull/15308))** |
| 450 | |
| 451 | - **[NFC] array formatting: |
| 452 | ([15250](https://github.com/civicrm/civicrm-core/pull/15250))** |
| 453 | |
| 454 | - **[NFC] Add in code comments about the column default issue with is_ema… |
| 455 | ([15301](https://github.com/civicrm/civicrm-core/pull/15301))** |
| 456 | |
| 457 | - **CRM-21677 Missing Summary |
| 458 | ([15230](https://github.com/civicrm/civicrm-core/pull/15230))** |
| 459 | |
| 460 | - **Add test for uF group one bug |
| 461 | ([15381](https://github.com/civicrm/civicrm-core/pull/15381))** |
| 462 | |
| 463 | - **Unit test for #15094 fix |
| 464 | ([15228](https://github.com/civicrm/civicrm-core/pull/15228))** |
| 465 | |
| 466 | - **[TEST] dev/core#1046 - tests for case type edit screen |
| 467 | ([15385](https://github.com/civicrm/civicrm-core/pull/15385))** |
| 468 | |
| 469 | - **Extend Export test to cover altering sqlColumns and headerRows via |
| 470 | hook_civicrm_export |
| 471 | ([15312](https://github.com/civicrm/civicrm-core/pull/15312))** |
| 472 | |
| 473 | - **[NFC] Fix AuthorizeNet Test failure due to credit card being expired |
| 474 | ([15690](https://github.com/civicrm/civicrm-core/pull/15690))** |
| 475 | |
| 476 | ## <a name="credits"></a>Credits |
| 477 | |
| 478 | This release was developed by the following code authors: |
| 479 | |
| 480 | AGH Strategies - Andie Hunt, Eli Lisseck; Agileware - Justin Freeman; Andrew |
| 481 | Thompson; Australian Greens - Seamus Lee; Christian Wach; Circle Interactive - |
| 482 | Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; |
| 483 | CompuCorp - Vinu Varshith Sekar; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; |
| 484 | Dave D; Fuzion - Jitendra Purohit; Greenpeace CEE - Patrick Figel; JMA |
| 485 | Consulting - Monish Deb; John Kingsnorth; Megaphone Technology Consulting - Jon |
| 486 | Goldberg; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Kilakwa |
| 487 | Associates - smaen123; Wikimedia Foundation - Eileen McNaughton |
| 488 | |
| 489 | Most authors also reviewed code for this release; in addition, the following |
| 490 | reviewers contributed their comments: |
| 491 | |
| 492 | AGH Strategies - Alice Frumin; Artful Robot - Rich Lott; Circle Interactive - |
| 493 | Dave Jenkins; Community IT Academy - William Mortada; JMA Consulting - Joe |
| 494 | Murray; Korlon - Stuart Gaston; Nicol Wistreich; Tadpole Collective - Kevin |
| 495 | Cristiano |
| 496 | |
| 497 | ## <a name="feedback"></a>Feedback |
| 498 | |
| 499 | These release notes are edited by Alice Frumin and Andie Hunt. If you'd like |
| 500 | to provide feedback on them, please log in to https://chat.civicrm.org/civicrm |
| 501 | and contact `@agh1`. |