| 1 | # CiviCRM 5.30.0 |
| 2 | |
| 3 | Released October 7, 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?** | **yes** | |
| 21 | | **Introduce features?** | **yes** | |
| 22 | | **Fix bugs?** | **yes** | |
| 23 | |
| 24 | ## <a name="features"></a>Features |
| 25 | |
| 26 | ### Core CiviCRM |
| 27 | |
| 28 | - **APIv4 Explorer: Generate short cv code |
| 29 | ([18089](https://github.com/civicrm/civicrm-core/pull/18089))** |
| 30 | |
| 31 | Improves the APIv4 Explorer user interface by including cv code to run the API |
| 32 | from CLI. |
| 33 | |
| 34 | - **Optimise proximity custom search, by reducing addGeocodingData fn call |
| 35 | ([18248](https://github.com/civicrm/civicrm-core/pull/18248))** |
| 36 | |
| 37 | Improves performance of the proximity custom search. |
| 38 | |
| 39 | - **Support more table names for utf8mb4 conversions and database name |
| 40 | ([18249](https://github.com/civicrm/civicrm-core/pull/18249))** |
| 41 | |
| 42 | Improves the System.utf8conversion API so that one can specify table patterns |
| 43 | and databases. |
| 44 | |
| 45 | - **distmaker - Autogenerate civicrm-*-patchset.tar.gz |
| 46 | ([18229](https://github.com/civicrm/civicrm-core/pull/18229))** |
| 47 | |
| 48 | Adds a script to autogenerate `civicrm-*-patchset.tar.gz` instead of having to |
| 49 | manually generate it every release. |
| 50 | |
| 51 | - **Finish allowing use of SSL to connect to database |
| 52 | (Work Towards [dev/core#1926](https://lab.civicrm.org/dev/core/-/issues/1926): |
| 53 | [18095](https://github.com/civicrm/civicrm-core/pull/18095))** |
| 54 | |
| 55 | Code cleanup towards the goal of allowing SSL database connections. |
| 56 | |
| 57 | - **Profile settings - Add new contacts to a Group? is misleading |
| 58 | ([dev/core#1950](https://lab.civicrm.org/dev/core/-/issues/1950): |
| 59 | [18153](https://github.com/civicrm/civicrm-core/pull/18153))** |
| 60 | |
| 61 | Improves user experience by editing the help text and description for the "Add |
| 62 | new contacts to a Group?" setting. |
| 63 | |
| 64 | - **API4: Inconsistent behavior on Role ID |
| 65 | ([dev/event#37](https://lab.civicrm.org/dev/event/-/issues/37): |
| 66 | [18285](https://github.com/civicrm/civicrm-core/pull/18285))** |
| 67 | |
| 68 | Allows searching within arrays or serialized strings via APIv4 (and the new |
| 69 | Search extension). |
| 70 | |
| 71 | - **APIv4 - Fix output of CustomValue create/save/update |
| 72 | ([18195](https://github.com/civicrm/civicrm-core/pull/18195))** |
| 73 | |
| 74 | Improves APIv4 output when saving custom pseudo-entities so that it outputs |
| 75 | the values saved instead of `[is_error => 0, result => true]`. |
| 76 | |
| 77 | - **Add ability to enable query logging per process |
| 78 | ([18335](https://github.com/civicrm/civicrm-core/pull/18335))** |
| 79 | |
| 80 | Makes it possible to enable logging by process as opposed to all processes or |
| 81 | no processes. |
| 82 | |
| 83 | - **Expose field label to APIv4 and Search creator |
| 84 | ([18255](https://github.com/civicrm/civicrm-core/pull/18255) and |
| 85 | [18256](https://github.com/civicrm/civicrm-core/pull/18256))** |
| 86 | |
| 87 | Progress towards codifying the difference between a field's title and |
| 88 | label in the schema. |
| 89 | |
| 90 | These changes: |
| 91 | - expose labels to APIv4 |
| 92 | - switch to using labels in the new search extension. |
| 93 | - separates titles from labels in exportable fields. |
| 94 | - attempts to clarify the difference between titles and labels in the |
| 95 | getfields description as: |
| 96 | - title: "Technical name of field, shown in API and exports" |
| 97 | - label: "User-facing label, shown on most forms and displays" |
| 98 | |
| 99 | - **Metadata fix - phone_type_id, location_type_id, gender_id |
| 100 | ([18114](https://github.com/civicrm/civicrm-core/pull/18114))** |
| 101 | |
| 102 | Improves metadata for various fields to align with new title and label |
| 103 | standards. |
| 104 | |
| 105 | - **CRM_Utils_VersionCheck - respect force param |
| 106 | ([18183](https://github.com/civicrm/civicrm-core/pull/18183))** |
| 107 | |
| 108 | Makes the versionCheck job more consistent with other checks by respecting |
| 109 | APIv4's "force" setting to run even if disabled. |
| 110 | |
| 111 | - **Add Serialize key to payment_processor field for Event & Contribution Page |
| 112 | ([18110](https://github.com/civicrm/civicrm-core/pull/18110))** |
| 113 | |
| 114 | Use metatdata rather than code handling to save array of processors. This |
| 115 | makes it so that the DAO can handle arrays if it knows the format. |
| 116 | |
| 117 | ### CiviContribute |
| 118 | |
| 119 | - **Shell Financial ACLs extension |
| 120 | ([18269](https://github.com/civicrm/civicrm-core/pull/18269))** |
| 121 | |
| 122 | Begins work to move Financial ACL code into an extension. |
| 123 | |
| 124 | - **Add Line Item v4 API (Work Towards |
| 125 | [dev/core#1980](https://lab.civicrm.org/dev/core/-/issues/1980): |
| 126 | [18275](https://github.com/civicrm/civicrm-core/pull/18275) and |
| 127 | [18293](https://github.com/civicrm/civicrm-core/pull/18293))** |
| 128 | |
| 129 | Extends permission handling for LineItem delete and LineItem ACLs from APIv3 to |
| 130 | to APIv4 by moving it to the `financialacls` extension. |
| 131 | |
| 132 | - **Book keeping Report : Add Time field for Transaction Date and Receive Date |
| 133 | field ([dev/report#47](https://lab.civicrm.org/dev/report/-/issues/47): |
| 134 | [18268](https://github.com/civicrm/civicrm-core/pull/18268))** |
| 135 | |
| 136 | Adds a time field to the "Transaction Date" and "Receive Date" filters on the |
| 137 | Bookkeeping report. |
| 138 | |
| 139 | ### CiviEvent |
| 140 | |
| 141 | - **Wrap "not you" message in crmRegion |
| 142 | ([18236](https://github.com/civicrm/civicrm-core/pull/18236))** |
| 143 | |
| 144 | Wraps the "Not you, do you want to register for someone else" message in a |
| 145 | crmRegion so that it can be removed/replaced by the buildForm hook. |
| 146 | |
| 147 | ### CiviMail |
| 148 | |
| 149 | - **Add new columns to mailing summary report |
| 150 | ([dev/core#1944](https://lab.civicrm.org/dev/core/-/issues/1944): |
| 151 | [18132](https://github.com/civicrm/civicrm-core/pull/18132))** |
| 152 | |
| 153 | Adds two new columns to the mailing summary report: "Sender Name" and "Sender |
| 154 | Email". |
| 155 | |
| 156 | - **Add disable_smarty option to MessageTemplate.send API |
| 157 | ([18118](https://github.com/civicrm/civicrm-core/pull/18118))** |
| 158 | |
| 159 | Improves the `MessageTemplate.send` API by adding a new optional parameter |
| 160 | "disable_smarty", when "disable_smarty" is set to true smarty is not applied |
| 161 | to the contents of the message. |
| 162 | |
| 163 | ### WordPress Integration |
| 164 | |
| 165 | - **Switch WP over to new installer |
| 166 | ([dev/wordpress#37](https://lab.civicrm.org/dev/wordpress/-/issues/37): |
| 167 | [215](https://github.com/civicrm/civicrm-wordpress/pull/215))** |
| 168 | |
| 169 | Switch to new CiviCRM Installer. |
| 170 | |
| 171 | ### Drupal Integration |
| 172 | |
| 173 | - **Allow for the setting of an additional constant CIVICRM_DRUSH_DSN |
| 174 | ([613](https://github.com/civicrm/civicrm-drupal/pull/613))** |
| 175 | |
| 176 | Allows sites to configure CIVICRM_DRUSH_DSN for drush to use to set up |
| 177 | database connections. |
| 178 | |
| 179 | ## <a name="bugs"></a>Bugs resolved |
| 180 | |
| 181 | ### Core CiviCRM |
| 182 | |
| 183 | - **Increase size of mysql field in export table for column with |
| 184 | CRM_Utils_Type::T_INT type |
| 185 | ([dev/core#1661](https://lab.civicrm.org/dev/core/-/issues/1661): |
| 186 | [17956](https://github.com/civicrm/civicrm-core/pull/17956))** |
| 187 | |
| 188 | Fixes some data too long for column errors when exporting. |
| 189 | |
| 190 | - **Improve robustness of api/class.api.php |
| 191 | ([18283](https://github.com/civicrm/civicrm-core/pull/18283))** |
| 192 | |
| 193 | Ensures that the API mode is set to "local" when an empty string is passed |
| 194 | as the server. |
| 195 | |
| 196 | - **add serialize data to actionschedule |
| 197 | ([18289](https://github.com/civicrm/civicrm-core/pull/18289))** |
| 198 | |
| 199 | Ensures one can create a scheduled reminder via the API that triggers on two |
| 200 | different events. |
| 201 | |
| 202 | - **API - Add upgrade-safe checks to ensure table exists before reading |
| 203 | ([18135](https://github.com/civicrm/civicrm-core/pull/18135))** |
| 204 | |
| 205 | Adds efficient checks into the API (v3 and v4) to ensure a DAO table |
| 206 | exists before trying to read from it. This prevents hard-crashes in the UI |
| 207 | when there are pending updates (or during the upgrade process itself), |
| 208 | |
| 209 | - **DB_DataObject - Read CIVICRM_DEBUG_LOG_QUERY correctly |
| 210 | ([305](https://github.com/civicrm/civicrm-packages/pull/305))** |
| 211 | |
| 212 | Makes The value of `CIVICRM_DEBUG_LOG_QUERY` TRUE-ish or FALSE-ish instead of |
| 213 | considering any value true. |
| 214 | |
| 215 | - **APIv4 Explorer - Fix possible undefined index |
| 216 | ([18093](https://github.com/civicrm/civicrm-core/pull/18093))** |
| 217 | |
| 218 | - **Option value cache key missing domain ID can result in wrong value retrieved |
| 219 | for domain ([dev/core#1971](https://lab.civicrm.org/dev/core/-/issues/1971): |
| 220 | [18252](https://github.com/civicrm/civicrm-core/pull/18252))** |
| 221 | |
| 222 | - **Upgrade screen - show success instead of error if already upgraded |
| 223 | ([18181](https://github.com/civicrm/civicrm-core/pull/18181))** |
| 224 | |
| 225 | - **trim white space when checking dedupe |
| 226 | ([18234](https://github.com/civicrm/civicrm-core/pull/18234))** |
| 227 | |
| 228 | - **Fix search extension excluded from tarball |
| 229 | ([18402](https://github.com/civicrm/civicrm-core/pull/18402))** |
| 230 | |
| 231 | - **Permissions problem on add or edit template |
| 232 | ([dev/core#2008](https://lab.civicrm.org/dev/core/-/issues/2008): |
| 233 | [18437](https://github.com/civicrm/civicrm-core/pull/18437))** |
| 234 | |
| 235 | - **Search ext: Aggregate field fixes |
| 236 | ([18520](https://github.com/civicrm/civicrm-core/pull/18520))** |
| 237 | |
| 238 | - **Some datepicker fields only allow choosing dates far in the future |
| 239 | ([dev/core#2052](https://lab.civicrm.org/dev/core/-/issues/2052): |
| 240 | [18524](https://github.com/civicrm/civicrm-core/pull/18524))** |
| 241 | |
| 242 | ### CiviCase |
| 243 | |
| 244 | - **Fix js for case type status change on load |
| 245 | ([18254](https://github.com/civicrm/civicrm-core/pull/18254))** |
| 246 | |
| 247 | ### CiviContribute |
| 248 | |
| 249 | - **Clean money for non-deductible amount |
| 250 | ([18300](https://github.com/civicrm/civicrm-core/pull/18300))** |
| 251 | |
| 252 | Ensures that the Contribution API cleans data entered into the "non-deductible |
| 253 | amount" field the same way it cleans the other money fields. |
| 254 | |
| 255 | - **Processors - remove gross_amount param from processors |
| 256 | ([18177](https://github.com/civicrm/civicrm-core/pull/18177))** |
| 257 | |
| 258 | The gross_amount param is returned by a bunch of processors but is not used so |
| 259 | this removes it. |
| 260 | |
| 261 | - **{contribution.receipt_date} token does not use any CiviCRM date formatter, |
| 262 | output in YYYY-MM-DD HH:MM:SS format and {contribution.receive_date} also uses |
| 263 | a non-standard format |
| 264 | ([18176](https://github.com/civicrm/civicrm-core/pull/18176))** |
| 265 | |
| 266 | - **Fix PHP notice on contribution page |
| 267 | ([18116](https://github.com/civicrm/civicrm-core/pull/18116))** |
| 268 | |
| 269 | - **E_NOTICE on contribution page widget tab |
| 270 | ([18189](https://github.com/civicrm/civicrm-core/pull/18189))** |
| 271 | |
| 272 | - **change payment instrument when pending payment paid through credit card |
| 273 | ([dev/core#912](https://lab.civicrm.org/dev/core/-/issues/912): |
| 274 | [18266](https://github.com/civicrm/civicrm-core/pull/18266))** |
| 275 | |
| 276 | - **PayPal Standard redirect fails on WordPress |
| 277 | ([dev/core#1997](https://lab.civicrm.org/dev/core/-/issues/1997): |
| 278 | [18525](https://github.com/civicrm/civicrm-core/pull/18525) and |
| 279 | [18534](https://github.com/civicrm/civicrm-core/pull/18534))** |
| 280 | |
| 281 | - **Invoice no longer displays amount paid/due |
| 282 | ([dev/core#2035](https://lab.civicrm.org/dev/core/-/issues/2035): |
| 283 | [18602](https://github.com/civicrm/civicrm-core/pull/18602) and |
| 284 | [18628](https://github.com/civicrm/civicrm-core/pull/18628))** |
| 285 | |
| 286 | ### CiviEvent |
| 287 | |
| 288 | - **Allow the "Cancellation or transfer time limit (hours)" to be negative |
| 289 | ([dev/event#34](https://lab.civicrm.org/dev/event/-/issues/34): |
| 290 | [18067](https://github.com/civicrm/civicrm-core/pull/18067))** |
| 291 | |
| 292 | Ensures that entering a negative value into "Cancellation or transfer time |
| 293 | limit (hours)" saves correctly and works as expected. |
| 294 | |
| 295 | - **Batch Update via Profile does not supply data for editing when custom fields |
| 296 | created after participant added to event |
| 297 | ([18235](https://github.com/civicrm/civicrm-core/pull/18235))** |
| 298 | |
| 299 | - **E_WARNING when saving event fees admin page if there's no discounts set |
| 300 | ([18169](https://github.com/civicrm/civicrm-core/pull/18169))** |
| 301 | |
| 302 | ### CiviMail |
| 303 | |
| 304 | - **Unexpected behavior from api.MailingEventSubscribe.create |
| 305 | (Work Towards [dev/mail#24](https://lab.civicrm.org/dev/mail/-/issues/24): |
| 306 | [18325](https://github.com/civicrm/civicrm-core/pull/18325))** |
| 307 | |
| 308 | Fixes labels for APIv3 `MailingEventSubscribe.create` so that they accurately |
| 309 | represent the behavior (unsubscribe v subscribe). |
| 310 | |
| 311 | - **Mass SMS: Limit group selection to mailing groups |
| 312 | ([18154](https://github.com/civicrm/civicrm-core/pull/18154))** |
| 313 | |
| 314 | Ensures that the fields "Include Groups" and "Exclude Groups" on the "New SMS" form |
| 315 | only list groups of the type "Mailing List". |
| 316 | |
| 317 | - **Help text bubble is empty and smarty errors when .hlp file is missing for |
| 318 | settings forms |
| 319 | ([dev/core#1920](https://lab.civicrm.org/dev/core/-/issues/1920): |
| 320 | [18648](https://github.com/civicrm/civicrm-core/pull/18648))** |
| 321 | |
| 322 | - **Fix error when creating new AB test mailing because domain_id is a required |
| 323 | field ([18685](https://github.com/civicrm/civicrm-core/pull/18685))** |
| 324 | |
| 325 | ### CiviMember |
| 326 | |
| 327 | - **Fix regression on back-office membership renewal by credit card |
| 328 | ([18615](https://github.com/civicrm/civicrm-core/pull/18615))** |
| 329 | |
| 330 | ### Drupal Integration |
| 331 | |
| 332 | - **Fix : Enable Drupal Watchdog Logging for Drupal 8 |
| 333 | ([dev/core#1943](https://lab.civicrm.org/dev/core/-/issues/1943): |
| 334 | [18115](https://github.com/civicrm/civicrm-core/pull/18115))** |
| 335 | |
| 336 | Ensure the setting `Enable Drupal Watchdog Logging` works on Drupal 8 sites. |
| 337 | |
| 338 | ### WordPress Integration |
| 339 | |
| 340 | - **Check if $post defined before trying to use its field values. |
| 341 | ([18168](https://github.com/civicrm/civicrm-core/pull/18168))** |
| 342 | |
| 343 | This fixes php notices like `PHP Notice: Trying to get property 'post_name' |
| 344 | of non-object in <webroot |
| 345 | path>\wp-content\plugins\civicrm\civicrm\CRM\Utils\System\WordPress.php on |
| 346 | line 288` |
| 347 | |
| 348 | ## <a name="misc"></a>Miscellany |
| 349 | |
| 350 | - **Fix regen and update civicrm_generated |
| 351 | ([18273](https://github.com/civicrm/civicrm-core/pull/18273))** |
| 352 | |
| 353 | - **Do not pass by reference for createRelatedMemberships |
| 354 | ([18243](https://github.com/civicrm/civicrm-core/pull/18243))** |
| 355 | |
| 356 | - **Typo in groups dropdown on scheduled reminders admin form |
| 357 | ([dev/core#1956](https://lab.civicrm.org/dev/core/-/issues/1956): |
| 358 | [18323](https://github.com/civicrm/civicrm-core/pull/18323))** |
| 359 | |
| 360 | - **Replace CRM_Utils_Array::value in contribution/confirm and bao/membership |
| 361 | ([18157](https://github.com/civicrm/civicrm-core/pull/18157))** |
| 362 | |
| 363 | - **Cleanup contactID variables in event/contribution register buildQuickForm |
| 364 | ([18208](https://github.com/civicrm/civicrm-core/pull/18208))** |
| 365 | |
| 366 | - **Use already determined value for contributionRecurID |
| 367 | ([18265](https://github.com/civicrm/civicrm-core/pull/18265))** |
| 368 | |
| 369 | - **Minor code cleanup to Order API |
| 370 | ([18217](https://github.com/civicrm/civicrm-core/pull/18217))** |
| 371 | |
| 372 | - **CodeGen - Add use statement to extensions DAO files |
| 373 | ([18094](https://github.com/civicrm/civicrm-core/pull/18094))** |
| 374 | |
| 375 | - **Use more appropriate money format function |
| 376 | ([18151](https://github.com/civicrm/civicrm-core/pull/18151))** |
| 377 | |
| 378 | - **Metadata fix in activity search |
| 379 | ([18216](https://github.com/civicrm/civicrm-core/pull/18216))** |
| 380 | |
| 381 | - **Replace deprecated Drupal 8 constants |
| 382 | ([18240](https://github.com/civicrm/civicrm-core/pull/18240))** |
| 383 | |
| 384 | - **Spelling mistake "separator" not "seperator" |
| 385 | ([18238](https://github.com/civicrm/civicrm-core/pull/18238))** |
| 386 | |
| 387 | - **Remove unused variables from repeatTransaction |
| 388 | ([18209](https://github.com/civicrm/civicrm-core/pull/18209))** |
| 389 | |
| 390 | - **Remove first_contribution key from repeattransaction |
| 391 | ([18197](https://github.com/civicrm/civicrm-core/pull/18197))** |
| 392 | |
| 393 | - **Remove unnecessary transformation of upgrade msg severity |
| 394 | ([18182](https://github.com/civicrm/civicrm-core/pull/18182))** |
| 395 | |
| 396 | - **Remove old dropped items from the schema xml |
| 397 | ([18244](https://github.com/civicrm/civicrm-core/pull/18244))** |
| 398 | |
| 399 | - **Remove 1 of 2 remaining places where relatedObjects is called in |
| 400 | completeOrder ([18257](https://github.com/civicrm/civicrm-core/pull/18257))** |
| 401 | |
| 402 | - **Remove last pass-by-reference in completeOrder signature |
| 403 | ([18258](https://github.com/civicrm/civicrm-core/pull/18258))** |
| 404 | |
| 405 | - **Remove legacy handling for 'fixing' line_item.entity_id |
| 406 | ([18155](https://github.com/civicrm/civicrm-core/pull/18155))** |
| 407 | |
| 408 | - **Remove deprecated code ids['userId'] |
| 409 | ([18156](https://github.com/civicrm/civicrm-core/pull/18156))** |
| 410 | |
| 411 | - **Remove 'hack' that overwrites result of searchColumns hook in mailings list |
| 412 | ([18237](https://github.com/civicrm/civicrm-core/pull/18237))** |
| 413 | |
| 414 | - **Remove unused variable |
| 415 | ([18108](https://github.com/civicrm/civicrm-core/pull/18108))** |
| 416 | |
| 417 | - **Remove handling for 4.2 DBs |
| 418 | ([612](https://github.com/civicrm/civicrm-drupal/pull/612))** |
| 419 | |
| 420 | - **Remove ref to logging time |
| 421 | ([18221](https://github.com/civicrm/civicrm-core/pull/18221))** |
| 422 | |
| 423 | - **Remove 2019 deprecated function |
| 424 | ([18242](https://github.com/civicrm/civicrm-core/pull/18242))** |
| 425 | |
| 426 | - **remove dropped tables for activity target and assignment |
| 427 | ([18280](https://github.com/civicrm/civicrm-core/pull/18280))** |
| 428 | |
| 429 | - **Deprecate 'trapException' in DAO::executeQuery |
| 430 | ([18138](https://github.com/civicrm/civicrm-core/pull/18138))** |
| 431 | |
| 432 | - **Deprecate/remove unused checkVersion() functions |
| 433 | ([18134](https://github.com/civicrm/civicrm-core/pull/18134))** |
| 434 | |
| 435 | - **[REF] Ensure that the form param _id is set when adding a new group w… |
| 436 | ([18250](https://github.com/civicrm/civicrm-core/pull/18250))** |
| 437 | |
| 438 | - **[REF] Update recent replacement for CRM_Utils_Array::value |
| 439 | ([18172](https://github.com/civicrm/civicrm-core/pull/18172) and |
| 440 | [18453](https://github.com/civicrm/civicrm-core/pull/18453))** |
| 441 | |
| 442 | - **[REF] Remove usages of CRM_Utils_Money::format that pass in a blank s… |
| 443 | ([18142](https://github.com/civicrm/civicrm-core/pull/18142))** |
| 444 | |
| 445 | - **[REF] Move isSSLDSN() function to avoid potential problems |
| 446 | ([18131](https://github.com/civicrm/civicrm-core/pull/18131))** |
| 447 | |
| 448 | - **(REF) CRM_Core_Region - Remove unused bits |
| 449 | ([18139](https://github.com/civicrm/civicrm-core/pull/18139))** |
| 450 | |
| 451 | - **[REF] Move Auto DSN Switching into a core function |
| 452 | ([18270](https://github.com/civicrm/civicrm-core/pull/18270))** |
| 453 | |
| 454 | - **[REF] Remove DB Package as it is now deployed using composer |
| 455 | ([302](https://github.com/civicrm/civicrm-packages/pull/302))** |
| 456 | |
| 457 | - **[REF] Deploy Pear DB package using composer |
| 458 | ([18027](https://github.com/civicrm/civicrm-core/pull/18027) and |
| 459 | [18473](https://github.com/civicrm/civicrm-core/pull/18473))** |
| 460 | |
| 461 | - **[REF] Update subtypeInfo function to leverage getAllContactTypes |
| 462 | ([17934](https://github.com/civicrm/civicrm-core/pull/17934))** |
| 463 | |
| 464 | - **[REF] Fix metadata label for contribution_page_id |
| 465 | ([18047](https://github.com/civicrm/civicrm-core/pull/18047))** |
| 466 | |
| 467 | - **REF Remove unused passbyreference and var from ipn_process_transaction |
| 468 | ([18311](https://github.com/civicrm/civicrm-core/pull/18311))** |
| 469 | |
| 470 | - **[REF] Clean up return variables on updateContributionStatus, |
| 471 | updatePendingOnlineContribution |
| 472 | ([18303](https://github.com/civicrm/civicrm-core/pull/18303))** |
| 473 | |
| 474 | - **[REF] Move function to delete merged contacts to the Merger class and |
| 475 | include all instances of the pair |
| 476 | ([17980](https://github.com/civicrm/civicrm-core/pull/17980))** |
| 477 | |
| 478 | - **[REF] Remove most interaction with $objects in completeOrder |
| 479 | ([18315](https://github.com/civicrm/civicrm-core/pull/18315))** |
| 480 | |
| 481 | - **[REF] Fix financial item allocation of negative payments against completed |
| 482 | payments ([17810](https://github.com/civicrm/civicrm-core/pull/17810))** |
| 483 | |
| 484 | - **[REF] Separate and move line-item specific portion of checkTaxAmount to |
| 485 | LineItem api ([18294](https://github.com/civicrm/civicrm-core/pull/18294))** |
| 486 | |
| 487 | - **[REF] [test] Slight increase in test cover & make functions more re-usable |
| 488 | ([18291](https://github.com/civicrm/civicrm-core/pull/18291))** |
| 489 | |
| 490 | - **[REF] simplify retrieval of existing membership on membership renewal form |
| 491 | ([18296](https://github.com/civicrm/civicrm-core/pull/18296))** |
| 492 | |
| 493 | - **[REF] Extract function to get locations to merge, rename 'operation' … |
| 494 | ([17991](https://github.com/civicrm/civicrm-core/pull/17991))** |
| 495 | |
| 496 | - **[REF] Deprecate unused SQL temptable functions |
| 497 | ([18171](https://github.com/civicrm/civicrm-core/pull/18171))** |
| 498 | |
| 499 | - **Minor cleanup in test class |
| 500 | ([18170](https://github.com/civicrm/civicrm-core/pull/18170))** |
| 501 | |
| 502 | - **Add line item acl tests |
| 503 | ([18274](https://github.com/civicrm/civicrm-core/pull/18274))** |
| 504 | |
| 505 | - **Fix test set up to call Order.create to create the correct line items |
| 506 | ([18279](https://github.com/civicrm/civicrm-core/pull/18279))** |
| 507 | |
| 508 | - **Test & remove handling for max_related in renewal form |
| 509 | ([18295](https://github.com/civicrm/civicrm-core/pull/18295))** |
| 510 | |
| 511 | - **Add test to check, remove unnecessary lines |
| 512 | ([18292](https://github.com/civicrm/civicrm-core/pull/18292))** |
| 513 | |
| 514 | - **[Test framework] - Remove test for deprecated way of calling hook invoke |
| 515 | ([18136](https://github.com/civicrm/civicrm-core/pull/18136))** |
| 516 | |
| 517 | - **(NFC) Update various DAO checksums |
| 518 | ([18184](https://github.com/civicrm/civicrm-core/pull/18184))** |
| 519 | |
| 520 | - **[NFC] Add code comments about hidden but still used buttons |
| 521 | ([18119](https://github.com/civicrm/civicrm-core/pull/18119))** |
| 522 | |
| 523 | - **[NFC] [Test] Initial testing on event payment forms. |
| 524 | ([18112](https://github.com/civicrm/civicrm-core/pull/18112))** |
| 525 | |
| 526 | - **[NFC] Update locale over-ride documentation to mention that it is mos… |
| 527 | ([17919](https://github.com/civicrm/civicrm-core/pull/17919))** |
| 528 | |
| 529 | - **(NFC) Add some tests to the `resources` group |
| 530 | ([18211](https://github.com/civicrm/civicrm-core/pull/18211))** |
| 531 | |
| 532 | - **[NFC] Some DAO checksums not updated |
| 533 | ([18239](https://github.com/civicrm/civicrm-core/pull/18239))** |
| 534 | |
| 535 | - **[NFC] Array formatting |
| 536 | ([18109](https://github.com/civicrm/civicrm-core/pull/18109))** |
| 537 | |
| 538 | - **[NFC] IDE cleanup - arrays, single quotes |
| 539 | ([614](https://github.com/civicrm/civicrm-drupal/pull/614))** |
| 540 | |
| 541 | - **[NFC] Update Event DAO Checksum |
| 542 | ([18361](https://github.com/civicrm/civicrm-core/pull/18361))** |
| 543 | |
| 544 | - **[NFC] Fix dates in RelationshipTest |
| 545 | ([18530](https://github.com/civicrm/civicrm-core/pull/18530))** |
| 546 | |
| 547 | - **api_v3_MultilingualTest - Skip Cxn entities |
| 548 | ([18547](https://github.com/civicrm/civicrm-core/pull/18547))** |
| 549 | |
| 550 | - **[NFC] Update Checksum on CustomField DAO |
| 551 | ([18689](https://github.com/civicrm/civicrm-core/pull/18689))** |
| 552 | |
| 553 | ## <a name="credits"></a>Credits |
| 554 | |
| 555 | This release was developed by the following code authors: |
| 556 | |
| 557 | AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Justin Freeman, Pengyi |
| 558 | Zhang; Circle Interactive - Pradeep Nayak; CiviCRM - Coleman Watts, Tim Otten; |
| 559 | CiviDesk - Sunil Pawar, Yashodha Chaku; Dave D; Flinders University of South |
| 560 | Australia - Tom Anderson; JMA Consulting - Monish Deb, Seamus Lee; John |
| 561 | Kingsnorth; Lemniscus - Noah Miller; Lighthouse Consulting and Design - Brian |
| 562 | Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MillerTech - Chamil |
| 563 | Wijesooriya; MJW Consulting - Matthew Wire; Squiffle Consulting - Aidan |
| 564 | Saunders; Wikimedia Foundation - Eileen McNaughton, Maggie Epps; Wildsight - |
| 565 | Lars Sanders-Green |
| 566 | |
| 567 | Most authors also reviewed code for this release; in addition, the following |
| 568 | reviewers contributed their comments: |
| 569 | |
| 570 | Artful Robot - Rich Lott; Christian Wach; Circle Interactive - Martin Castle; |
| 571 | Dave D; Fuzion - Jitendra Purohit; Greenpeace Central and Eastern Europe - |
| 572 | Patrick Figel; MJCO - Mikey O'Toole; Semper IT - Karin Gerritsen; Squiffle |
| 573 | Consulting - Aidan Saunders; Tadpole Collective - Kevin Cristiano |
| 574 | |
| 575 | ## <a name="feedback"></a>Feedback |
| 576 | |
| 577 | These release notes are edited by Alice Frumin and Andrew Hunt. If you'd like |
| 578 | to provide feedback on them, please log in to https://chat.civicrm.org/civicrm |
| 579 | and contact `@agh1`. |