Drupal Release: 9.5.9
Tag Name: 9.5.9
Release Date: 5/3/2023
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.5.9 is a maintenance release that addresses numerous bug fixes, accessibility improvements, and performance optimizations. This update focuses on resolving issues with media handling, configuration management, language switching, and various UI components. Key improvements include fixing media thumbnail loading attributes, addressing PHP 8.1 deprecation notices, enhancing accessibility of language switchers and UI elements, and resolving several test failures. This release is recommended for all Drupal 9.5.x sites to ensure stability and security.
Highlight of the Release
- Fixed media thumbnail field formatter loading attributes
- Resolved configuration import issues during theme uninstallation
- Improved accessibility of language switcher links and UI elements
- Addressed PHP 8.1 deprecation notices
- Enhanced error handling in language negotiation
- Fixed display of required summary elements in text fields
- Improved error message display for AJAX-enabled views exposed filters
Migration Guide
No specific migration steps are required when updating from Drupal 9.5.8 to 9.5.9. This is a maintenance release that focuses on bug fixes and improvements without introducing breaking changes.
To update to Drupal 9.5.9:
- Back up your database and code
- Update your codebase using Composer:
composer update drupal/core-recommended --with-all-dependencies - Run database updates:
drush updatedb - Clear caches:
drush cache:rebuild
If you're using a custom theme that modifies dropbuttons or select form fields, you may want to review the fixes related to these components to ensure compatibility with your theme.
Upgrade Recommendations
This update is recommended for all Drupal 9.5.x sites. Drupal 9.5.9 contains numerous bug fixes and improvements that enhance stability, accessibility, and performance.
Priority: Medium
The update addresses several issues that could impact site functionality, particularly:
- Media handling improvements
- PHP 8.1 compatibility fixes
- Accessibility enhancements
- UI component fixes
Timing:
Schedule this update during your next regular maintenance window. While there are no critical security fixes in this release, the cumulative improvements make it worthwhile to apply in a timely manner.
Special Considerations:
- If you're using custom media handling or have implemented custom field formatters, pay special attention to the media-related fixes.
- Sites running on PHP 8.1 will benefit from the deprecation notice fixes.
- If you've experienced issues with language switching or configuration imports, this update should resolve those problems.
Bug Fixes
Configuration Management
- Fixed incorrect totals count when importing configuration that contains a theme uninstall.
- Resolved issues with translations being overwritten when installing a module.
PHP and Compatibility Fixes
- Fixed DateTime constructor deprecation notices in PHP 8.1 when passing null to string parameters.
- Addressed get_class() and get_called_class() deprecations in PHP 8.1.
- Improved database query optimization in DatabaseBackend::garbageCollection().
- Fixed issues with unit tests on Windows environments.
- Resolved issues with BatchNegotiator tests for invalid routes.
UI and Accessibility Fixes
- Fixed inaccessible language switcher links that were being removed before alternatives could be provided.
- Resolved issues with required summary elements being hidden when other text-with-summary fields do not require summary.
- Fixed contextual links not being sorted by weight as documented.
- Addressed improper use of aria-label in "System Powered By" block.
- Fixed Toggle Nav in Olivero theme that sometimes failed to open and produced console errors.
Media and Field Handling
- Fixed issues with link formatter when a link field has malformed data.
- Resolved white screen errors in ListItemBase::generateSampleValue() when options list is empty.
- Fixed issues with 'Is not equal to' operator being ignored on exposed, grouped filters in Views.
- Addressed XSS filtering issues in datetime attributes with Xss::filterAdmin().
JavaScript and AJAX
- Fixed htaccess rewrite rules for gzipped CSS and JavaScript aggregates.
- Resolved CKEditor 5 content squashing in off-canvas sidebar.
- Fixed issues with AJAX validation messages not showing for views exposed filters with AJAX enabled.
New Features
Enhanced Media Handling
- Fixed issues with the
loading="eager"attribute in media thumbnail field formatter, ensuring proper image loading behavior. - Resolved problems with duplicated summary items when linking to content with the MediaThumbnailFormatter.
- Added proper MIME type handling for .m4a files, now using audio/mp4 instead of audio/mpeg.
Improved UI Components
- Fixed display issues with select form fields at narrow screen widths in the Claro theme.
- Enhanced preview usability for better content editing experience.
- Resolved issues with dropbuttons displaying white lines when font size is changed or at various zoom settings.
- Fixed accessibility issues with secondary tabs when there are many tabs on smaller screen sizes.
Better Error Handling
- Improved error message display for AJAX-enabled views exposed filters.
- Enhanced language negotiation to properly handle PluginNotFoundException to prevent site breakage.
- Fixed handling of invalid input in time zone abbreviation to TZID route.
Security Updates
This release does not contain any specific security fixes. However, keeping your Drupal installation up to date with the latest minor version is always recommended as part of good security practices, as it ensures you have the most stable and secure version of the platform.
Performance Improvements
Database Optimization
- Improved query efficiency in DatabaseBackend::garbageCollection(), resulting in better performance during cache garbage collection.
Asset Delivery
- Fixed htaccess rewrite rules for gzipped CSS and JavaScript aggregates, ensuring proper delivery of compressed assets.
Caching Improvements
- Fixed an issue where ToolbarController::preRenderGetRenderedSubtrees() was deleting parent's cacheability metadata, improving cache effectiveness.
Test Performance
- Skipped numerous functional JS tests that repeatedly break HEAD, reducing CI pipeline failures and improving development workflow.
- Updated webpack configuration for better build performance.
Impact Summary
Drupal 9.5.9 delivers a comprehensive set of bug fixes and improvements that enhance the stability, accessibility, and developer experience of Drupal 9.5.x sites.
The most significant impacts include:
-
Improved Media Handling: Fixed issues with media thumbnail loading attributes and formatter behavior, ensuring media displays correctly across the site.
-
Enhanced Accessibility: Multiple fixes for language switchers, secondary tabs, and UI components make Drupal more accessible to all users.
-
PHP 8.1 Compatibility: Addressed several deprecation notices in PHP 8.1, making sites more future-proof and reducing error logs.
-
Better Error Handling: Improved error message display for AJAX-enabled filters and better handling of exceptions in language negotiation.
-
Documentation Improvements: Enhanced PHPDoc comments and documentation for various APIs, making development more straightforward.
-
UI Enhancements: Fixed display issues with select form fields, dropbuttons, and other UI components, improving the user experience.
This release represents Drupal's ongoing commitment to quality, stability, and accessibility. While it doesn't introduce new features, the numerous bug fixes and improvements make it a worthwhile update for all Drupal 9.5.x sites.
Statistics:
User Affected:
- Improved configuration import process with correct totals count during theme uninstallation
- Fixed issues with media thumbnail field formatter loading attributes
- Enhanced accessibility of language switcher links
- Better error handling for invalid input in timezone handling
