| 1 | # CiviCRM 4.7.25 |
| 2 | |
| 3 | Released October 4, 2017 |
| 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 | - **[CRM-20769](https://issues.civicrm.org/jira/browse/CRM-20769) Allow for |
| 29 | Button Text on profiles to be overriden in settings |
| 30 | ([10940](https://github.com/civicrm/civicrm-core/pull/10940) and |
| 31 | [11051](https://github.com/civicrm/civicrm-core/pull/11051))** |
| 32 | |
| 33 | This adds columns to the `civicrm_uf_group` table to support customizing |
| 34 | profile buttons. |
| 35 | |
| 36 | - **[CRM-20964](https://issues.civicrm.org/jira/browse/CRM-20964) Include queue |
| 37 | id while retrieving rows from Event Queue. |
| 38 | ([10757](https://github.com/civicrm/civicrm-core/pull/10757))** |
| 39 | |
| 40 | `CRM_Mailing_Event_BAO_Queue::getRows()` returned rows for each intended |
| 41 | recipients, but didn't include any info which differentiates each row. |
| 42 | |
| 43 | This adds a `queue_id` in the key column of the $result array which enables |
| 44 | hooks to know which row is getting displayed. |
| 45 | |
| 46 | - **[CRM-21118](https://issues.civicrm.org/jira/browse/CRM-21118) Add action |
| 47 | links for message templates overview at top of page |
| 48 | ([10917](https://github.com/civicrm/civicrm-core/pull/10917))** |
| 49 | |
| 50 | Previously action links (add message template) were only shown at the bottom |
| 51 | of the page. If you have lots of message templates it is not visible until |
| 52 | scrolling down. This adds the links at the top of the page as well (like many |
| 53 | other pages in CiviCRM). |
| 54 | |
| 55 | - **[CRM-20979](https://issues.civicrm.org/jira/browse/CRM-20979) pre help for |
| 56 | price fields not exposed to UI. |
| 57 | ([10780](https://github.com/civicrm/civicrm-core/pull/10780))** |
| 58 | |
| 59 | Adds a field to the Add/Edit Price Field Form to enter pre help for price |
| 60 | fields. |
| 61 | |
| 62 | - **[CRM-20680](https://issues.civicrm.org/jira/browse/CRM-20680) Make the |
| 63 | CiviCRM logo spin while waiting for next page to load |
| 64 | ([10903](https://github.com/civicrm/civicrm-core/pull/10903)) (fix to previous |
| 65 | work)** |
| 66 | |
| 67 | This fixes a side effect of the new feature that caused all CiviCRM logos on |
| 68 | the page to spin. |
| 69 | |
| 70 | - **[CRM-21078](https://issues.civicrm.org/jira/browse/CRM-21078) Allow user to |
| 71 | save and continue editing message template |
| 72 | ([10871](https://github.com/civicrm/civicrm-core/pull/10871))** |
| 73 | |
| 74 | The message template editing screen now matches similar forms in CiviCRM by |
| 75 | offering separate "Save" and "Save and Done" buttons. |
| 76 | |
| 77 | - **[CRM-20941](https://issues.civicrm.org/jira/browse/CRM-20941) Determine & |
| 78 | notify date to end support for PHP5.3 and PHP5.4 |
| 79 | ([10851](https://github.com/civicrm/civicrm-core/pull/10851))** |
| 80 | |
| 81 | A pre-upgrade message and system check now warn administrators of sites using |
| 82 | PHP versions prior to 5.6. |
| 83 | |
| 84 | - **[CRM-17157](https://issues.civicrm.org/jira/browse/CRM-17157) CiviCRM money |
| 85 | validation should allow more decimal places |
| 86 | ([10827](https://github.com/civicrm/civicrm-core/pull/10827))** |
| 87 | |
| 88 | Previously, validation of money fields limited values to two decimal places. |
| 89 | This allows for currencies that may have more decimal places. |
| 90 | |
| 91 | - **[CRM-20926](https://issues.civicrm.org/jira/browse/CRM-20926) Allow |
| 92 | extensions to flag PHPIDS html/json fields |
| 93 | ([10709](https://github.com/civicrm/civicrm-core/pull/10709))** |
| 94 | |
| 95 | Extensions can now denote fields that should be be evaluated as HTML, JSON, or |
| 96 | exceptions for the intrusion detection system (IDS). |
| 97 | |
| 98 | - **[CRM-20155](https://issues.civicrm.org/jira/browse/CRM-20155) The dedupe |
| 99 | code passes has serious maintainability issues, locked in by hooks |
| 100 | ([10890](https://github.com/civicrm/civicrm-core/pull/10890)) (preliminary |
| 101 | work)** |
| 102 | |
| 103 | This is initial cleanup work toward separating the dedupe process from the |
| 104 | form layer, allowing for extensions to do custom dedupe logic. This initial |
| 105 | work merely cleans up the existing processing. |
| 106 | |
| 107 | - **[CRM-17748](https://issues.civicrm.org/jira/browse/CRM-17748) Expose |
| 108 | options['result_buffering'] to CRM_Core_DAO |
| 109 | ([10585](https://github.com/civicrm/civicrm-core/pull/10585))** |
| 110 | |
| 111 | Queries sent to the DAO can now pass options for `DB_mysql`. Specifically, |
| 112 | a `result_buffering` option can reduce PHP memory needs by calling for an |
| 113 | unbuffered query. |
| 114 | |
| 115 | - **[CRM-20733](https://issues.civicrm.org/jira/browse/CRM-20733) Relationship |
| 116 | report improvements |
| 117 | ([10679](https://github.com/civicrm/civicrm-core/pull/10679))** |
| 118 | |
| 119 | The Relationship Report can now filter results by permissions (contact A over |
| 120 | contact B and vice-versa) and order results by start date. |
| 121 | |
| 122 | - **[CRM-21108](https://issues.civicrm.org/jira/browse/CRM-21108) Creating |
| 123 | contacts is slow, part 1 of 2: Calculating Greetings |
| 124 | ([10906](https://github.com/civicrm/civicrm-core/pull/10906))** |
| 125 | |
| 126 | This optimizes the population of greetings for newly-created contacts, the |
| 127 | slowest part of generating contacts. |
| 128 | |
| 129 | - **[CRM-18231](https://issues.civicrm.org/jira/browse/CRM-18231) Support safe |
| 130 | migration from production to non-production instances |
| 131 | ([10972](https://github.com/civicrm/civicrm-core/pull/10972), |
| 132 | [10936](https://github.com/civicrm/civicrm-core/pull/10936), and |
| 133 | [8724](https://github.com/civicrm/civicrm-core/pull/8724))** |
| 134 | |
| 135 | This introduces a feature of environment labels that can be set in |
| 136 | `civicrm.settings.php` and be extended in specially-named settings files. If |
| 137 | the label is anything other than `Production`, outbound email and scheduled |
| 138 | jobs are disabled. See further explanation in the [Sysadmin |
| 139 | Guide](https://docs.civicrm.org/sysadmin/en/master/misc/staging-production/) |
| 140 | |
| 141 | ### CiviCase |
| 142 | |
| 143 | - **[CRM-20958](https://issues.civicrm.org/jira/browse/CRM-20958) Data model: |
| 144 | Track creation+modification times for activities+cases |
| 145 | ([10754](https://github.com/civicrm/civicrm-core/pull/10754))** |
| 146 | |
| 147 | Adds timestamp columns created_date and modified_date to the tables |
| 148 | `civicrm_activity` and `civicrm_case` |
| 149 | |
| 150 | - **[CRM-21052](https://issues.civicrm.org/jira/browse/CRM-21052) Allow opt-out |
| 151 | of embedded case-activity tracking |
| 152 | ([10842](https://github.com/civicrm/civicrm-core/pull/10842))** |
| 153 | |
| 154 | A new setting, "Enable Embedded Activity Revisions", determines whether each |
| 155 | revision to a case records the change as an activity. This has been the |
| 156 | behavior in the past and will continue to be the default for CiviCase until |
| 157 | the redesign is complete. However, many CiviCase users may prefer to leave |
| 158 | change logging to the log tables that are created when overall CiviCRM logging |
| 159 | is enabled. |
| 160 | |
| 161 | ### CiviContribute |
| 162 | |
| 163 | - **[CRM-21058](https://issues.civicrm.org/jira/browse/CRM-21058) Add Event |
| 164 | filter to PCP contribution report |
| 165 | ([10862](https://github.com/civicrm/civicrm-core/pull/10862))** |
| 166 | |
| 167 | The Personal Campaign Page report now allows filtering by the title of a PCP's |
| 168 | associated event. |
| 169 | |
| 170 | - **[CRM-20990](https://issues.civicrm.org/jira/browse/CRM-20990) Assign |
| 171 | `$contributionStatus` to the Contribution Online message template |
| 172 | ([10793](https://github.com/civicrm/civicrm-core/pull/10793))** |
| 173 | |
| 174 | The contribution status is now available as a Smarty variable on the receipt |
| 175 | message template for online contributions. |
| 176 | |
| 177 | - **[CRM-21019](https://issues.civicrm.org/jira/browse/CRM-21019) Change column |
| 178 | labels ([10813](https://github.com/civicrm/civicrm-core/pull/10813))** |
| 179 | |
| 180 | The column headers on accounting batch screens are now clearer. |
| 181 | |
| 182 | ### CiviEvent |
| 183 | |
| 184 | - **[CRM-20507](https://issues.civicrm.org/jira/browse/CRM-20507) Prevent |
| 185 | disclosure of `is_public=0` Custom Groups in email templates |
| 186 | ([10661](https://github.com/civicrm/civicrm-core/pull/10661))** |
| 187 | |
| 188 | Custom data groups can be public or backend-only as of 4.7.19. This |
| 189 | suppresses non-public fields from email receipts for event registrations. |
| 190 | |
| 191 | ### CiviMail |
| 192 | |
| 193 | - **[CRM-20905](https://issues.civicrm.org/jira/browse/CRM-20905) Simple mail : |
| 194 | Make max emails a hidden config instead of hardcoded value set to 50 |
| 195 | ([10705](https://github.com/civicrm/civicrm-core/pull/10705))** |
| 196 | |
| 197 | The maximum number of emails sent through the quick "send an email" feature is |
| 198 | set to 50. This change allows that number to be overridden through the |
| 199 | setting API or settings file. |
| 200 | |
| 201 | ### CiviMember |
| 202 | |
| 203 | - **[CRM-21152](https://issues.civicrm.org/jira/browse/CRM-21152) Add spec for |
| 204 | MembershipStatus.calc API function |
| 205 | ([10944](https://github.com/civicrm/civicrm-core/pull/10944))** |
| 206 | |
| 207 | Adds a function to adjust metadata for `Calc` action. The metadata is used for |
| 208 | setting defaults, documentation & validation. |
| 209 | |
| 210 | ### Drupal Integration |
| 211 | |
| 212 | - **[CRM-21016](https://issues.civicrm.org/jira/browse/CRM-21016) Allow Drupal |
| 213 | views to be used for Notes related to contributions |
| 214 | ([468](https://github.com/civicrm/civicrm-drupal/pull/468))** |
| 215 | |
| 216 | Drupal Views will now join to the `civicrm_note` table for any related entity, |
| 217 | not just contacts. |
| 218 | |
| 219 | - **Add Contributions relevant to the Participant record. |
| 220 | ([469](https://github.com/civicrm/civicrm-drupal/pull/469))** |
| 221 | |
| 222 | Drupal Views will now join to the `civicrm_participant_payment` table, |
| 223 | allowing related contributions to be displayed alongside event registrations. |
| 224 | |
| 225 | ## <a name="bugs"></a>Bugs resolved |
| 226 | |
| 227 | ### Core CiviCRM |
| 228 | |
| 229 | - **[CRM-21068](https://issues.civicrm.org/jira/browse/CRM-21068) |
| 230 | &lastModified() fails more gracefully. |
| 231 | ([10863](https://github.com/civicrm/civicrm-core/pull/10863))** |
| 232 | |
| 233 | This change avoids displaying an error if something is missing from the log |
| 234 | entry for a contact when shown in the summary view. |
| 235 | |
| 236 | - **[CRM-21099](https://issues.civicrm.org/jira/browse/CRM-21099) Contribution |
| 237 | search: "Total Cancelled Amount" surprisingly includes "refunded" status |
| 238 | ([10893](https://github.com/civicrm/civicrm-core/pull/10893))** |
| 239 | |
| 240 | In the results of a Find Contributions search, summary numbers are displayed |
| 241 | at the top. One of these is "Total Cancelled Amount" this total included |
| 242 | contributions with a "Refunded" or "Cancelled" status. This total now only |
| 243 | includes contributions with a status of "Cancelled". |
| 244 | |
| 245 | - **[CRM-21075](https://issues.civicrm.org/jira/browse/CRM-21075) Notice errors |
| 246 | on contact edit |
| 247 | ([10878](https://github.com/civicrm/civicrm-core/pull/10878))** |
| 248 | |
| 249 | When a user would edit their record, a series of notices would be generated |
| 250 | because of use of a deprecated function. This change removes those errors. |
| 251 | |
| 252 | - **[CRM-21057](https://issues.civicrm.org/jira/browse/CRM-21057) export field |
| 253 | mapping limited to 25 records |
| 254 | ([10848](https://github.com/civicrm/civicrm-core/pull/10848))** |
| 255 | |
| 256 | This resolves a bug where only 25 saved export mappings were available to |
| 257 | select. |
| 258 | |
| 259 | - **[CRM-21124](https://issues.civicrm.org/jira/browse/CRM-21124) Fix DB error |
| 260 | on deduping by criteria when criteria string is too long |
| 261 | ([10921](https://github.com/civicrm/civicrm-core/pull/10921))** |
| 262 | |
| 263 | - **[CRM-21061](https://issues.civicrm.org/jira/browse/CRM-21061) Fix rare |
| 264 | CiviReport error relating to long report names |
| 265 | ([10854](https://github.com/civicrm/civicrm-core/pull/10854))** |
| 266 | |
| 267 | The relatively short length of the `report_id` field in the `civicrm_report` |
| 268 | table meant that reports with long names would produce obtuse errors. The |
| 269 | field is now 512 characters long. |
| 270 | |
| 271 | - **[CRM-21004](https://issues.civicrm.org/jira/browse/CRM-21004) profile: |
| 272 | unable to copy profiles used for events/contribs/etc. |
| 273 | ([10802](https://github.com/civicrm/civicrm-core/pull/10802))** |
| 274 | |
| 275 | - **[CRM-21230](https://issues.civicrm.org/jira/browse/CRM-21230) Multi-value |
| 276 | custom field import fail with error message: Call to undefined method |
| 277 | `CRM_Custom_Import_Parser_Api::formatContactParameters` |
| 278 | ([11039](https://github.com/civicrm/civicrm-core/pull/11039))** |
| 279 | |
| 280 | - **[CRM-21174](https://issues.civicrm.org/jira/browse/CRM-21174) Circular |
| 281 | dependency during upgrade: civicrm_menu.module_data |
| 282 | ([10974](https://github.com/civicrm/civicrm-core/pull/10974))** |
| 283 | |
| 284 | A field to be created during the upgrade was accidentally loaded as part of |
| 285 | the upgrade. |
| 286 | |
| 287 | - **[CRM-21175](https://issues.civicrm.org/jira/browse/CRM-21175) Fatal error on |
| 288 | multiple custom field import |
| 289 | ([10975](https://github.com/civicrm/civicrm-core/pull/10975))** |
| 290 | |
| 291 | Import mappings now must have a mapping type. This resolves an error that |
| 292 | would appear when a mapping type was missing; now, the mapping type is created |
| 293 | on the fly. |
| 294 | |
| 295 | - **[CRM-20533](https://issues.civicrm.org/jira/browse/CRM-20533) 'Update |
| 296 | Indices' System Status action can get tied up (index name already exists, |
| 297 | localised dbs?) |
| 298 | ([10908](https://github.com/civicrm/civicrm-core/pull/10908)) (continues |
| 299 | previous work)** |
| 300 | |
| 301 | A system check offers to update old or missing table indices when it detects |
| 302 | they are missing. In practice, many sites have equivalent indices to the ones |
| 303 | that are supposedly missing, but the index names differ or the index fields |
| 304 | are listed in a different order. This script has had persistent problems with |
| 305 | attempting to create indices that already exist or incorrectly dropping |
| 306 | indices. |
| 307 | |
| 308 | This most recent change deletes false indices automatically when the Update |
| 309 | Indices process is started rather than asking the site administrator. Any |
| 310 | false-looking index that is actually good will simply be replaced when the |
| 311 | missing indices are populated. |
| 312 | |
| 313 | - **[CRM-21110](https://issues.civicrm.org/jira/browse/CRM-21110) Relationships |
| 314 | tab on contact summary runs query twice |
| 315 | ([10907](https://github.com/civicrm/civicrm-core/pull/10907))** |
| 316 | |
| 317 | This streamlines the processing of the contact relationship listing to reduce |
| 318 | the number of queries to run. |
| 319 | |
| 320 | - **[CRM-21142](https://issues.civicrm.org/jira/browse/CRM-21142) Installation |
| 321 | fails if PHP XML module isn't installed |
| 322 | ([10939](https://github.com/civicrm/civicrm-core/pull/10939))** |
| 323 | |
| 324 | The installer now checks that PHP SimpleXML support is present. |
| 325 | |
| 326 | - **[CRM-21139](https://issues.civicrm.org/jira/browse/CRM-21139) Font-Awesome |
| 327 | icons not showing on fatal error screen |
| 328 | ([10937](https://github.com/civicrm/civicrm-core/pull/10937))** |
| 329 | |
| 330 | Now `crm-i.css` is specifically loaded on the fatal error template. |
| 331 | |
| 332 | - **[CRM-19933](https://issues.civicrm.org/jira/browse/CRM-19933) Importing |
| 333 | contacts clears out preferred communication method |
| 334 | ([10731](https://github.com/civicrm/civicrm-core/pull/10731))** |
| 335 | |
| 336 | - **[CRM-21079](https://issues.civicrm.org/jira/browse/CRM-21079) Datetime logs |
| 337 | don't supports timezones |
| 338 | ([10874](https://github.com/civicrm/civicrm-core/pull/10874)) (continues |
| 339 | previous work)** |
| 340 | |
| 341 | A system check appears if certain database fields are `DATETIME` rather than |
| 342 | `TIMESTAMP`. Due to the complexity of assigning timezones and the possibility |
| 343 | of customizations depending upon those fields, the check merely explains the |
| 344 | situation and recommends using [Doctor |
| 345 | When](https://github.com/civicrm/org.civicrm.doctorwhen), a time lord |
| 346 | extension, to straighten out the situation. |
| 347 | |
| 348 | - **[CRM-20970](https://issues.civicrm.org/jira/browse/CRM-20970) long postal |
| 349 | code in db prevents searching by zipcode range |
| 350 | ([10781](https://github.com/civicrm/civicrm-core/pull/10781)) (completes |
| 351 | previous work)** |
| 352 | |
| 353 | This adds test coverage for the fix which appeared in 4.7.24. |
| 354 | |
| 355 | - **[CRM-20790](https://issues.civicrm.org/jira/browse/CRM-20790) CIVICRM-159 - |
| 356 | Import Contacts, Current Employer (Employee of field) is not being imported at |
| 357 | all ([10808](https://github.com/civicrm/civicrm-core/pull/10808))** |
| 358 | |
| 359 | Import would fail to record relationships if data for one or both contacts in |
| 360 | the relationship matched existing contacts. |
| 361 | |
| 362 | - **[CRM-21049](https://issues.civicrm.org/jira/browse/CRM-21049) Can't create a |
| 363 | RelationshipType record via API with "All Contacts" as a value |
| 364 | ([10839](https://github.com/civicrm/civicrm-core/pull/10839))** |
| 365 | |
| 366 | This prevented relationship types created in the API where one or both |
| 367 | contacts could be any contact type. |
| 368 | |
| 369 | - **[CRM-20993](https://issues.civicrm.org/jira/browse/CRM-20993) API - |
| 370 | Extension get - Cannot filter by ID anymore |
| 371 | ([10794](https://github.com/civicrm/civicrm-core/pull/10794))** |
| 372 | |
| 373 | - **[CRM-21029](https://issues.civicrm.org/jira/browse/CRM-21029) Activity |
| 374 | report SQL syntax error |
| 375 | ([10819](https://github.com/civicrm/civicrm-core/pull/10819))** |
| 376 | |
| 377 | A SQL error would appear in the Activity Report, including the Scheduled |
| 378 | Activities dashlet, when no ACL `WHERE` clauses are applicable. |
| 379 | |
| 380 | - **[CRM-20858](https://issues.civicrm.org/jira/browse/CRM-20858) Custom fields |
| 381 | migrated even when not asked during merge |
| 382 | ([10831](https://github.com/civicrm/civicrm-core/pull/10831))** |
| 383 | |
| 384 | - **[CRM-21129](https://issues.civicrm.org/jira/browse/CRM-21129) CLI import |
| 385 | doesn't allow single-column CSVs |
| 386 | ([10924](https://github.com/civicrm/civicrm-core/pull/10924))** |
| 387 | |
| 388 | - **[CRM-19612](https://issues.civicrm.org/jira/browse/CRM-19612) DB error |
| 389 | deduping a group when rule has more than one field |
| 390 | ([10405](https://github.com/civicrm/civicrm-core/pull/10405))** |
| 391 | |
| 392 | - **[CRM-19664](https://issues.civicrm.org/jira/browse/CRM-19664) Skip row and |
| 393 | keep importing if matching this contact based on the de-dupe rule would cause |
| 394 | an external ID conflict |
| 395 | ([9410](https://github.com/civicrm/civicrm-core/pull/9410))** |
| 396 | |
| 397 | ### CiviMail |
| 398 | |
| 399 | - **[CRM-21077](https://issues.civicrm.org/jira/browse/CRM-21077) Warn the user |
| 400 | when testing outbound mail configuration if CIVICRM_MAIL_LOG is set |
| 401 | ([10870](https://github.com/civicrm/civicrm-core/pull/10870))** |
| 402 | |
| 403 | When sending a test email from the Outbound Email form, a user would not be |
| 404 | notified if the CiviCRM settings file was set to send all outbound email to a |
| 405 | log file. |
| 406 | |
| 407 | - **[CRM-20643](https://issues.civicrm.org/jira/browse/CRM-20643) Fix invalid |
| 408 | bounce type filter for bounce report |
| 409 | ([10427](https://github.com/civicrm/civicrm-core/pull/10427))** |
| 410 | |
| 411 | A dummy option of `-- please select --` for bounce type was hard-coded as a |
| 412 | filter option. This caused the report to default to this value and not load |
| 413 | any data. |
| 414 | |
| 415 | - **[CRM-21000](https://issues.civicrm.org/jira/browse/CRM-21000) Display result |
| 416 | as Mailing on Advance Search produces DB Error |
| 417 | ([10798](https://github.com/civicrm/civicrm-core/pull/10798))** |
| 418 | |
| 419 | This resolves an error in Advanced Search when the form is set to display |
| 420 | mailings rather than contacts. |
| 421 | |
| 422 | - **[CRM-20855](https://issues.civicrm.org/jira/browse/CRM-20855) Disabling |
| 423 | "Search Primary Details Only" causes partial CiviMail delivery failure |
| 424 | ([10915](https://github.com/civicrm/civicrm-core/pull/10915))** |
| 425 | |
| 426 | - **[CRM-20982](https://issues.civicrm.org/jira/browse/CRM-20982) Fix: Mails |
| 427 | sent via command line fail due to EHLO/HELO being "localhost" |
| 428 | ([10785](https://github.com/civicrm/civicrm-core/pull/10785))** |
| 429 | |
| 430 | SMTP connections from the command line now attempt to identify themselves with |
| 431 | `EHLO` and the base URL rather than just `EHLO localhost`. |
| 432 | |
| 433 | ### Backdrop Integration |
| 434 | |
| 435 | - **[CRM-21088](https://issues.civicrm.org/jira/browse/CRM-21088) Backdrop class |
| 436 | contains `drupal_` calls that should be changed |
| 437 | ([10884](https://github.com/civicrm/civicrm-core/pull/10884))** |
| 438 | |
| 439 | This would cause problems if Backdrop compatibility mode was disabled. |
| 440 | |
| 441 | - **[CRM-21098](https://issues.civicrm.org/jira/browse/CRM-21098) Prevent |
| 442 | Backdrop admin drop-down menus from appearing beneath CiviCRM admin menu |
| 443 | ([10892](https://github.com/civicrm/civicrm-core/pull/10892))** |
| 444 | |
| 445 | - **[CRM-21095](https://issues.civicrm.org/jira/browse/CRM-21095) CSS conflicts |
| 446 | between CiviCRM and Backdrop |
| 447 | ([10891](https://github.com/civicrm/civicrm-core/pull/10891), |
| 448 | [42](https://github.com/civicrm/civicrm-backdrop/pull/42), and |
| 449 | [41](https://github.com/civicrm/civicrm-backdrop/pull/41))** |
| 450 | |
| 451 | ### CiviCampaign |
| 452 | |
| 453 | - **[CRM-21094](https://issues.civicrm.org/jira/browse/CRM-21094) Minor |
| 454 | improvement to display of columns in Survey Details report |
| 455 | ([10889](https://github.com/civicrm/civicrm-core/pull/10889))** |
| 456 | |
| 457 | This arranges the columns so that contact-related fields are together and |
| 458 | preceding activity fields. |
| 459 | |
| 460 | - **[CRM-21089](https://issues.civicrm.org/jira/browse/CRM-21089) Fatal error on |
| 461 | "Interview Respondents" |
| 462 | ([10885](https://github.com/civicrm/civicrm-core/pull/10885))** |
| 463 | |
| 464 | ### Drupal Integration |
| 465 | |
| 466 | - **[CRM-17652](https://issues.civicrm.org/jira/browse/CRM-17652) Symfony |
| 467 | conflict between Civi and Drupal 8 |
| 468 | ([10694](https://github.com/civicrm/civicrm-core/pull/10694) and |
| 469 | [465](https://github.com/civicrm/civicrm-drupal/pull/465)) (in progress)** |
| 470 | |
| 471 | This uses Composer to install dependencies (such as Symfony) in a way that |
| 472 | does not conflict with Drupal 8. It resolves a bug where Drupal 8 sites with |
| 473 | CiviCRM could not install any more modules. |
| 474 | |
| 475 | - **[CRM-20838](https://issues.civicrm.org/jira/browse/CRM-20838) Provide alert & |
| 476 | fix method for tables in the CiviCRM Db with no log table |
| 477 | ([10628](https://github.com/civicrm/civicrm-core/pull/10628))** |
| 478 | |
| 479 | If Drupal and CiviCRM are installed with the same database and logging is |
| 480 | enabled, the logging triggers get confused by the existence of tables created |
| 481 | by the role sync modules. A system check now suggests that corresponding log |
| 482 | tables be created when it notices this. |
| 483 | |
| 484 | ### CiviMember |
| 485 | |
| 486 | - **[CRM-21126](https://issues.civicrm.org/jira/browse/CRM-21126) |
| 487 | member_is_primary not set by default on passing owner in the url |
| 488 | ([10923](https://github.com/civicrm/civicrm-core/pull/10923))** |
| 489 | |
| 490 | The membership search now allows `owner=1` to be specified as a URL parameter |
| 491 | that populates the "Primary member?" field. |
| 492 | |
| 493 | - **[CRM-20571](https://issues.civicrm.org/jira/browse/CRM-20571) Offline / Back |
| 494 | Office Renewal fatal error when "renewal_date" set to far back. |
| 495 | ([10822](https://github.com/civicrm/civicrm-core/pull/10822))** |
| 496 | |
| 497 | A helpful warning appears when attempting to set a membership renewal date |
| 498 | prior to the join date. |
| 499 | |
| 500 | - **[CRM-20966](https://issues.civicrm.org/jira/browse/CRM-20966) Contribution |
| 501 | deleted when relationship deleted, incorrect line items & membership_payments |
| 502 | for second inherited membership created in back end via price set |
| 503 | ([10759](https://github.com/civicrm/civicrm-core/pull/10759))** |
| 504 | |
| 505 | This resolves a problem where membership contributions would be applied |
| 506 | incorrectly when one contact inherits memberships of separate types from |
| 507 | separate related contacts. This could result in data loss if the relationship |
| 508 | is deleted. |
| 509 | |
| 510 | - **[CRM-20955](https://issues.civicrm.org/jira/browse/CRM-20955) Contact's |
| 511 | second membership fails to inherit when created in back end using price set |
| 512 | ([10745](https://github.com/civicrm/civicrm-core/pull/10745))** |
| 513 | |
| 514 | ### CiviContribute |
| 515 | |
| 516 | - **[CRM-21055](https://issues.civicrm.org/jira/browse/CRM-21055) Change label |
| 517 | of cancel button |
| 518 | ([10845](https://github.com/civicrm/civicrm-core/pull/10845))** |
| 519 | |
| 520 | The button to exit the backend contribution form without saving is now labeled |
| 521 | "Close" rather than "Cancel". This now differs from all other forms. |
| 522 | |
| 523 | - **[CRM-17040](https://issues.civicrm.org/jira/browse/CRM-17040) Import |
| 524 | Contributions using External Id's causes soft credit to be wrongly associated |
| 525 | ([10797](https://github.com/civicrm/civicrm-core/pull/10797))** |
| 526 | |
| 527 | This resolves a problem that occurred when importing contributions that have |
| 528 | both soft credit and donor contacts identified by external ID. The |
| 529 | contribution would record the soft credit contact as the actual donor. |
| 530 | |
| 531 | - **[CRM-20949](https://issues.civicrm.org/jira/browse/CRM-20949) |
| 532 | BillingBlock.tpl contains wrong paymentProcessor object on initial load of |
| 533 | backend Contribution page. |
| 534 | ([10734](https://github.com/civicrm/civicrm-core/pull/10734))** |
| 535 | |
| 536 | - **[CRM-21087](https://issues.civicrm.org/jira/browse/CRM-21087) Payment popup |
| 537 | goes weird if you click 'adjust payment amount'. |
| 538 | ([10882](https://github.com/civicrm/civicrm-core/pull/10882))** |
| 539 | |
| 540 | The pledge payment pop-up caused problems with page focus and covering the |
| 541 | Save button. |
| 542 | |
| 543 | - **[CRM-20936](https://issues.civicrm.org/jira/browse/CRM-20936) Hide statuses |
| 544 | on backoffice contribution form |
| 545 | ([10718](https://github.com/civicrm/civicrm-core/pull/10718))** |
| 546 | |
| 547 | Non-applicable contribution statuses are now suppressed when creating |
| 548 | contributions, event registrations, and memberships on the backend. |
| 549 | |
| 550 | - **[CRM-21045](https://issues.civicrm.org/jira/browse/CRM-21045) Multiple email |
| 551 | field shown on Contribution Page. |
| 552 | ([10832](https://github.com/civicrm/civicrm-core/pull/10832))** |
| 553 | |
| 554 | If a contribution page included a profile with a billing email, the email |
| 555 | field at the top of the contribution page would fail to disappear, resulting |
| 556 | in two HTML fields for the same data. This resolves that bug. |
| 557 | |
| 558 | - **[CRM-21047](https://issues.civicrm.org/jira/browse/CRM-21047) TypeError: |
| 559 | financialtypeIds is undefined, on contribution form |
| 560 | ([10836](https://github.com/civicrm/civicrm-core/pull/10836))** |
| 561 | |
| 562 | This resolves a Javascript error on the backend contribution form. |
| 563 | |
| 564 | - **[CRM-20615](https://issues.civicrm.org/jira/browse/CRM-20615) Export only |
| 565 | those batches having status Exported |
| 566 | ([10394](https://github.com/civicrm/civicrm-core/pull/10394))** |
| 567 | |
| 568 | This prevents batches from bein exported if the status isn't yet set to |
| 569 | "exported". |
| 570 | |
| 571 | - **[CRM-21026](https://issues.civicrm.org/jira/browse/CRM-21026) Contribution |
| 572 | count on contact tabs excludes contributions with disabled financial types |
| 573 | ([10824](https://github.com/civicrm/civicrm-core/pull/10824))** |
| 574 | |
| 575 | - **[CRM-19469](https://issues.civicrm.org/jira/browse/CRM-19469) EWay |
| 576 | transaction receipt not sent when member signs up using front-end form but |
| 577 | works in the CiviCRM back-end |
| 578 | ([9973](https://github.com/civicrm/civicrm-core/pull/9973))** |
| 579 | |
| 580 | - **[CRM-21043](https://issues.civicrm.org/jira/browse/CRM-21043) Fix Dupe check |
| 581 | of on behalf organisation |
| 582 | ([10830](https://github.com/civicrm/civicrm-core/pull/10830))** |
| 583 | |
| 584 | When contributing on behalf of an organization, the organization would not be |
| 585 | checked against duplicates and a new contact would be created each time. |
| 586 | |
| 587 | - **[CRM-19739](https://issues.civicrm.org/jira/browse/CRM-19739) "New Account |
| 588 | Relationship Option Screen" does not show exception |
| 589 | ([10651](https://github.com/civicrm/civicrm-core/pull/10651))** |
| 590 | |
| 591 | Creating an invalid account relationship would result in an endless spinning |
| 592 | logo rather than displaying an error. |
| 593 | |
| 594 | - **[CRM-21015](https://issues.civicrm.org/jira/browse/CRM-21015) Contribution |
| 595 | page creates recurring contribution even though recurring is not selected |
| 596 | ([10835](https://github.com/civicrm/civicrm-core/pull/10835))** |
| 597 | |
| 598 | Recurring contributions would be created if a contribution page had the option |
| 599 | for recurring contributions and a membership price set, even if the recurring |
| 600 | contribution checkbox was empty. |
| 601 | |
| 602 | - **[CRM-21005](https://issues.civicrm.org/jira/browse/CRM-21005) "Record |
| 603 | Payment" dialogue lacks required field and is clunky |
| 604 | ([10817](https://github.com/civicrm/civicrm-core/pull/10817))** |
| 605 | |
| 606 | The form for recording a payment did not require a payment method even though |
| 607 | that is necessary. Omitting it would result in a system error rather than a |
| 608 | validation error. Also, the payment amount now defaults to the amount due. |
| 609 | |
| 610 | - **[CRM-21031](https://issues.civicrm.org/jira/browse/CRM-21031) Financial type |
| 611 | ID display instead of label in "View Price Options" |
| 612 | ([10823](https://github.com/civicrm/civicrm-core/pull/10823))** |
| 613 | |
| 614 | - **[CRM-19186](https://issues.civicrm.org/jira/browse/CRM-19186) Subsequent |
| 615 | Installments of Recurring Credit Card Contributions Indicate a Payment |
| 616 | Instrument of Check |
| 617 | ([10749](https://github.com/civicrm/civicrm-core/pull/10749))** |
| 618 | |
| 619 | - **[CRM-17281](https://issues.civicrm.org/jira/browse/CRM-17281) Pledges |
| 620 | miscalculate when total amount is not an integer and a payment is received |
| 621 | that covers three installments |
| 622 | ([10861](https://github.com/civicrm/civicrm-core/pull/10861))** |
| 623 | |
| 624 | - **[CRM-21039](https://issues.civicrm.org/jira/browse/CRM-21039) Trying to add |
| 625 | Asset account relationship throws validation error |
| 626 | ([10828](https://github.com/civicrm/civicrm-core/pull/10828))** |
| 627 | |
| 628 | - **[CRM-20988](https://issues.civicrm.org/jira/browse/CRM-20988) Don't display |
| 629 | option of Export, Delete etc to users who lack that permission |
| 630 | ([10791](https://github.com/civicrm/civicrm-core/pull/10791))** |
| 631 | |
| 632 | ### CiviCase |
| 633 | |
| 634 | - **[CRM-20930](https://issues.civicrm.org/jira/browse/CRM-20930) Case Detail |
| 635 | Report cannot filter by "Last Action Date" |
| 636 | ([10712](https://github.com/civicrm/civicrm-core/pull/10712))** |
| 637 | |
| 638 | - **[CRM-18082](https://issues.civicrm.org/jira/browse/CRM-18082) CiviCase API |
| 639 | Create ignores custom data |
| 640 | ([10728](https://github.com/civicrm/civicrm-core/pull/10728))** |
| 641 | |
| 642 | ### CiviEvent |
| 643 | |
| 644 | - **[CRM-20935](https://issues.civicrm.org/jira/browse/CRM-20935) Deleting an |
| 645 | event does not delete links to profiles it used |
| 646 | ([10719](https://github.com/civicrm/civicrm-core/pull/10719))** |
| 647 | |
| 648 | Rows in `civicrm_uf_join` were not deleted when events were deleted. This |
| 649 | resolves the bug and performs a cleanup of orphaned rows upon upgrade. |
| 650 | |
| 651 | - **[CRM-20237](https://issues.civicrm.org/jira/browse/CRM-20237) Event |
| 652 | pricesets copied with long suffix cause DB error |
| 653 | ([10929](https://github.com/civicrm/civicrm-core/pull/10929))** |
| 654 | |
| 655 | When copied, a price set has a copy ID tacked onto the end of its title. This |
| 656 | change prevents copies of copies from accumulating many copy ID add-ons. |
| 657 | |
| 658 | - **[CRM-21069](https://issues.civicrm.org/jira/browse/CRM-21069) Fail more |
| 659 | gracefully on event display with invalid data in the DB |
| 660 | ([10865](https://github.com/civicrm/civicrm-core/pull/10865))** |
| 661 | |
| 662 | This avoids a database error by suppressing display of participant records |
| 663 | where the event has been deleted in the database. |
| 664 | |
| 665 | - **[CRM-20914](https://issues.civicrm.org/jira/browse/CRM-20914) participant |
| 666 | note field breaking export when populated with data over 32 characters |
| 667 | ([10700](https://github.com/civicrm/civicrm-core/pull/10700))** |
| 668 | |
| 669 | - **[CRM-20933](https://issues.civicrm.org/jira/browse/CRM-20933) Updating Pay |
| 670 | later event registration from backend produces formRule error |
| 671 | ([10716](https://github.com/civicrm/civicrm-core/pull/10716))** |
| 672 | |
| 673 | - **[CRM-21121](https://issues.civicrm.org/jira/browse/CRM-21121) Event Income |
| 674 | (Summary) report backtrace with 'only_full_group_by' |
| 675 | ([10926](https://github.com/civicrm/civicrm-core/pull/10926))** |
| 676 | |
| 677 | - **[CRM-20027](https://issues.civicrm.org/jira/browse/CRM-20027) Need 'access |
| 678 | deleted contacts' permission to retrieve loc block addresses using API |
| 679 | ([10916](https://github.com/civicrm/civicrm-core/pull/10916))** |
| 680 | |
| 681 | Addresses lacking contact IDs because they're used for event locations were |
| 682 | treated like addresses belonging to deleted contacts. |
| 683 | |
| 684 | - **[CRM-13309](https://issues.civicrm.org/jira/browse/CRM-13309) Participant |
| 685 | Role on Event's Schedule Reminder form does not populate |
| 686 | ([10801](https://github.com/civicrm/civicrm-core/pull/10801))** |
| 687 | |
| 688 | The field to restrict scheduled reminders to specific participant roles would |
| 689 | not appear. |
| 690 | |
| 691 | - **[CRM-20942](https://issues.civicrm.org/jira/browse/CRM-20942) Email location |
| 692 | type must be 'primary' in profile or user creation won't work for event |
| 693 | ([10744](https://github.com/civicrm/civicrm-core/pull/10744))** |
| 694 | |
| 695 | ### WordPress Integration |
| 696 | |
| 697 | - **Fix parameter parsing in wp-cli civicrm api. |
| 698 | ([114](https://github.com/civicrm/civicrm-wordpress/pull/114))** |
| 699 | |
| 700 | - **[CRM-21166](https://issues.civicrm.org/jira/browse/CRM-21166) WP-CLI |
| 701 | commands fail due to whitespace in regex |
| 702 | ([115](https://github.com/civicrm/civicrm-wordpress/pull/115))** |
| 703 | |
| 704 | ### Internationalization |
| 705 | |
| 706 | - **[CRM-19968](https://issues.civicrm.org/jira/browse/CRM-19968) Disable |
| 707 | multiple languages fixes |
| 708 | ([9783](https://github.com/civicrm/civicrm-core/pull/9783))** |
| 709 | |
| 710 | This patch makes the following tweaks to the SQL queries that run when |
| 711 | disabling multiple languages so that it is more likely to succeed. |
| 712 | |
| 713 | 1. Column is renamed instead of created and copied, as the copy often leads to |
| 714 | a row size constraint (eg. in civicrm_event when you have some text in |
| 715 | intro_text_lang). |
| 716 | 2. Use DROP VIEW IF EXISTS instead of DROP VIEW (supported |
| 717 | in mysql 5.1+). There is more support for IF EXISTS on other SQL functions in |
| 718 | new versions of mysql but we can't use them if we're maintaining |
| 719 | compatibility. |
| 720 | |
| 721 | ## <a name="misc"></a>Miscellany |
| 722 | |
| 723 | - **[CRM-21153](https://issues.civicrm.org/jira/browse/CRM-21153) Fix mispelled |
| 724 | variable ([10945](https://github.com/civicrm/civicrm-core/pull/10945))** |
| 725 | |
| 726 | Fixes a misspelled variable |
| 727 | |
| 728 | - **[CRM-21065](https://issues.civicrm.org/jira/browse/CRM-21065) Replace some |
| 729 | deprecated slow function calls: some CRM_Core_OptionGroup::values with |
| 730 | CRM_Activity_BAO_ActivityContact::buildOptions |
| 731 | ([10860](https://github.com/civicrm/civicrm-core/pull/10860))** |
| 732 | |
| 733 | Replace (some not all) CRM_Core_OptionGroup::values with |
| 734 | CRM_Activity_BAO_ActivityContact::buildOptions where it is safe to do so (ie. |
| 735 | parameters map directly). |
| 736 | |
| 737 | - **[CRM-20927](https://issues.civicrm.org/jira/browse/CRM-20927) Allow |
| 738 | `civicrm_menu` to store new data in generic column |
| 739 | ([10858](https://github.com/civicrm/civicrm-core/pull/10858)) (completes |
| 740 | previous work)** |
| 741 | |
| 742 | The schema change is moved to a PHP-based upgrade task rather than a SQL |
| 743 | incremental upgrade query template. |
| 744 | |
| 745 | - **[CRM-21036](https://issues.civicrm.org/jira/browse/CRM-21036) Change |
| 746 | deprecated comments to tags so phpstorm marks functions as deprecated |
| 747 | ([10825](https://github.com/civicrm/civicrm-core/pull/10825))** |
| 748 | |
| 749 | - **[CRM-21023](https://issues.civicrm.org/jira/browse/CRM-21023) Replace |
| 750 | deprecated code and hardcoded IDs with pseudoconstants in Activity BAO |
| 751 | ([10816](https://github.com/civicrm/civicrm-core/pull/10816))** |
| 752 | |
| 753 | - **(NFC) SettingsStack - Finish incomplete docblock |
| 754 | ([10950](https://github.com/civicrm/civicrm-core/pull/10950))** |
| 755 | |
| 756 | - **Reinstate accidentally deleted test. |
| 757 | ([10938](https://github.com/civicrm/civicrm-core/pull/10938))** |
| 758 | |
| 759 | - **NFC remove some unused vars, fix comment |
| 760 | ([10886](https://github.com/civicrm/civicrm-core/pull/10886))** |
| 761 | |
| 762 | - **Renamed test class. |
| 763 | ([10730](https://github.com/civicrm/civicrm-core/pull/10730))** |
| 764 | |
| 765 | - **Fix PHP Warnings. Replace fatal with statusBounce. Mark breadcrumbs |
| 766 | parameter as array instead of string so editors don't give a warning |
| 767 | ([10888](https://github.com/civicrm/civicrm-core/pull/10888))** |
| 768 | |
| 769 | - **(NFC) Update contributor-key.yml |
| 770 | ([10894](https://github.com/civicrm/civicrm-core/pull/10894))** |
| 771 | |
| 772 | - **(NFC) Improve docs in CONTRIBUTING.md |
| 773 | ([10853](https://github.com/civicrm/civicrm-core/pull/10853))** |
| 774 | |
| 775 | - **(NFC) SettingsStack - Add test coverage for new helper class |
| 776 | ([10867](https://github.com/civicrm/civicrm-core/pull/10867))** |
| 777 | |
| 778 | - **[NFC] Simplify method of getting logged in contact ID |
| 779 | ([10855](https://github.com/civicrm/civicrm-core/pull/10855))** |
| 780 | |
| 781 | - **Update CONTRIBUTORS.txt |
| 782 | ([10843](https://github.com/civicrm/civicrm-core/pull/10843))** |
| 783 | |
| 784 | - **Update Jon Goldberg in CONTRIBUTORS.txt |
| 785 | ([10840](https://github.com/civicrm/civicrm-core/pull/10840))** |
| 786 | |
| 787 | - **Klaas Eikelboom (Kainuk Empowerment) is member of CiviCooP |
| 788 | ([10812](https://github.com/civicrm/civicrm-core/pull/10812))** |
| 789 | |
| 790 | - **(NFC) Lint civicrm.drush.inc |
| 791 | ([473](https://github.com/civicrm/civicrm-drupal/pull/473))** |
| 792 | |
| 793 | ## <a name="credits"></a>Credits |
| 794 | |
| 795 | This release was developed by the following code authors: |
| 796 | |
| 797 | Aaron Jones; Abhikalak Consultants - Amal Sharma; AGH Strategies - Alice Frumin, |
| 798 | Andie Hunt; Agileware - Agileware Team, Justin Freeman; Australian Greens - |
| 799 | Seamus Lee; CEDC - Laryn Kragt Bakker; Circle Interactive - Dave Jenkins; |
| 800 | CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CiviFirst - John |
| 801 | Kirk; CompuCorp - Camilo Rodriguez; Coop SymbioTIC - Mathieu Lutfy; Eaiman |
| 802 | Shoshi; Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit; JMA |
| 803 | Consulting - Edsel Lopez, Monish Deb, Pradeep Nayak; John Kingsnorth; Joinery - |
| 804 | Allen Shaw; Ken West; Left Join Labs - Sean Madsen; Lemniscus - Noah Miller; |
| 805 | Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone Technology |
| 806 | Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; myDropWizard - David |
| 807 | Snopek; Oxfam Germany - Thomas Schüttler; Progressive Technology Project - Jamie |
| 808 | McClelland; Randy Tobias; Tadpole Collective - Kevin Cristiano; Wikimedia |
| 809 | Foundation - Eileen McNaughton |
| 810 | |
| 811 | Most authors also reviewed code for this release; in addition, the following |
| 812 | reviewers contributed their comments: |
| 813 | |
| 814 | Artful Robot - Rich Lott; Barbara Miller; Black Brick Software - David Hayes; |
| 815 | Blackfly Solutions - Alan Dixon; Brian Hay; Brian McFee; British Humanist |
| 816 | Association - Andrew West, William Gordon; Christian Wach; Circle Interactive - |
| 817 | Andrew Walker, Martin Castle; CiviCoop - Jaap Jansma, Klaas Eikelboom; CiviDesk - |
| 818 | Nicolas Ganivet; Community Builders - Andrew Perry; CompuCorp - Guanhuan Chen, |
| 819 | Omar Abu Hussein; Dave D; Dave Greenberg; Dave Rolsky; David Hepper; Davis Media |
| 820 | Access - Darrick Servis; Deepak Srivastava; Donald Hirst; Donald Lobo; Effy |
| 821 | Elden; Electronic Frontier Foundation - Mark Burdett; eQuality Technology - Greg |
| 822 | Rundlett; Forest CRM Consulting - Tamar Meir; Fuzion - Chris Burgess, Peter |
| 823 | Davis; Greenleaf Advancement - Guy Iaccarino; Hemophilia of North Carolina - |
| 824 | Charles Register; JMA Consulting - Joe Murray; Joel Stevens; Johan Vervloet; |
| 825 | Klangsoft - David Reedy Jr; Korlon - Stuart Gaston; Lullabot - Nate Lampton; |
| 826 | Manish Zope; Marc Brazeau; Mathias Consulting - Cheryl Chase; Michal Mach; |
| 827 | National Democratic Institute - Evan Summers; Nubay Services - David Tarrant; |
| 828 | Openflows - Eric Goldhagen; Palante Technology Cooperative - Joseph Lacey; Phil |
| 829 | McKerracher; Rareș Pamfil; Responsive Development Technologies - Thomas |
| 830 | Nilefalk; Rex Keal; Richard van Oosterhout; Saurabh Batra; Semper IT - Karin |
| 831 | Gerritsen; SEN Magazine - Jeremy Nicholls; Shailesh Lende; Skvare - Mark Hanna; |
| 832 | Squiffle Consulting - Aidan Saunders; Steve Binkowski; Team Expansion - Greg |
| 833 | Harris; Tobias Lounsbury; Wikimedia Foundation - Elliott Eggleston |
| 834 | |
| 835 | ## <a name="feedback"></a>Feedback |
| 836 | |
| 837 | These release notes are edited by Alice Frumin and Andie Hunt. If you'd like |
| 838 | to provide feedback on them, please login to https://chat.civicrm.org/civicrm |
| 839 | and contact `@agh1`. |