Home

>

Tools

>

Drupal

>

Releases

>

8.9.0-beta3

Drupal Release: 8.9.0-beta3

Pre Release

Tag Name: 8.9.0-beta3

Release Date: 5/17/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 8.9.0-beta3 brings significant improvements to testing infrastructure, code quality, and developer experience. This release includes numerous bug fixes, performance optimizations, and security enhancements. Key updates include jQuery upgrade to 3.5.1, Composer 2 compatibility, improved database driver support, and better accessibility for form elements. This beta release is an important step toward the stable 8.9.0 LTS release, with a focus on code quality and modernization.

Highlight of the Release

    • jQuery updated to version 3.5.1 for improved security and performance
    • Added compatibility with Composer 2 for better package management
    • Improved database driver support with fixed location for contrib database drivers
    • Enhanced accessibility for form elements including WYSIWYG inputs and password fields
    • Fixed off-canvas dialog localStorage issues that were causing errors
    • Improved testing infrastructure with updated PHPUnit assertions

Migration Guide

Composer 2 Compatibility

If you're upgrading to Composer 2, be aware that this release includes compatibility fixes. No specific migration steps are needed, but testing your site with Composer 2 is recommended before production deployment.

jQuery 3.5.1 Update

The update to jQuery 3.5.1 may affect custom JavaScript that relies on jQuery. Test your custom scripts thoroughly after updating. Common issues include:

  • Selector changes
  • Deprecated method removals
  • Event handling differences

PHPUnit Testing Updates

If you maintain custom tests, be aware that many PHPUnit assertions have been updated to use more specific methods:

  • assertEquals() with is_null() replaced with assertNull()/assertNotNull()
  • assertEquals() with file_exists() replaced with assertFileExists()/assertFileNotExists()
  • assertEquals() with is_dir() replaced with assertDirectoryExists()/assertDirectoryNotExists()
  • assertEquals() with count() replaced with assertCount()
  • assertEquals() with array_key_exists() replaced with assertArrayHasKey()/assertArrayNotHasKey()

Update your custom tests accordingly to maintain compatibility.

Upgrade Recommendations

For Drupal 8.8.x Users

It is recommended to update to this beta release if you're planning to test your site's compatibility with the upcoming Drupal 8.9.0 stable release. This beta provides an opportunity to identify and address any potential issues before the final release.

For Production Sites

While this is a beta release and not recommended for production sites, testing in a staging environment is highly encouraged to prepare for the upcoming stable release.

PHP Version Recommendation

This release increases the recommended PHP version to 7.3, although earlier supported versions will continue to work. Consider upgrading your PHP version to benefit from improved performance and security.

MySQL Version Requirements

The release includes improved checking for minimum MySQL version requirements during upgrades. Ensure your MySQL version meets the minimum requirements before upgrading.

Testing with Composer 2

If you plan to use Composer 2 in the future, testing your site with this beta release is recommended to identify any compatibility issues early.

Bug Fixes

Database and Query Issues

  • Fixed an issue where views query alter for fields stored in dedicated tables was not working properly
  • Fixed database query issues where CONCAT_WS required at least 3 arguments
  • Fixed duplicate timestamp placeholder in statistics query
  • Resolved issues with database URI parsing when query parts are missing

UI and Accessibility Fixes

  • Fixed focus styling of WYSIWYG field inputs for consistency with other inputs
  • Fixed password confirm field focus ring cropping issue
  • Corrected Seven theme's details/summary focus style that was broken in some browsers
  • Fixed Media Library where 'save and insert' was unnecessarily nested in code

System and Performance Issues

  • Fixed issue where hook_file_download was triggered when no file was requested
  • Resolved increased memory usage during installation
  • Fixed off-canvas dialogs filling up localStorage's quota and causing errors
  • Fixed update issues for sites with missing schema information
  • Corrected node grant access check missing cacheable dependency

Error Handling

  • Fixed error while trying to bulk delete already deleted nodes
  • Fixed WSOD when visiting config translation listing of fields
  • Resolved PHP Fatal error in upgrade path

New Features

Support for Contrib Database Driver Directories

Added support for contrib database driver directories in a fixed location within modules, making it easier to extend Drupal's database capabilities.

Layout Plugin Default Column Width Values

Layout plugins can now define default values for column widths, providing better control over layout presentation.

Better HAL Normalization for File Fields

Improved HAL normalization of file fields to provide file entity ID and REST URL information.

Mapping for Editor Module Filters

Added migration mapping for editor module's editor_align and editor_caption filters, improving migration paths.

Security Updates

jQuery Security Update

Updated jQuery to version 3.5.1 to address security vulnerabilities in previous versions.

Improved Error Logging

Enhanced ExceptionLoggingSubscriber to log 403 access denied reasons, providing better security monitoring capabilities.

Better Access Control

Fixed node grant access check missing cacheable dependency, ensuring proper access control for node content.

Performance Improvements

Reduced Memory Usage

Fixed increased memory usage during installation process, making site setup more efficient.

Optimized Scaffolding

Improved scaffolding process to avoid re-scaffolding unchanged files, reducing unnecessary operations and improving performance during updates and installations.

Better Caching

Fixed node grant access check missing cacheable dependency, improving caching effectiveness for node content.

LocalStorage Optimization

Fixed off-canvas dialogs filling up localStorage's quota, preventing errors and improving overall browser performance.

Impact Summary

Drupal 8.9.0-beta3 represents a significant step toward the stable 8.9.0 LTS release with a strong focus on code quality, testing infrastructure, and developer experience. The update to jQuery 3.5.1 addresses security concerns, while Composer 2 compatibility improves package management workflows. Database improvements include better driver support and query fixes.

For site builders and administrators, this release fixes several critical issues including off-canvas localStorage problems, update path issues for sites with missing schema information, and improved MySQL version requirement checking. Content editors will benefit from enhanced WYSIWYG field styling, better Media Library functionality, and improved accessibility.

The extensive refactoring of testing code and standardization of PHPUnit assertions demonstrates Drupal's commitment to code quality and maintainability. While these changes may not be immediately visible to end users, they contribute to a more stable and reliable platform.

Overall, this beta release balances bug fixes with strategic improvements to prepare for the stable 8.9.0 LTS release, which will be supported until November 2021.

Statistics:

File Changed300
Line Additions3,220
Line Deletions1,779
Line Changes4,999
Total Commits137

User Affected:

  • Improved Composer 2 compatibility makes package management more efficient
  • Better database driver support with fixed location for contrib database drivers
  • Enhanced testing infrastructure with updated PHPUnit assertions
  • Improved code quality with standardized class file naming and better documentation

Contributors:

xjmalexpotteffulgentsialauriii