Merge pull request #17516 from eileenmcnaughton/pf_field
[civicrm-core.git] / release-notes / 5.4.0.md
1 # CiviCRM 5.4.0
2
3 Released August 1, 2018
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?** | **yes** |
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 - **[CRM-20430](https://issues.civicrm.org/jira/browse/CRM-20430) A permission
29 'save Report Criteria'
30 ([12107](https://github.com/civicrm/civicrm-core/pull/12107))**
31
32 Permission to edit the criteria for saved reports is now separate from the
33 permission to access and preview modifications of report criteria. This will
34 prevent non-privileged users from modifying the criteria of an organization's
35 standard reports. However when upgrading, site administrators will need to
36 grant the Save Report Criteria permission to roles that need that capability.
37
38 - **[dev/core#174](https://lab.civicrm.org/dev/core/issues/174) Consistently use
39 swappable cache interfaces
40 ([12321](https://github.com/civicrm/civicrm-core/pull/12321),
41 [12322](https://github.com/civicrm/civicrm-core/pull/12322),
42 [12323](https://github.com/civicrm/civicrm-core/pull/12323),
43 [12330](https://github.com/civicrm/civicrm-core/pull/12330),
44 [12331](https://github.com/civicrm/civicrm-core/pull/12331),
45 [12336](https://github.com/civicrm/civicrm-core/pull/12336),
46 [12342](https://github.com/civicrm/civicrm-core/pull/12342),
47 [12348](https://github.com/civicrm/civicrm-core/pull/12348),
48 [12354](https://github.com/civicrm/civicrm-core/pull/12354),
49 [12362](https://github.com/civicrm/civicrm-core/pull/12362),
50 [12368](https://github.com/civicrm/civicrm-core/pull/12368),
51 [12376](https://github.com/civicrm/civicrm-core/pull/12376),
52 [12378](https://github.com/civicrm/civicrm-core/pull/12378),
53 [12379](https://github.com/civicrm/civicrm-core/pull/12379),
54 [12380](https://github.com/civicrm/civicrm-core/pull/12380),
55 [12381](https://github.com/civicrm/civicrm-core/pull/12381),
56 [12389](https://github.com/civicrm/civicrm-core/pull/12389), and
57 [215](https://github.com/civicrm/civicrm-packages/pull/215))**
58
59 Sites using Redis or Memcache for caches and sessions will now use those
60 facilities exclusively rather than retaining the `civicrm_cache` table as
61 a backstop. This improves performance for these sites, especially those
62 using multiple MySQL servers.
63
64 As a precaution, Redis or Memcache administrators with very active sites
65 may wish to double-check that they have ample capacity for their caches and
66 sessions.
67
68 For developers, the `CRM_Utils_Cache` APIs now support expiration/TTL
69 times and [PSR-16 CacheInterface](https://www.php-fig.org/psr/psr-16/).
70 The Civi implementation is slightly more permissive than the PSR-16
71 specification; for full compliance, enable `CIVICRM_PSR16_STRICT`.
72
73 - **[CRM-21574](https://issues.civicrm.org/jira/browse/CRM-21574) Allow to
74 disable sending of email from source contact for tell a friend on pcp
75 ([12355](https://github.com/civicrm/civicrm-core/pull/12355)) (preliminary
76 work)**
77
78 Emails from the "tell a friend" feature are sent as if they are from the
79 donor's address. This can cause delivery failures as the site may not be a
80 valid source for the donor's email domain. Changes here are preliminary
81 cleanup.
82
83 - **[dev/core#32](https://lab.civicrm.org/dev/core/issues/32) Add option to
84 disable cancel button on a profile form
85 ([11883](https://github.com/civicrm/civicrm-core/pull/11883))**
86
87 The Cancel button is now optional on profile forms.
88
89 - **[CRM-21392](https://issues.civicrm.org/jira/browse/CRM-21392) Allow viewing
90 groups/smartgroups as as other entities (eg. memberships, events)
91 ([11241](https://github.com/civicrm/civicrm-core/pull/11241))**
92
93 The Find Groups page now has a similar "View Results As" feature as the
94 Advanced Search: you can choose to view memberships, events, activities, etc.
95 of group subscribers rather than the contacts themselves.
96
97 - **[CRM-21622](https://issues.civicrm.org/jira/browse/CRM-21622) Make the Add
98 Parent Groups on Group Settings be a multiselect
99 ([11481](https://github.com/civicrm/civicrm-core/pull/11481))**
100
101 The New Group form now allows you to set multiple parent groups for a single
102 group.
103
104 - **[CRM-21460](https://issues.civicrm.org/jira/browse/CRM-21460) Programmatic
105 access to job execution status
106 ([11337](https://github.com/civicrm/civicrm-core/pull/11337))**
107
108 Extension developers can implement two new hooks, `hook_civicrm_preJob` and
109 `hook_civicrm_postJob`, which are invoked before and after executing a
110 scheduled job.
111
112 - **Change default for `CIVICRM_CONTAINER_CACHE` to simplify admin/developer
113 experience ([12426](https://github.com/civicrm/civicrm-core/pull/12426))**
114
115 - **[dev/core#223](https://lab.civicrm.org/dev/core/issues/223) Expose prefix
116 and suffix in reports
117 ([12394](https://github.com/civicrm/civicrm-core/pull/12394))**
118
119 Individuals' prefix and suffix fields are now available as columns and filters
120 among the contact fields in most reports.
121
122 - **[dev/core#101](https://lab.civicrm.org/dev/core/issues/101) Allow further
123 customization of search form in hooks
124 ([12078](https://github.com/civicrm/civicrm-core/pull/12078))**
125
126 Fields are no longer explicitly included in the search form template since
127 that makes it hard to add or remove fields. Instead, the fields are listed in
128 template variables, and the template iterates over the list to render the
129 field elements.
130
131 - **[dev/core#183](https://lab.civicrm.org/dev/core/issues/183) Temporary tables
132 should follow consistent naming convention
133 ([12311](https://github.com/civicrm/civicrm-core/pull/12311)) (partially
134 completed)**
135
136 This moves towards naming temporary tables--both true temporary tables in
137 MySQL and regular tables created for temporary use--in a consistent manner in
138 order to help database administrators employ replication policies based upon
139 table names.
140
141 - **[dev/core#144](https://lab.civicrm.org/dev/core/issues/144)
142 `getCustomFieldID` switch to API, add caching, add full string return option
143 ([12218](https://github.com/civicrm/civicrm-core/pull/12218) and
144 [12283](https://github.com/civicrm/civicrm-core/pull/12283))**
145
146 The function to retrieve a custom field ID now relies upon APIv3 rather than
147 an *ad hoc* SQL query. It also contains an option to return the ID preceded
148 by `custom_`. Finally, the function caches the result and attempts to return
149 the cached value rather than looking it up each time.
150
151 - **[dev/core#47](https://lab.civicrm.org/dev/core/issues/47) Add "clone"
152 functionality to scheduled jobs
153 ([11945](https://github.com/civicrm/civicrm-core/pull/11945))**
154
155 Scheduled jobs can now be copied, including their parameters, both from the
156 Scheduled Jobs page and through a new `Job.clone` API method.
157
158 ### CiviCase
159
160 - **[dev/core#107](https://lab.civicrm.org/dev/core/issues/107) After creating a
161 new case, the assignee for each activity must be selected manually
162 ([11998](https://github.com/civicrm/civicrm-core/pull/11998))**
163
164 You can now select the default assignee for each activity in the standard
165 timeline for a case type. This may be defined according to a relationship
166 with the client, a single specific contact, or the contact who created the
167 case.
168
169 - **CiviCase, added reference of activities from different timelines.
170 ([12236](https://github.com/civicrm/civicrm-core/pull/12236))**
171
172 From an activity on a case timeline, you can now reference any activity
173 available to the case--not just those on that case timeline.
174
175 ### CiviContribute
176
177 - **Add support for hidden fields in general (and 'token' specifically) on the
178 payment form. ([12332](https://github.com/civicrm/civicrm-core/pull/12332)
179 and [12391](https://github.com/civicrm/civicrm-core/pull/12391))**
180
181 A new authorization token field is added to the payment form to support
182 token-based payment processors.
183
184 - **[CRM-21808](https://issues.civicrm.org/jira/browse/CRM-21808) Install custom
185 group for Contribution or ContributioRecur subtypes based on XML file
186 ([11726](https://github.com/civicrm/civicrm-core/pull/11726))**
187
188 Extensions created custom data sets for contributions can now specify the
189 custom data to apply only to a single financial type.
190
191 - **(dev/core/50) and
192 [dev/core#195](https://lab.civicrm.org/dev/core/issues/195) Add Separate
193 Sub-tabs for Contributions and Recurring Contributions
194 ([11956](https://github.com/civicrm/civicrm-core/pull/11956) and
195 [12345](https://github.com/civicrm/civicrm-core/pull/12345))**
196
197 The Contributions tab on a contact now contains two sub-tabs--one for single
198 contributions, and the other for recurring contribution series--instead of
199 displaying one after the other.
200
201 - **[dev/core#96](https://lab.civicrm.org/dev/core/issues/96) Expose source
202 column in booking report
203 ([12374](https://github.com/civicrm/civicrm-core/pull/12374))**
204
205 The contribution Source field is now available as a column and filter on the
206 Bookkeeping Transactions report.
207
208 - **Use html5 color input for contribution page widget
209 ([12339](https://github.com/civicrm/civicrm-core/pull/12339))**
210
211 ### CiviMail
212
213 - **[dev/mail#1](https://lab.civicrm.org/dev/mail/issues/1) Add pause/resume
214 functionality to civicrm bulk mailing.
215 ([11803](https://github.com/civicrm/civicrm-core/pull/11803) and
216 [12284](https://github.com/civicrm/civicrm-core/pull/12284))**
217
218 A CiviMail mailing that is scheduled or in progress can now be paused in order
219 to allow an urgent message to go out first.
220
221 - **Add in bootstrap button classes to CiviMail interface
222 ([12013](https://github.com/civicrm/civicrm-core/pull/12013) and
223 [12338](https://github.com/civicrm/civicrm-core/pull/12338))**
224
225 This allows the interfaces to be themed more easily by Bootstrap-based themes.
226
227 ## <a name="bugs"></a>Bugs resolved
228
229 ### Core CiviCRM
230
231 - **[dev/core#222](https://lab.civicrm.org/dev/core/issues/222) Importing
232 contacts with dedupe rule does not use the rule
233 ([12393](https://github.com/civicrm/civicrm-core/pull/12393))**
234
235 - **[dev/core#284](https://lab.civicrm.org/dev/core/issues/284) Aggressive cache
236 clearing significantly increases test time
237 ([12590](https://github.com/civicrm/civicrm-core/pull/12590))**
238
239 Settings, compiled Javascript, extension, and other caches are now only
240 flushed along with the `default` CiviCRM cache if an external cache like Redis or
241 Memcache is in use. (This reproduces the `5.3` behavior.)
242
243 - **[dev/core#279](https://lab.civicrm.org/dev/core/issues/279) When Merging two
244 contacts, Flip between original and duplicate link not working in WordPress
245 ([12568](https://github.com/civicrm/civicrm-core/pull/12568))**
246
247 - **Handle 'Check for Matching Contact(s)' button with ajax
248 ([12552](https://github.com/civicrm/civicrm-core/pull/12552))**
249
250 This resolves a bug where the "Check for Matching Contact(s)" button would not
251 work if AJAX Deduping is enabled.
252
253 - **[dev/core#131](https://lab.civicrm.org/dev/core/issues/131) Add in missing
254 UK shire Monmouthshire
255 ([12538](https://github.com/civicrm/civicrm-core/pull/12538)) (follow-up on
256 previous work)**
257
258 Many individual sites had manually added the county of Monmouthshire in Wales
259 to the `civicrm_state_province` table, and upgrading to 5.3.0, which added the
260 missing record, would cause them a database error.
261
262 - **[dev/core#258](https://lab.civicrm.org/dev/core/issues/258) Possible
263 unreleased regression - message template update altered customised template
264 ([12492](https://github.com/civicrm/civicrm-core/pull/12492))**
265
266 - **[dev/core#249](https://lab.civicrm.org/dev/core/issues/249) Contact Export
267 fails in 5.4 when trying to export using the All radio button
268 ([12447](https://github.com/civicrm/civicrm-core/pull/12447))**
269
270 - **[dev/core#234](https://lab.civicrm.org/dev/core/issues/234) Upgrade Steps in
271 5.3.alpha1 may not have been run
272 ([12419](https://github.com/civicrm/civicrm-core/pull/12419),
273 [12420](https://github.com/civicrm/civicrm-core/pull/12420), and
274 [12425](https://github.com/civicrm/civicrm-core/pull/12425))**
275
276 - **[dev/core#155](https://lab.civicrm.org/dev/core/issues/155) Improvements and
277 bugfixes to Option Groups UI
278 ([12233](https://github.com/civicrm/civicrm-core/pull/12233) and
279 [12411](https://github.com/civicrm/civicrm-core/pull/12411))**
280
281 The Option Groups page now displays whether each option group is reserved or
282 enabled. In addition, sites using sample data no longer have the sample
283 custom fields reserved.
284
285 - **[CRM-20184](https://issues.civicrm.org/jira/browse/CRM-20184) Some System
286 Workflow templates still miss {contact.email_greeting}
287 ([12296](https://github.com/civicrm/civicrm-core/pull/12296))**
288
289 This makes receipt templates more consistent in using the contact's email
290 greeting when sent to individuals.
291
292 - **[dev/core#41](https://lab.civicrm.org/dev/core/issues/41) Search Builder:
293 Not empty with date or integer custom fields gives a sql warning
294 ([12351](https://github.com/civicrm/civicrm-core/pull/12351) and
295 [12363](https://github.com/civicrm/civicrm-core/pull/12363))**
296
297 - **Make all form tasks inherit from `CRM_Core_Form_Task`
298 ([12318](https://github.com/civicrm/civicrm-core/pull/12318))**
299
300 This addresses some export problems caused by tasks lacking certain properties
301 because their classes did not extend `CRM_Core_Form_Task`.
302
303 - **[dev/core#178](https://lab.civicrm.org/dev/core/issues/178) Redis driver -
304 Error messages are invisible
305 ([12303](https://github.com/civicrm/civicrm-core/pull/12303))**
306
307 The log now contains error messages passed from Redis.
308
309 - **[dev/core#180](https://lab.civicrm.org/dev/core/issues/180) Deleting custom
310 values and custom_hook parameter `$entity_id` empty
311 ([12309](https://github.com/civicrm/civicrm-core/pull/12309))**
312
313 The ID of the affected entity is now passed to `hook_civicrm_custom` when a
314 value is deleted from a custom field.
315
316 - **Fix access to scheduled reminders for admins without event access
317 ([11733](https://github.com/civicrm/civicrm-core/pull/11733))**
318
319 Users with Administer CiviCRM permission but lacking Manage Events permission
320 would get an error when trying to create a non-event scheduled reminder.
321
322 - **Only treat a request as a get request (and hence use GET) if it starts with
323 get ([12308](https://github.com/civicrm/civicrm-core/pull/12308))**
324
325 - **[dev/core#179](https://lab.civicrm.org/dev/core/issues/179) Redis driver -
326 Allow anonymous connections
327 ([12304](https://github.com/civicrm/civicrm-core/pull/12304))**
328
329 Redis no longer attempts to authenticate when no password is set, such as on
330 local development environments.
331
332 - **[dev/core#177](https://lab.civicrm.org/dev/core/issues/177) Redis driver -
333 Reports incorrect value for cache-miss
334 ([12302](https://github.com/civicrm/civicrm-core/pull/12302))**
335
336 When a cache key is undefined, Redis now returns `NULL` rather than `FALSE`.
337
338 - **[dev/core#175](https://lab.civicrm.org/dev/core/issues/175) Smart group
339 involving relationship type filter display incorrect results.
340 ([12301](https://github.com/civicrm/civicrm-core/pull/12301))**
341
342 - **Make Send SMS permission independent of Edit Contact permission
343 ([12067](https://github.com/civicrm/civicrm-core/pull/12067))**
344
345 You no longer need the permission to edit a contact (in addition to the Send
346 SMS permission) to send the contact a SMS message.
347
348 - **[dev/core#134](https://lab.civicrm.org/dev/core/issues/134) Search Builder
349 broken filter for Source Contact ID
350 ([12181](https://github.com/civicrm/civicrm-core/pull/12181))**
351
352 - **[dev/core#140](https://lab.civicrm.org/dev/core/issues/140) add missing
353 pseudoconstant for `option_group_id` in CustomField.xml
354 ([12195](https://github.com/civicrm/civicrm-core/pull/12195))**
355
356 Extensions creating custom fields can now refer to option groups by name
357 rather than ID.
358
359 - **[dev/accessiblity#3](https://lab.civicrm.org/dev/accessibility/issues/3) Add
360 aria-label (and label?) to form elements missing them
361 ([12209](https://github.com/civicrm/civicrm-core/pull/12209) and
362 [213](https://github.com/civicrm/civicrm-packages/pull/213)) (partial work)**
363
364 Besides adding `aria-label` attributes to sub-elements of the Quickform
365 date field, event info pages no longer wrap basic information labels in
366 `<label>` tags.
367
368 - **[CRM-20711](https://issues.civicrm.org/jira/browse/CRM-20711) Error - DB
369 Constraint Violation - GroupContact, get API
370 ([12408](https://github.com/civicrm/civicrm-core/pull/12408))**
371
372 This adds the `location_id` field to the `civicrm_group_contact` table on
373 older sites that lack it.
374
375 - **[dev/core#152](https://lab.civicrm.org/dev/core/issues/152) -
376 AdvMulti-Select cleanup
377 ([531](https://github.com/civicrm/civicrm-drupal/pull/531)) (follow-up work)**
378
379 This removes a couple of references to the now-removed "Advanced Multi-select"
380 custom field type
381
382 - **Upgrade Mime_mail to fix issues with PHP7.2
383 ([205](https://github.com/civicrm/civicrm-packages/pull/205))**
384
385 - **Apply fixes to have DB package support PHP7.2
386 ([207](https://github.com/civicrm/civicrm-packages/pull/207))**
387
388 - **[dev/core#117](https://lab.civicrm.org/dev/core/issues/117) Remove usage of
389 `each()` This is deprecated in php7.2
390 ([211](https://github.com/civicrm/civicrm-packages/pull/211)) (follow-up
391 work)**
392
393 - **Declare Subparts as array in mimePart to support PHP7.2
394 ([210](https://github.com/civicrm/civicrm-packages/pull/210))**
395
396 - **[CRM-19798](https://issues.civicrm.org/jira/browse/CRM-19798) Memory leak in
397 API3 EntityTag get operations
398 ([12276](https://github.com/civicrm/civicrm-core/pull/12276))**
399
400 ### CiviCase
401
402 - **Fix regression on case export from recent export fix
403 ([12588](https://github.com/civicrm/civicrm-core/pull/12588))**
404
405 This resolves undefined property PHP notices when exporting cases.
406
407 - **[dev/core#24](https://lab.civicrm.org/dev/core/issues/24) Passing an array
408 for contact_id/client_id to Case.Create API when updating an existing case
409 causes case to be "reassigned"
410 ([11830](https://github.com/civicrm/civicrm-core/pull/11830))**
411
412 - **[CRM-21815](https://issues.civicrm.org/jira/browse/CRM-21815) On re-opening
413 a civicase - Case Coordinator (and other roles) are not reinstated
414 ([11736](https://github.com/civicrm/civicrm-core/pull/11736))**
415
416 - **[dev/core#165](https://lab.civicrm.org/dev/core/issues/165) Bad link in
417 civicrm/case/activity/view breadcrumb
418 ([12279](https://github.com/civicrm/civicrm-core/pull/12279))**
419
420 ### CiviContribute
421
422 - **[CRM-21637](https://issues.civicrm.org/jira/browse/CRM-21637) Search
423 Criteria for Card Type ID and Card Number not respected in Batch
424 ([11495](https://github.com/civicrm/civicrm-core/pull/11495))**
425
426 The card type and card number filters for financial transactions in the
427 accounting batch interface now work as expected.
428
429 - **[CRM-21854](https://issues.civicrm.org/jira/browse/CRM-21854) Contribution
430 start date and end dates are not respected
431 ([11881](https://github.com/civicrm/civicrm-core/pull/11881) and
432 [12504](https://github.com/civicrm/civicrm-core/pull/12504))**
433
434 - **[dev/core#264](https://lab.civicrm.org/dev/core/issues/264) Fatal Error on
435 editing Financial Transaction
436 ([12502](https://github.com/civicrm/civicrm-core/pull/12502))**
437
438 - **[dev/core#220](https://lab.civicrm.org/dev/core/issues/220) State
439 province/country doesn't show properly in the report
440 ([12390](https://github.com/civicrm/civicrm-core/pull/12390))**
441
442 This resolves a bug in the Contribution History by Relationship report where
443 strange values would appear for the State/Province and Country fields.
444
445 - **[dev/core#202](https://lab.civicrm.org/dev/core/issues/202) Empty row under
446 currency drop down
447 ([12356](https://github.com/civicrm/civicrm-core/pull/12356))**
448
449 A warning now appears when a site has a disabled currency that is set as
450 default.
451
452 - **[dev/core#88](https://lab.civicrm.org/dev/core/issues/88) Make sure
453 `financial_type_id` is set when a contribution is created
454 ([11907](https://github.com/civicrm/civicrm-core/pull/11907))**
455
456 This resolves a bug where the financial type would not be set on a one-time
457 contribution made through a contribution page.
458
459 - **[dev/core#170](https://lab.civicrm.org/dev/core/issues/170) contribution
460 detail report errors when soft credits column is exposed
461 ([12281](https://github.com/civicrm/civicrm-core/pull/12281) and
462 [12282](https://github.com/civicrm/civicrm-core/pull/12282))**
463
464 - **Fix e-notice, remove legacy code pattern
465 ([12298](https://github.com/civicrm/civicrm-core/pull/12298))**
466
467 This resolves a PHP notice when printing contribution receipts in bulk.
468
469 - **[dev/core#56](https://lab.civicrm.org/dev/core/issues/56) Cancel Recurring
470 Contribution activity should have a source record id
471 ([11964](https://github.com/civicrm/civicrm-core/pull/11964))**
472
473 The activity created when cancelling a recurring contribution now has the
474 recurring contribution ID as the `source_record_id`.
475
476 - **[dev/financial#14](https://lab.civicrm.org/dev/financial/issues/14) PayPal
477 Express recurring payment causes warning messages
478 ([12091](https://github.com/civicrm/civicrm-core/pull/12091))**
479
480 - **[CRM-20697](https://issues.civicrm.org/jira/browse/CRM-20697) Online pay now
481 anomalies (contribution transfer to new contact)
482 ([11578](https://github.com/civicrm/civicrm-core/pull/11578))**
483
484 The Pay Now form now uses contact ID and checksum to validate the
485 contribution's contact to avoid creating new contacts when an anonymous
486 visitor fulfills a pending contribution.
487
488 ### CiviEvent
489
490 - **[dev/core#272](https://lab.civicrm.org/dev/core/issues/272) Fatal Error
491 (Regression) on PCP pages associated with Events
492 ([12533](https://github.com/civicrm/civicrm-core/pull/12533))**
493
494 - **[dev/core#124](https://lab.civicrm.org/dev/core/issues/124) Registration
495 approval issues ([12160](https://github.com/civicrm/civicrm-core/pull/12160)
496 and [12417](https://github.com/civicrm/civicrm-core/pull/12417))**
497
498 This resolves a PHP warning and some confusing aspects of handling event
499 registration approvals.
500
501 ### CiviGrant
502
503 - **[dev/core#187](https://lab.civicrm.org/dev/core/issues/187) Fix typo in
504 `CRM_Grant_Form_Task` that prevents retrieving session key from URL
505 ([12317](https://github.com/civicrm/civicrm-core/pull/12317))**
506
507 ### CiviMail
508
509 - **[dev/core#133](https://lab.civicrm.org/dev/core/issues/133) Reply-to field
510 with empty string get saved in DB as `NULL`
511 ([12176](https://github.com/civicrm/civicrm-core/pull/12176))**
512
513 - **[CRM-20320](https://issues.civicrm.org/jira/browse/CRM-20320) Error in PEAR
514 SMTP causes mailing job to fail when an error occurs during one connection
515 ([11840](https://github.com/civicrm/civicrm-core/pull/11840))**
516
517 CiviMail will now disconnect the SMTP connection when a connection error is
518 detected and record the group of messages as not delivered. This allows it to
519 reconnect later and send the messages.
520
521 - **[CRM-17753](https://issues.civicrm.org/jira/browse/CRM-17753) Newsletter
522 confirmation emails shouldn't use do-not-reply@yourdomain.org
523 ([12270](https://github.com/civicrm/civicrm-core/pull/12270)) (preliminary
524 work)**
525
526 - **[CRM-21779](https://issues.civicrm.org/jira/browse/CRM-21779) Civimail
527 allows adding current draft mailing recipients to recipients field
528 ([11724](https://github.com/civicrm/civicrm-core/pull/11724))**
529
530 ### CiviMember
531
532 - **[dev/membership#4](https://lab.civicrm.org/dev/membership/issues/4) Admin
533 Membership type is displayed on Public contribution page.
534 ([12178](https://github.com/civicrm/civicrm-core/pull/12178))**
535
536 - **[dev/core#276](https://lab.civicrm.org/dev/core/issues/276) Undefined index:
537 is_override on submit credit card membership
538 ([12563](https://github.com/civicrm/civicrm-core/pull/12563))**
539
540 - **[dev/core#151](https://lab.civicrm.org/dev/core/issues/151) Action to Update
541 Recurring Contributions From Membership View is Never Shown
542 ([12228](https://github.com/civicrm/civicrm-core/pull/12228))**
543
544 The table to view recurring contributions on a membership now displays the
545 Edit action where appropriate.
546
547 - **[CRM-21682](https://issues.civicrm.org/jira/browse/CRM-21682) Automatic
548 membership renewal fixes
549 ([12313](https://github.com/civicrm/civicrm-core/pull/12313) and
550 [12314](https://github.com/civicrm/civicrm-core/pull/12314)) (preliminary
551 work)**
552
553 - **[CRM-21177](https://issues.civicrm.org/jira/browse/CRM-21177) Wrong interval
554 of recurring payment for auto-renewing membership
555 ([12289](https://github.com/civicrm/civicrm-core/pull/12289)) (preliminary
556 work)**
557
558 ### Joomla Integration
559
560 - **[dev/joomla#1](https://lab.civicrm.org/dev/joomla/issues/1) CiviEvent menu
561 listing showing old events
562 ([46](https://github.com/civicrm/civicrm-joomla/pull/46))**
563
564 ### WordPress Integration
565
566 - **[dev/wordpress#1](https://lab.civicrm.org/dev/wordpress/issues/1)
567 CiviCRM-WordPress - Gutenberg Compatibility: Do not parse shortcodes in REST
568 context ([130](https://github.com/civicrm/civicrm-wordpress/pull/130))**
569
570 - **[CRM-21565](https://issues.civicrm.org/jira/browse/CRM-21565) Change mkdir
571 to use correct and more secure mode numbers
572 ([120](https://github.com/civicrm/civicrm-wordpress/pull/120))**
573
574 ## <a name="misc"></a>Miscellany
575
576 - **(NFC) Convert files to use linux line endings not windows
577 ([12531](https://github.com/civicrm/civicrm-core/pull/12531))**
578
579 - **Move DAO function to DAO class, call it from Merge class
580 ([12340](https://github.com/civicrm/civicrm-core/pull/12340))**
581
582 - **NFC code cleanup for AuthNet, Paypal, PaypalPro IPNs
583 ([12386](https://github.com/civicrm/civicrm-core/pull/12386))**
584
585 - **[dev/core#203](https://lab.civicrm.org/dev/core/issues/203) Cruft code in
586 `CRM_Core_BAO_OptionGroup::add()`
587 ([12357](https://github.com/civicrm/civicrm-core/pull/12357))**
588
589 - **Remove unused instances of usedTable
590 ([12341](https://github.com/civicrm/civicrm-core/pull/12341) and
591 [12349](https://github.com/civicrm/civicrm-core/pull/12349))**
592
593 - **(NFC) CiviUnitTestCase - Fix edge-case for mis-reported error
594 ([12347](https://github.com/civicrm/civicrm-core/pull/12347))**
595
596 - **NFC Code cleanup to core task class
597 ([12316](https://github.com/civicrm/civicrm-core/pull/12316))**
598
599 - **[NFC] Stop passing no-longer-part-of-signature variable
600 ([12329](https://github.com/civicrm/civicrm-core/pull/12329))**
601
602 - **Fix typo in api explorer sample code
603 ([12324](https://github.com/civicrm/civicrm-core/pull/12324))**
604
605 - **Remove unused code variable
606 ([12299](https://github.com/civicrm/civicrm-core/pull/12299))**
607
608 - **Confirm & lock in group.get handling of is_active
609 ([12295](https://github.com/civicrm/civicrm-core/pull/12295))**
610
611 - **Remove unused function getRecuringTransactionStatus from PayflowPro c…
612 ([12294](https://github.com/civicrm/civicrm-core/pull/12294))**
613
614 - **Add upgrade function for message templates that does not involve copying the
615 whole template ([12224](https://github.com/civicrm/civicrm-core/pull/12224))**
616
617 - **Function extraction BAO_Export class
618 ([12288](https://github.com/civicrm/civicrm-core/pull/12288))**
619
620 - **Partial refactor of completeMembershipFromContribution
621 ([12271](https://github.com/civicrm/civicrm-core/pull/12271))**
622
623 - **[NFC] Fix line endings (Jenkins where were you)
624 ([12280](https://github.com/civicrm/civicrm-core/pull/12280))**
625
626 - **Towards fixing household merge export, extract function, add test, fix prev
627 ([12272](https://github.com/civicrm/civicrm-core/pull/12272))**
628
629 - **Standardise line endings away from windows line endings to linux
630 ([212](https://github.com/civicrm/civicrm-packages/pull/212))**
631
632 ## <a name="credits"></a>Credits
633
634 This release was developed by the following code authors:
635
636 AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Alok Patel; Australian
637 Greens - Seamus Lee; Bastien Ho; Caltha - Tomasz Pietrzkowski; CiviCoop - Jaap
638 Jansma; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; CompuCorp -
639 Camilo Rodriguez, Michael Devery, René Olivo, Vinu Varshith Sekar; Electronic
640 Frontier Foundation - Mark Burdett; Fuzion - Jitendra Purohit; Ginkgo Street
641 Labs - Frank Gómez; JMA Consulting - Monish Deb; Johan Vervloet; John
642 Kingsnorth; Kanzu Code - Carl Andrew Lema; Left Join Labs - Sean Madsen; MJW
643 Consulting - Matthew Wire; Pradeep Nayak; Romain Thouvenin; Squiffle Consulting -
644 Aidan Saunders; Tadpole Collective - Kevin Cristiano; Third Sector Design -
645 Michael McAndrew; Tom Bloor; Wikimedia Foundation - Eileen McNaughton
646
647 Most authors also reviewed code for this release; in addition, the following
648 reviewers contributed their comments:
649
650 Agileware - Justin Freeman; baernm; Blackfly Solutions - Alan Dixon; Bob
651 Silvern; Borislav Zlatanov; Caltha - Michal Mach; cartbar; Christian Wach;
652 Circle Interactive - Dave Jenkins; CiviCoop - Erik Hommel; Community Builders -
653 Andrew Perry; CompuCorp - Guanhuan Chen, Omar Abu Hussein; Coop SymbioTIC -
654 Mathieu Lutfy; Drupal Association - Lizz Trudeau; Evan Chute; Forest CRM
655 Consulting - Tamar Meir; Freeform Solutions - Herb van den Dool; Ginkgo Street
656 Labs - Dan O'Brien; Hugo do Carmo; JMA Consulting - Joe Murray; Lemniscus - Noah
657 Miller; Lighthouse Design and Consulting - Brian Shaughnessy; Megaphone
658 Technology Consulting - Jon Goldberg; MJCO - Mikey O'Toole; Oxfam Germany -
659 Thomas Schüttler; Richard van Oosterhout; Robin Fenwick; Semper IT - Karin
660 Gerritsen; Stephen Palmstrom; Tech To The People - Xavier Dutoit; Timbsoft
661 Technologies - Tunbola Ogunwande
662
663 ## <a name="feedback"></a>Feedback
664
665 These release notes are edited by Andrew Hunt. If you'd like to provide
666 feedback on them, please log in to https://chat.civicrm.org/civicrm and contact
667 `@agh1`.