Drupal Release: 9.0.3
Tag Name: 9.0.3
Release Date: 8/5/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 9.0.3 is a maintenance release that addresses numerous bug fixes, performance improvements, and code quality enhancements. This update focuses on resolving issues with database queries, entity handling, media library functionality, and accessibility improvements. It includes fixes for memory leaks, improved error handling, and better compatibility with Symfony 5.1. While there are no major new features, this release significantly improves stability and reliability for site builders, developers, and content editors working with Drupal 9.
Highlight of the Release
- Fixed memory leak in typed data prototypes for field items
- Resolved issue preventing comment creation when comment is a base field
- Fixed database query handling with proper quoting of aliases for reserved MySQL words
- Improved media library with better access checks and UI enhancements
- Enhanced content moderation views functionality
- Updated CKEditor to version 4.14.1
- Fixed issues with workspace switching UI
- Improved accessibility by removing landmark region role from Powered-by-Drupal block
Migration Guide
No specific migration steps are required for this maintenance release. Drupal 9.0.3 is a bug fix release that should be compatible with existing Drupal 9.0.x installations.
To update to Drupal 9.0.3:
-
Back up your database and site files
-
Update using Composer:
composer update drupal/core-recommended --with-dependenciesOr if you're using the core-dev package:
composer update drupal/core-recommended drupal/core-dev --with-dependencies -
Run the database updates:
drush updatedb -
Clear caches:
drush cache:rebuild
No API changes or deprecations were introduced in this release that would require code modifications.
Upgrade Recommendations
This is a maintenance release containing bug fixes and minor improvements with no known breaking changes. It is recommended that all sites running Drupal 9.0.x upgrade to this version to benefit from the numerous bug fixes and performance improvements.
Priority: Medium
- Sites experiencing any of the specific issues fixed in this release should prioritize upgrading.
- Sites with heavy use of media library, content moderation, or complex views should especially consider upgrading to benefit from the improvements.
Timing:
- As this is a maintenance release with no breaking changes, sites can upgrade at their convenience during a regular maintenance window.
- Testing in a staging environment before deploying to production is always recommended.
Preparation:
- Review the full list of changes to identify if any fixes address issues you're currently experiencing.
- Ensure you have a complete backup of your site before upgrading.
Bug Fixes
Database and Query Handling
- Fixed issue where select queries didn't properly quote aliases which are reserved words in MySQL
- Resolved issue with sort order not being specified in certain views
- Fixed sorting of nested properties in config entity queries
- Made backend overridable service discovery also check the database type for overridden services
- Fixed issue where Connection::__destruct() couldn't delete SQLite files
Entity and Field Handling
- Fixed memory leak in typed data prototypes for field items
- Resolved issue preventing comment creation when comment is a base field
- Fixed issue where MapItem base fields couldn't be uninstalled
- Corrected base field purging for translatable fields
- Fixed issue where hook_node_access() wasn't firing for the 'create' operation
- Resolved issue with HTML head having alternate hreflang links to unpublished translations
- Fixed issue with diacritics not being removed from certain characters
Media Library and UI
- Fixed issue where media library wasn't performing access checks against the revision of the entity being edited
- Removed weight field from Media Library widget when only single media can be attached
- Added focus behavior for media widget with max elements
- Fixed issue where name field was always shown on media library form display when adding new remote video media type
- Fixed unclickable area when switching to a workspace
Views
- Fixed issue where views lost records after adding comment count field
- Improved content moderation views to join on entity ID
- Fixed moderation state views filter to work beyond base table entity
- Added ability to show 'revision author' on Media and Block content views
Other Fixes
- Fixed issue with broken context-aware block plugins throwing unexpected exceptions
- Resolved issue where not selecting an entity type on Config import single led to a fatal error
- Fixed issue with unrecognized entity operation passed to Menu Link Content
- Ensured LocaleTranslation is serializable
- Fixed issue with Url class to ensure fragment is not an empty string
- Corrected return type of ContentEntityFormInterface::validateForm()
- Fixed various sorting and comparison issues in tests
New Features
No significant new features were added in this maintenance release. Drupal 9.0.3 focuses primarily on bug fixes, performance improvements, and code quality enhancements to improve stability and reliability of the platform.
Security Updates
This release does not contain any major security fixes. However, it does include improvements to entity access checks and validation which contribute to the overall security posture of Drupal sites:
- Fixed media library to perform proper access checks against the revision of the entity being edited
- Improved entity access handling for hook_node_access() to properly fire for the 'create' operation
- Enhanced validation in various components including URL handling and fragment validation
Performance Improvements
Memory Usage Optimization
- Fixed memory leak in typed data prototypes for field items which were not being re-used as intended
- Improved handling of entity operations to prevent unnecessary resource usage
Database Query Optimization
- Enhanced database query handling with proper quoting of aliases for reserved MySQL words
- Improved content moderation views to join on entity ID for better performance
- Fixed sorting of nested properties in config entity queries for more efficient data retrieval
Code Efficiency
- Removed numerous unused variables throughout the codebase
- Improved code structure to avoid initializing local variables to empty arrays before adding items
- Enhanced error handling to prevent unnecessary processing
Impact Summary
Drupal 9.0.3 is a maintenance release that delivers significant stability improvements across multiple areas of the platform. The most impactful changes include fixing a memory leak in typed data handling, resolving issues with comment creation, improving media library functionality, and enhancing database query handling.
For developers, this release addresses several pain points including proper handling of database queries with reserved MySQL words, better error handling for context-aware block plugins, and improved compatibility with Symfony 5.1. The fix for the memory leak in typed data prototypes will be particularly beneficial for sites with complex content models.
Site builders will appreciate fixes to Views functionality, especially when working with comment count fields and content moderation. The improvements to the media library widget and workspace switching UI also enhance the site building experience.
Content editors benefit from fixes to comment creation, better media library access checks, and improved focus behavior for media widgets. The ability to show revision authors in Media and Block content views provides better content management capabilities.
While there are no major new features, the cumulative effect of these bug fixes and improvements results in a more stable and reliable Drupal platform. Sites experiencing any of the specific issues addressed should prioritize upgrading to this release.
Statistics:
User Affected:
- Fixed memory leak in typed data prototypes for field items
- Improved database query handling with proper quoting of aliases for reserved MySQL words
- Better error handling for context-aware block plugins
- Fixed issues with entity operations in Menu Link Content
- Improved compatibility with Symfony 5.1
