Drupal Release: 11.0.0-rc1
Pre Release
Tag Name: 11.0.0-rc1
Release Date: 7/11/2024
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 11.0.0-rc1 marks a significant milestone in the development of Drupal 11, bringing numerous improvements and refinements since the beta1 release. This release candidate introduces enhanced navigation capabilities, improved accessibility features, and significant performance optimizations. The codebase has been modernized with better PHP 8.4 compatibility, updated Symfony 7.1 support, and cleaner JavaScript implementations. Notable additions include configurable session name suffixes, improved layout builder functionality, and a refreshed Drupal logo reflecting the 2024 brand evolution. This RC represents the stabilization phase before the final Drupal 11.0.0 release.
Highlight of the Release
- Updated to Symfony 7.1 stable version for improved performance and features
- Enhanced navigation module with better UI, accessibility, and mobile experience
- Improved Layout Builder with static caching for better performance
- Updated Drupal logo reflecting the 2024 brand evolution
- Configurable session name suffixes for better multi-site management
- Updated CKEditor 5 to version 42.0.0 with improved functionality
- Better PHP 8.4 compatibility with fixed implicitly nullable type declarations
- Improved accessibility features including ability to mark media images as 'decorative'
Migration Guide
PHP Requirements
- Drupal 11 requires PHP 8.1 or higher, with PHP 8.4 compatibility improvements included in this release
- The zlib PHP extension is now explicitly required and checked during runtime requirements check
JavaScript Requirements
- Node.js 20 is now required for Drupal 11
- Updated JavaScript dependencies for Drupal 11.0-rc
Symfony Updates
- Updated to Symfony 7.1 stable version
- Projects using Symfony components should ensure compatibility with version 7.1
Deprecated Code Removal
- Removed remaining deprecated code from Drupal 11
- Removed ThemeInitialization::resolveStyleSheetPlaceholders
- Removed example cron scripts
- Removed deprecated moved_files entries in core
jQuery Updates
- Updated to jQuery UI 1.14.0 beta 2
- Refactored several jQuery-dependent components to use vanilla JavaScript
- Replaced dialogContentResize jQuery event with CustomEvent
Class and Method Changes
- Renamed UserNavigationBlock to NavigationUserBlock for class name consistency
- Access policies are now marked as final to encourage decorating
- FormStateInterface::setError*() PHPDoc has been corrected
- Fixed implicitly nullable type declarations for PHP 8.4 compatibility
Configuration Changes
- If using Navigation module, check custom implementations for compatibility with the updated code
- Review any custom Layout Builder implementations due to static caching changes
- Check for overridden configuration values which will now display status messages
Upgrade Recommendations
For Production Sites
It is recommended to wait for the final 11.0.0 release before upgrading production sites from Drupal 10.x. This release candidate is primarily intended for testing and preparation purposes.
For Development and Testing
Developers and site builders should test their custom modules, themes, and configurations with this release candidate to identify any compatibility issues before the final release. Pay special attention to:
- Custom modules that interact with the Navigation system
- Layout Builder customizations
- JavaScript implementations that might be affected by jQuery UI updates
- PHP code that might be affected by stricter type declarations
Preparation Steps
- Set up a test environment with this release candidate
- Test all critical site functionality
- Review custom code for compatibility with PHP 8.1+ and Symfony 7.1
- Update any dependencies that might not be compatible with Drupal 11
- Document any issues encountered and prepare fixes
Module Compatibility
Check the compatibility of contributed modules with Drupal 11. Many modules may need updates to work properly with this version.
Bug Fixes
Navigation and UI Fixes
- Fixed fatal error when accessing Navigation Blocks on a minimal profile installation
- Fixed navigation overlay z-index issues
- Fixed mobile version of Navigation menu not properly resetting Drupal.displace() on closing
- Fixed incorrect positioning of close button on mobile devices when navigation module is enabled
- Fixed dead click zone in Navigation LayoutBuilder UI
- Fixed distorted secondary tabs design on block view page
Layout and Display Fixes
- Fixed RecipeCommand mistakenly trying to apply a recipe even if given an invalid directory
- Fixed configuration synchronization page errors when core.extension.yml is missing
- Fixed confirmation form for disabling per-entity layout overrides showing incorrect success message
- Fixed Claro CSS for dropbutton items adding large gap of white space
- Fixed overflow visibility for wrapper content in navigation CSS
- Fixed Claro details component not having the right class
- Fixed spinner shifting label and format column when configuring a field on content type's "manage display" tab
CKEditor and Dialog Fixes
- Fixed CKEditor 5 Styles dropdown when in off-canvas sidebar
- Fixed CKEditor 5 renamed CSS variable causing dialogs to fail to appear above jQuery UI dialogs
- Fixed dialogContentResize jQuery event by replacing with CustomEvent
Accessibility Fixes
- Fixed Claro highlighted row not being communicated to keyboard users
- Fixed visually-hidden refresh button in Field UI failing WCAG Focus Visible
- Fixed tab highlights for current/hover/click being too high up with multi-line text
- Fixed autocomplete dropdown bleeding through sticky table header
Performance and Technical Fixes
- Fixed RouteProvider::getRouteCollectionForRequest() poisoning query string of next request
- Fixed container compile crash when a service decorates a destructable service
- Fixed FTPExtension class connection issues
- Fixed label token replacement for views entity reference arguments
- Fixed handling of update.php when entity type info needs to be updated
- Fixed BC break in login auth changes
- Fixed MenuListBuilder getEntityIds() no longer calling getEntityListQuery
New Features
Configurable Session Name Suffixes
Added the ability to configure session name suffixes, allowing for better management of multi-site installations and improved session handling.
Decorative Media Images
Added the ability to mark media images as "decorative" for better accessibility compliance, helping content editors create more accessible content.
Navigation Module Enhancements
- Added icons for top-level navigation items using the first two letters when no icon is provided
- Improved mobile navigation experience with better drawer functionality
- Added Nightwatch tests for the Navigation module
- Improved access logic for Navigation blocks page
Recipe System Improvements
- Added ability for recipe commands to write to the container, ensuring that cache does not need to be cleared after a recipe installs a module
- Added roles in their own recipes for better composability
Mime Type Handling
Registered Drupal's mime type guesser with the Symfony MimeTypes service, improving file handling capabilities.
Service Container Improvements
Added support for !service_closure custom tag in YamlFileLoader, enhancing service container flexibility.
Security Updates
No significant security fixes were explicitly mentioned in the release notes. However, as with any major update, this release includes general security improvements and dependency updates that help maintain the overall security posture of Drupal installations.
Performance Improvements
Layout Builder Performance
Added static caching to LayoutTempstoreRepository, significantly improving performance when working with layouts.
Asset Loading Optimization
- Improved asset loading performance across pages
- Made drupal.tableheader only use CSS for sticky table headers, removing JavaScript dependency
Query Performance
Added an index on locales_location on type and name, improving query performance for localization operations.
Test Performance
- Optimized test ordering when run-tests.sh is used with a mixture of test types
- Optimized test order when --directory is used
- Fixed CoreRecipesTest to be faster
Twig Template Optimization
Implemented twig_render_template micro optimization for better template rendering performance.
Service Container Optimization
Improved service container performance through better use of autoconfigure in core.
Impact Summary
Drupal 11.0.0-rc1 represents a significant step toward the final Drupal 11 release, focusing on stabilization and refinement of features introduced in earlier beta versions. This release candidate brings important improvements to the navigation system, accessibility enhancements, and performance optimizations that benefit all types of users.
For site administrators, the improved navigation blocks with better access logic and the ability to configure session name suffixes provide more flexibility and control. The addition of status messages for overridden configuration values improves transparency in site management.
Developers will appreciate the updated Symfony 7.1 support, improved PHP 8.4 compatibility, and the shift toward more modern JavaScript implementations with less jQuery dependency. The recipe system improvements, including the ability to write to the container without requiring cache clearing, streamline development workflows.
Content editors benefit from the updated CKEditor 5, improved accessibility features like the ability to mark media images as decorative, and a more intuitive navigation menu UI with better mobile experience.
End users will notice performance improvements, better accessibility with improved 'Skip to main content' functionality, and the refreshed Drupal logo reflecting the 2024 brand evolution.
This release candidate demonstrates Drupal's continued commitment to modern web standards, accessibility, and developer experience while maintaining backward compatibility where possible. The focus on performance optimizations and UI improvements ensures that Drupal 11 will provide a solid foundation for building modern, accessible, and performant websites.
Statistics:
User Affected:
- Benefit from improved navigation blocks with better access logic
- Can now configure session name suffixes for better multi-site management
- Will see clearer status messages when configuration values are overridden
- Experience improved layout builder functionality with better performance through static caching
