CiviCRM 5.29 Release

2020-09-03 05:00
Written by

CiviCRM version 5.29.0 is now out and ready to download. This is a regular monthly release.

Upgrade now for the most stable CiviCRM experience:

Users of the CiviCRM Extended Security Releases (ESR) do not need to upgrade, as there are no ESR-specific bugfixes or security issues at the moment.

Important announcements and reminders:

  • As of CiviCRM 5.28, the minimum MySQL supported version is 5.6. MySQL 5.7 and MariaDB up to 10.4 are well tested. MySQL 8 works well too and has test coverage (related issue). More information in the official documentation about system requirements. CiviCRM 5.34 will require a minimum of MySQL 5.7 or MariaDB 10.0.2.
  • As of CiviCRM 5.25, the minimum supported version is PHP 7.1. The recommended PHP version is PHP 7.3.

What's new in CiviCRM 5.29

This version changes the database schema, has changes to the API, as well as the usual bugfixes and minor feature improvements.

  • Contacts: Custom fields were not copied on shared address (dev/core#1670: 17580)
  • Contacts: Users sending an email are no longer able to save or modify a template if they lack the "edit message templates" permission (dev/core#1751: 17480)
  • Contacts: Fix validation errors when removing contact subtype (dev/core#1853: 17765)
  • Contact Export: improve performance by exporting only primary address fields (dev/core#1725: 17458)
  • Interface: Buttons no longer have a gradient background (18054) This is just one small example of the many user interface changes that are happening, towards providing an easier to theme CiviCRM interface. Only a few changes are documented here. If you heavily customize the backend interface, please read the full release notes.
  • Interface: Change inform-icon to fa-info-circle (18001)
  • Reports: Allow different output formats for CiviReport results, fixes limitations in the Export to Excel extension (dev/core#1855: 17901)
  • Reports: Fix utf8 encoding of emails sent via mail_report job with a CSV attachment (dev/core#1869: 17806)
  • Membership: New options added to the "process_membership" Scheduled Job (dev/membership#18: 16298)
  • Scheduled Jobs: Show cron warning on Scheduled Jobs admin page (18065)
  • Contributions: Define the logic that sets (or not) contribution receive_date in relation to payments (dev/financial#139: 17777 and 18000) This undoes a regression where the contribution date of a pay-later contribution would change when a payment completes the contribution. The contribution date is the accrual date and is distinct from the date the contribution is entered and the date when all payments have been received. In the process, this changes the "Update pending contribution status" search action to be "Record payments for contributions". The result is generally the same, but the status change comes about because the payments complete the contributions. You can modify contribution statuses in bulk with a profile by using the "Update multiple contributions" action.
  • Contributions: Allow changing the status from Failed to Completed status (dev/core#1906: 17943)
  • Contribution Pages: Fix translation of On behalf label / Honoree Title / Honoree Description fields (dev/core#1280: 16838)
  • Contributions: Total Tax Amount on the Contribution (generated in backoffice/offline) no longer adds up to sum of the Tax Amount for the individual line items (dev/core#1983: 18290)
  • Contribution invoices: Use wkhtmltopdf if configured (dev/core#1922: 18056)
  • Contribution Pages: Add configure and priceset url icons on public contribution & event pages (dev/core#1905: 17942, 18088 and 18064)
  • Event Cart: Move Event Cart to an extension shipped with core (17741, 17743, 17861, 17884, 17885, and 17891) - this was a big code cleanup, to help untangle code.
  • CiviMail: Remove URL-tracking in mass SMS (dev/core#1843: 17700)
  • Mailing Subscription form: fix reCAPTCHA validation (dev/core#1755: 17305)
  • CiviMail: Add CiviMail synchronisation frequency setting (in support of dev/core#1768: 17709) This adds a setting for updating how frequently the database should be updated with the status of emails that have been sent. Updating the database more frequently can slow the process down, but it reduces the likelihood that a recipient will be re-emailed when recovering from a stalled mailing.
  • CiviMail: Mark the new routes for "open.php" and "url.php" as public (17813) This improves Drupal8/Drupal9 support.
  • Backdrop: now uses the "new" civicrm-setup installer, which simplifies the installation of CiviCRM.
  • WordPress: Add system check to ensure WP base page exists (17698)
  • System: Do not allow enabling database logging when using multilingual (dev/core#1812: 17815) This has never worked, with network errors as the result. This prevents it from being set.
  • System Checks: In non-production environments, a system check produces a message saying so. This downgrades it from an "Alert" to a more appropriate level of "Notice", and it also suppresses cron and CiviMail system checks in this situation (part of dev/core#1863: 17807)
  • Drupal 8: Using Create User Record action on a contact with no email is too quiet. Also CRM_Core_Session::setStatus is sometimes ignored. (dev/drupal#127: 17914 and 17915)
  • WordPress: Slow down the frequency of WordPress "heartbeat" calls in CiviCRM admin (dev/wordpress#67: 214)
  • MySQL: Ability to enable SSL for database connection. (dev/core#1137: 17706)
  • Hooks: Add in hook to allow for altering of Profile Schemas (dev/core#1913: 17986)
  • Api4 SystemCheck: add ability to efficiently run only specified checks (17824)
  • Api4 RelationshipCache: Add a high-level index to facilitate relationship queries (more fields) (17781 and 17879)
  • Many many other Api4 improvements, which the new Search interface is using (core extension, but hidden at the moment).

This is only a short overview. You can read the full release notes here (it includes all Gitlab and Github references, with much more information). Big thanks to Andrew Hunt and Alice Frumin from AGH Strategies for putting up together release notes.

This release was developed by the following code authors:

AGH Strategies - Alice Frumin, Andrew Hunt; Agileware - Justin Freeman; Christian Wach; Circle Interactive - Pradeep Nayak; CiviCoop - Jaap Jansma, Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; Coop SymbioTIC - Mathieu Lutfy, Samuel Vanhove; Dave D; Fuzion - Jitendra Purohit; iXiam - César Ramos, Diego Muñio; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Joinery - Allen Shaw; Lighthouse Consulting and Design - Brian Shaughnessy; Megaphone Technology Consulting - Jon Goldberg; MillerTech - Chamil Wijesooriya; MJCO - Mikey O'Toole; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie McClelland; Squiffle Consulting - Aidan Saunders; Stephen Palmstrom; Tadpole Collective - Kevin Cristiano; Timbsoft Technologies - Tunbola Ogunwande; Wikimedia Foundation - Eileen McNaughton

Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments:

Agileware - Pengyi Zhang; Andrew Thompson; Artful Robot - Rich Lott; Australian Greens - Andrew Cormick-Dockery, John Twyman; Bastien Ho; Blackfly Solutions - Alan Dixon; Carlos Capote; CompuCorp - Jamie Novick; DevApp - Adam Kwiatkowski; Francesc Bassas i Bullich; Freeform Solutions - Herb van den Dool; Greenpeace Central and Eastern Europe - Patrick Figel; Irene Meisel; JMA Consulting - Joe Murray; Korlon - Stuart Gaston; Nicol Wistreich; Rar9; Ray Wright; Semper IT - Karin Gerritsen; Third Sector Design - Michael McAndrew

Thanks to everyone for making this release happen!

Support CiviCRM

We are committed to keeping CiviCRM free and open, forever. We depend on your support to help make that happen.