Home

>

Tools

>

Drupal

>

Releases

>

9.1.0-alpha1

Drupal Release: 9.1.0-alpha1

Pre Release

Tag Name: 9.1.0-alpha1

Release Date: 10/23/2020

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 9.1.0-alpha1 introduces significant enhancements including the new Olivero frontend theme (in beta), native image lazy-loading support, improved accessibility features, and the Claro admin theme redesign. This release also includes important security fixes, performance improvements, and preparations for PHP 8 and Symfony 5 compatibility. The update represents a substantial step forward in Drupal's evolution with over 5,100 changes across 300 files.

Highlight of the Release

    • Introduction of Olivero frontend theme (beta) with modern design and accessibility improvements
    • Native image lazy-loading support for better performance
    • Redesigned modules page and maintenance page with Claro admin theme
    • Front matter support in Twig templates for metadata
    • Multiple security fixes addressing critical vulnerabilities
    • Preparation for PHP 8 and Symfony 5 compatibility
    • Improved performance for multi-value fields in views

Migration Guide

PHP 8 Compatibility Changes

If you're developing custom modules or themes, be aware that Drupal 9.1.0-alpha1 includes several changes to prepare for PHP 8 compatibility:

  • Support for nullable typehints and return types in ProxyBuilder
  • Fixed error handler signature changes
  • Addressed issues with call_user_func_array() and named arguments
  • Fixed division by zero handling

Symfony 5 Preparation

Several changes have been made to prepare for Symfony 5 compatibility:

  • Updated usage of EventDispatcherInterface::dispatch() for return type hint
  • Replaced deprecated MimeTypeGuesser with MimeTypes
  • Updated Process class usage to use arrays instead of strings
  • Replaced deprecated Symfony\Component\Lock\Factory with LockFactory

Deprecated APIs

Several APIs have been deprecated in this release:

- AssertLegacyTrait::assert() and related methods
- AssertLegacyTrait::assertArrayEquals()
- UiHelperTrait::drupalPostForm()
- Allowing NULL as $edit parameter to drupalPostForm()
- Config schemas can now be deprecated with a new mechanism

Front Matter Changes

If you were using the FrontMatter class from the help_topics module, you should now use Drupal\Component\Utility\FrontMatter instead, as this functionality has been moved to a core component.

JavaScript Changes

  • Added NodeList.forEach polyfill for IE11 support
  • Updated CKEditor to version 4.15.0
  • Added postcss-preset-env for better CSS processing

Upgrade Recommendations

As this is an alpha release (9.1.0-alpha1), it is not recommended for production sites. This release is intended for testing and development purposes only.

For development and testing environments:

  • Upgrade to this version to test your custom modules and themes for compatibility with upcoming changes
  • Pay special attention to PHP 8 compatibility if you plan to use PHP 8 in the future
  • Test your site with the new Olivero theme to prepare for its eventual promotion to default theme
  • Review your custom JavaScript for compatibility with the new theme functions and polyfills

For production sites:

  • Continue using Drupal 9.0.x until Drupal 9.1.0 reaches a stable release
  • Use this alpha release in a separate testing environment to identify potential issues early

When upgrading from Drupal 9.0.x to this alpha release, follow the standard minor version upgrade process:

  1. Back up your database and files
  2. Put your site in maintenance mode
  3. Update your composer.json to require drupal/core:9.1.0-alpha1
  4. Run composer update drupal/core --with-dependencies
  5. Run database updates via Drush or the web interface
  6. Clear caches
  7. Test thoroughly before taking the site out of maintenance mode

Bug Fixes

Anonymous User Logout Issue Fixed

A longstanding issue where anonymous users would receive an "access denied" message when attempting to logout has been resolved, improving the user experience for sites with anonymous authentication.

Layout Builder Fixes

Several important Layout Builder bugs were fixed:

  • Layout builder now properly shows new "extra fields"
  • Fixed an issue where LayoutBuilderHtmlEntityFormController was breaking decoration

Book Module Improvements

  • Fixed issues with unpublished books appearing in book lists
  • Users with access to unpublished nodes can now create unpublished books
  • Fixed performance issues when rendering multi-value fields in views

Media Library Enhancements

  • Fixed issues with overwriting upload forms for media library
  • Improved oEmbed validator to use the URL resolver for resource URLs

Form and UI Fixes

  • Fixed autocomplete "loading" message not properly hiding in inline forms
  • Addressed issues with draggable table cells and line breaks
  • Fixed issues with hidden buttons in off-canvas dialogs
  • Corrected reference to RFC5424 severity levels

New Features

New Olivero Frontend Theme (Beta)

The most visible addition to Drupal 9.1.0-alpha1 is the new Olivero frontend theme, included as a beta. This modern, accessible theme will eventually replace Bartik as the default theme in future releases. Olivero features improved mobile responsiveness, better accessibility, and a fresh design that aligns with Drupal's modern capabilities.

Native Image Lazy-Loading

Images now support the HTML loading="lazy" attribute by default, enabling native browser lazy-loading without requiring JavaScript. This improves page performance by deferring off-screen images until they're needed.

Front Matter Support in Twig Templates

Twig templates can now use front matter for metadata support, allowing developers to include structured metadata at the beginning of template files. This feature was moved from the Help Topics module to a core component for broader use.

New JavaScript Theme Functions

A new Drupal JavaScript theme function has been added for the password confirm widget, allowing themes to customize the markup of password confirmation elements.

Enhanced oEmbed Support

The oEmbed resource object is now exposed to iframe templates, giving developers more control over embedded media presentation and customization.

Queue Processing Improvements

A new mechanism allows items to be silently kept locked when processing a queue via cron, improving reliability for background processing tasks.

Security Updates

Multiple Security Advisories Addressed

Drupal 9.1.0-alpha1 includes fixes for several security advisories:

  • SA-CORE-2020-007: Fixed a security vulnerability related to file handling
  • SA-CORE-2020-008: Addressed an issue with entity access
  • SA-CORE-2020-009: Fixed a security vulnerability in content processing
  • SA-CORE-2020-010: Addressed a security issue in the CKEditor integration
  • SA-CORE-2020-011: Fixed multiple security vulnerabilities

Symfony Security Update

Updated Symfony to version 4.4.13 to address CVE-2020-15094, ensuring that Drupal core remains protected against known vulnerabilities in its dependencies.

Exposed Term Filters Security

Improved security by ensuring that exposed term filters do not show term options that the user does not have access to, preventing information disclosure.

Term Access Improvements

Fixed an issue where the term_access tag was not being added when SQL rewriting was turned off, which could potentially lead to access bypass issues.

Performance Improvements

Native Image Lazy-Loading

The addition of native image lazy-loading support significantly improves page load performance by deferring the loading of off-screen images until they're needed. This reduces initial page load time and bandwidth usage without requiring JavaScript.

Multi-value Fields in Views

Fixed a performance issue when rendering multi-value fields in views, which previously could cause significant slowdowns on pages with complex field displays.

Queue Processing Optimization

Added the ability to silently keep an item locked when processing a queue via cron, improving the reliability and efficiency of background processing tasks.

Exposed Term Filters Optimization

Improved the performance of exposed term filters in views by not showing term options that the user does not have access to, reducing unnecessary processing and improving security.

Exception Logging Improvements

The ExceptionLoggingSubscriber no longer logs backtrace strings on access denied exceptions, reducing log bloat and improving performance during normal site operation with expected access restrictions.

Impact Summary

Drupal 9.1.0-alpha1 represents a significant step forward with the introduction of the new Olivero frontend theme (in beta), which will eventually replace Bartik as the default theme. This release also adds native image lazy-loading support, improving performance without requiring JavaScript.

For developers, the release includes important preparations for PHP 8 and Symfony 5 compatibility, ensuring Drupal remains current with modern PHP practices. The addition of front matter support in Twig templates provides new capabilities for template metadata.

Site builders will benefit from UI improvements in the Claro admin theme, particularly on the modules page and maintenance page. Layout Builder functionality has been enhanced with fixes for extra fields and component decoration.

Security has been strengthened with multiple fixes addressing critical vulnerabilities, and performance improvements include optimizations for multi-value fields in views and queue processing.

Accessibility continues to be a focus with improvements to menu items, form elements, and contrast ratios. The new Olivero theme particularly emphasizes accessibility as a core design principle.

Overall, this alpha release sets the stage for Drupal 9.1's evolution with modern theming, improved performance, and better developer tools while maintaining Drupal's commitment to security and accessibility.

Statistics:

File Changed300
Line Additions3,119
Line Deletions2,049
Line Changes5,168
Total Commits250

User Affected:

  • Access to the new Olivero frontend theme (beta) for modern site designs
  • Improved modules page UI with the Claro admin theme
  • Better layout builder functionality with fixes for extra fields and component decoration
  • Enhanced media library with improved oEmbed support and iframe templates

Contributors:

lauriiilarowlanedysmpalexpottxjmgobaeffulgentsia