Drupal Release: 8.9.0-beta3
Pre Release
Tag Name: 8.9.0-beta3
Release Date: 5/17/2020
DrupalHighly 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()withis_null()replaced withassertNull()/assertNotNull()assertEquals()withfile_exists()replaced withassertFileExists()/assertFileNotExists()assertEquals()withis_dir()replaced withassertDirectoryExists()/assertDirectoryNotExists()assertEquals()withcount()replaced withassertCount()assertEquals()witharray_key_exists()replaced withassertArrayHasKey()/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:
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
