Home

>

Tools

>

Drupal

>

Releases

>

8.5.0

Drupal Release: 8.5.0

Tag Name: 8.5.0

Release Date: 3/7/2018

Drupal LogoDrupal

Highly flexible, open-source content management system known for complex, scalable web applications. Preferred by government, educational, and large enterprise websites requiring advanced customization and security features. Robust module ecosystem.

TL;DR

Drupal 8.5.0 introduces several major features including stable Content Moderation and Settings Tray modules, experimental Layout Builder, improved Media functionality, and a new experimental demo profile called Umami. This release also includes significant improvements to multilingual content handling with content translations that can be moderated independently, better migration tools including incremental migrations through the UI, and numerous bug fixes and performance improvements. PHP 5 support is now deprecated, with PHP 7.2 recommended for optimal performance.

Highlight of the Release

    • Content Moderation module is now stable, allowing for more flexible workflows
    • Settings Tray module is now stable, providing in-context editing of blocks
    • New experimental Layout Builder for creating layouts
    • Media module is now available in the UI (previously hidden)
    • New experimental Umami demo profile showcasing Drupal's capabilities
    • Improved multilingual support with independent moderation of translations
    • Incremental migrations now available through the UI
    • PHP 5 support is now deprecated, with PHP 7.2 recommended

Migration Guide

PHP Version Requirements

PHP 5 support is now deprecated. Sites should update to PHP 7.1+ with PHP 7.2 recommended for optimal performance and security. A warning will be displayed on the status page for sites running on PHP versions that will soon be unsupported.

Content Moderation

If you were using the experimental Content Moderation module, review your workflows after upgrading as the stable version includes API changes that might affect custom code interacting with workflows.

Entity Revision Handling

Several changes have been made to how entity revisions and translations are handled. If you have custom code that interacts with entity revisions, especially for translated content, you should test thoroughly after upgrading.

Layout Builder

If you choose to use the experimental Layout Builder module, be aware that its API may change in future releases as it's still under development.

Media Module

The Media module is now available in the UI. If you were using a contributed Media module, you should plan to migrate to the core implementation.

Symfony Components

Symfony components have been updated to 3.4. If you have custom code that interacts directly with Symfony components, review for compatibility.

Field Widget Form Alters

hook_field_widget_form_alter() can no longer affect the whole widget for multi-value fields. Use the new hook_field_widget_multivalue_form_alter() and hook_field_widget_multivalue_WIDGET_TYPE_form_alter() hooks instead.

REST API Changes

If you're using the REST API, note that the revision_default field is now marked as internal for REST consumers.

Upgrade Recommendations

Priority: Medium to High

Who should upgrade:

  • Sites that need the new stable Content Moderation and Settings Tray features
  • Sites that want to use the improved Media functionality
  • Sites with multilingual content that will benefit from independent translation moderation
  • Sites running on PHP 5.x, as support is now deprecated

Upgrade path:

  1. Back up your site's code, files, and database
  2. Update to Drupal 8.5.0 using Composer (recommended) or by downloading the core package
  3. Run the database updates by visiting /update.php or using Drush: drush updatedb
  4. Clear caches: drush cache-rebuild or via the admin UI
  5. Test thoroughly, especially if you use multilingual features or content moderation

Special considerations:

  • If upgrading from 8.4.x, the upgrade should be straightforward
  • If upgrading from earlier versions, upgrade to 8.4.x first
  • Sites using PHP 5.x should plan to upgrade to PHP 7.1+ soon
  • Review any custom code that interacts with entity revisions or translations
  • If you use the experimental Layout Builder, be aware its API may change in future releases

Bug Fixes

Multilingual and Translation Fixes

  • Fixed issues where changes to untranslatable fields would affect all translations in pending revisions
  • Fixed a bug where removed revision translations could reappear when creating a new revision
  • Fixed an issue where pending revisions could become unavailable when untranslatable fields affect all translations
  • Fixed a bug where flagging translations as outdated in a pending revision caused multiple translations to be marked as affected
  • Resolved an issue where multilingual logic was not applied when a new revision translation was being added
  • Fixed a bug where node links always loaded the default revision during rendering

Entity and Field Handling

  • Fixed EntityReferenceItem::generateSampleValue() to create a sample entity if a referenceable entity is not found
  • Fixed a regression where LinkWidget no longer supported base fields with optional title
  • Fixed an issue where field_purge_batch expected an array of objects but instead got an array of arrays
  • Fixed a bug where ModerationStateFieldItemList fails after an entity has been serialized/unserialized
  • Fixed an issue where widget validation crashed on ItemList violations for widgets with a custom errorElement() implementation

Media and File Handling

  • Fixed an issue where for multi-language private files, FileDownloadController was used for the ImageStyle instead of ImageStyleDownloadController
  • Fixed a PHP warning in ImageWidget::validateRequiredFields() when the triggering element is a non-button
  • Updated image fields to use any extensions the current image toolkit supports (instead of hard-coding jpg, png, and gif only)

Views and UI

  • Fixed an issue where Views Table style plugin breaks dynamic cache
  • Fixed a bug where duplicating a Page to Block after changing the display ID and then saving the view destroys the Page
  • Fixed a regression where it was impossible to add effects to image style via the UI

Performance and Caching

  • Fixed an issue where user_hook_toolbar() made all pages uncacheable
  • Fixed a browser parsing race condition where JSON.parse was sometimes called on partially streamed BigPipe placeholder replacements, causing fatal JS errors

Other Fixes

  • Fixed a bug where menu_link_content_entity_predelete deleted "collection", "add-form", etc. links
  • Fixed an issue where the installer did not fix the database connection after creating the database on MySQL
  • Fixed a bug where truncate_utf8() cut on the first newline character when $wordsafe == TRUE
  • Fixed an issue where the .ht.router.php did not support update.php
  • Fixed a bug where stubbing content entities with required fields with a default value was broken

New Features

Content Moderation Now Stable

Content Moderation module has graduated from experimental to stable status. This module provides flexible workflows for managing content states (like Draft, Published, and Archived) and allows different user roles to have different permissions in the workflow.

Settings Tray Now Stable

The Settings Tray module has also graduated to stable status. This module provides a sidebar for editing block configuration directly from the frontend of your site, improving the content editing experience.

Experimental Layout Builder

A new experimental Layout Builder module has been introduced, allowing site builders to create layouts for content types, customize layouts for individual content items, and create custom landing pages with a drag-and-drop interface.

Media Module Unhidden

The Media module is now available in the UI (previously hidden). This provides improved media management capabilities including reusable media entities, remote media (like YouTube videos), and a media library.

Experimental Umami Demo Profile

A new experimental demo profile called "Umami" has been added to showcase Drupal's capabilities. This food magazine themed demo includes sample content, a custom theme, and custom modules to demonstrate Drupal's features.

Improved Multilingual Support

Content translations can now be moderated independently, allowing different language versions to have different workflow states. This is a significant improvement for multilingual sites.

Incremental Migrations Through UI

Incremental migrations are now available through the UI, allowing site administrators to update content from previous Drupal versions without having to start the migration process from scratch each time.

New Timestamp Scalar Data Type

A new timestamp scalar data type has been added to the system, improving date and time handling.

Security Updates

  • SA-CORE-2018-001 security fix has been included in this release
  • Fixed potential security issues in file handling
  • Improved validation in various form elements
  • Enhanced security of private file handling for multilingual sites

Performance Improvements

Caching Improvements

  • Fixed an issue where user_hook_toolbar() made all pages uncacheable, improving cache effectiveness
  • Improved HTML caching for various components

JavaScript Performance

  • Fixed a browser parsing race condition with BigPipe that could cause JavaScript errors and performance issues
  • Updated JS build script packages for better performance

Database Optimizations

  • Improved handling of database connections during installation
  • Optimized entity loading and revision handling

Entity and Field Handling

  • More efficient handling of entity revisions and translations
  • Improved field synchronization logic to run only when necessary

Migration Performance

  • Added ability to perform incremental migrations, significantly improving performance for large migration tasks
  • Optimized migration processes by categorizing migrations according to their type

Impact Summary

Drupal 8.5.0 represents a significant step forward with two experimental modules (Content Moderation and Settings Tray) now stable and ready for production use. The addition of the experimental Layout Builder provides powerful new capabilities for site builders, while the unhiding of the Media module improves media management capabilities.

For multilingual sites, the ability to moderate content translations independently is a major improvement that offers more flexible content workflows. The addition of incremental migrations through the UI makes it easier to migrate content from older Drupal versions.

Developers should note that PHP 5 support is now deprecated, with PHP 7.2 recommended for optimal performance. The update to Symfony 3.4 components provides improved performance and security.

This release includes numerous bug fixes, particularly around entity revisions, translations, and field handling. Performance improvements in caching and JavaScript handling will benefit all sites.

The new experimental Umami demo profile provides a showcase of Drupal's capabilities, which is valuable for demonstrations and evaluations.

Overall, this is a feature-rich release that improves stability, adds new capabilities, and sets the stage for future development while maintaining backward compatibility for most use cases.

Statistics:

File Changed300
Line Additions2,848
Line Deletions3,958
Line Changes6,806
Total Commits250

User Affected:

  • Can now use Content Moderation and Settings Tray modules which are now stable
  • Can experiment with the new Layout Builder for creating layouts
  • Can use Media module which is now unhidden from the UI
  • Can try the new experimental Umami demo profile for showcasing Drupal's capabilities
  • Can perform incremental migrations through the UI

Contributors:

webchickeffulgentsiaxjmlarowlangobaalexpottjunowilderness