11.2.0-rc1
Pre Release
Tag Name: 11.2.0-rc1
Release Date: 6/11/2025

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 11.2.0-rc1: Performance Enhancements, SDC Improvements, and Modern Image Format Support
This release candidate brings significant improvements to Drupal 11.2, focusing on performance optimizations, Single Directory Components (SDC) enhancements, and modern image format support. Key highlights include AVIF image format support with WebP fallback, improved caching mechanisms to prevent tag bloat, better SDC template reloading, and HTMX response handling for assets. The release also introduces important deprecations and API improvements that prepare the way for future Drupal versions while maintaining compatibility with modern dependencies like Symfony 7.3.
Highlight of the Release
- Added AVIF image format support with WebP fallback for all core image styles
- Improved Single Directory Components (SDC) with better template reloading and enum property translation
- Fixed cache tag bloat issue that caused performance degradation over time
- Added HTMX response handling for CSS/JS assets to improve dynamic page updates
- Updated to Symfony 7.3.0 and CKEditor 5 to version 45.2.0
- Improved database transaction handling with ability to return to prior nesting levels
- Added Package Manager capability to operate directly on live code bases
Migration Guide
Deprecated APIs and Features
-
Custom Keys in $_SESSION
- What changed: Custom keys in $_SESSION are now deprecated.
- Action required: Update your code to use Drupal's session handling APIs instead of directly accessing $_SESSION with custom keys.
-
Hook Attribute Extensions
- What changed: Support for extending #[Hook] has been removed, along with classes extending it (#[FormAlter] and #[Preprocess]).
- Action required: Refactor any code that extends these attributes to use the base attributes directly.
-
SyndicateBlock
- What changed: The SyndicateBlock has been deprecated.
- Action required: If you're using SyndicateBlock, consider using alternative methods for content syndication.
-
TestDiscovery Test File Scanning
- What changed: TestDiscovery test file scanning is deprecated in favor of PHPUnit API.
- Action required: Update your test discovery code to use PHPUnit's native test discovery mechanisms.
-
Renderer::addCacheableDependency
- What changed: Using Renderer::addCacheableDependency with a non-CacheableDependencyInterface dependency now triggers a deprecation notice.
- Action required: Ensure all dependencies passed to this method implement CacheableDependencyInterface.
-
drupal_requirements_severity() Constants
- What changed: Constants from drupal_requirements_severity() are deprecated in favor of RequirementSeverity enum.
- Action required: Replace usage of these constants with the new enum values.
Package Manager and Compatibility
-
Package Manager Direct Operations
- What changed: Package Manager can now operate directly on the live code base.
- Action required: Review your update workflows if you're using Package Manager.
-
Project Browser and Automatic Updates Compatibility
- What changed: There's now a conflict with Project Browser <2.1 and Automatic Updates <4.
- Action required: Update these modules to compatible versions if you're using them.
-
JSON Schema Version
- What changed: Now allowing 6.x version of justinrainbow/json-schema.
- Action required: No action required, but you can update to newer versions if needed.
Theme and Component Changes
-
SDC Templates Reloading
- What changed: Fixed SDC templates not auto-reloading after changes.
- Action required: No action required, but be aware that template changes should now be detected automatically.
-
Navigation Module
- What changed: Navigation top bar now utilizes Drupal.displace().
- Action required: If you've customized the navigation bar positioning, review your code for compatibility.
-
Claro Stylesheets
- What changed: Removed @nest from Claro stylesheets.
- Action required: If you've extended Claro stylesheets, review your CSS for compatibility.
Upgrade Recommendations
Who Should Upgrade
-
All Drupal 11.x Users: This release candidate contains important bug fixes and performance improvements that benefit all Drupal 11 installations. If you're already on Drupal 11, upgrading to this RC is recommended for testing purposes.
-
Sites with Performance Issues: If you're experiencing cache tag bloat or performance degradation over time, this update addresses critical performance issues and is highly recommended.
-
Sites Using Modern Image Formats: The addition of AVIF support with WebP fallback makes this update particularly valuable for sites that prioritize image quality and performance.
-
Developers Working with SDC: The improvements to Single Directory Components make this update important for developers utilizing this feature.
Upgrade Path
-
Test on Non-Production First: As this is a release candidate, thoroughly test on a non-production environment before applying to production sites.
-
Review Deprecations: Check your codebase for usage of deprecated features mentioned in the migration guide, particularly custom $_SESSION keys and extensions of #[Hook] attributes.
-
Update Contributed Modules: Ensure compatibility with any contributed modules, especially noting the conflicts with Project Browser <2.1 and Automatic Updates <4.
-
Database Backup: Always create a complete database backup before upgrading.
-
Update Process:
- Update your composer.json to require
drupal/core:11.2.0-rc1
- Run
composer update drupal/core --with-all-dependencies
- Run database updates via
drush updatedb
or through the UI - Clear caches via
drush cache:rebuild
or through the UI
- Update your composer.json to require
Timing Considerations
As this is a release candidate, it's ideal for:
- Testing environments
- Development sites
- Sites that need specific fixes included in this release
For production sites, you may want to wait for the final 11.2.0 release unless you specifically need fixes included in this RC. The final release is expected to be very similar to this RC barring any critical issues discovered.
Bug Fixes
Caching and Performance
- Cache Tag Bloat: Fixed a critical issue where cache tags would grow endlessly, causing performance degradation over time.
- Node Grants Caching: Resolved cache redirect errors when using 'view own unpublished content' permission alongside node grants.
- Block Cache Tags: Fixed an issue where cache tags added by
hook_block_view_BASE_BLOCK_ID_alter
were ignored on blocks implementing MainContentBlockPluginInterface or TitleBlockPluginInterface.
Component and Template Issues
- SDC Template Reloading: Fixed Single Directory Components templates not auto-reloading after changes.
- SDC Component Availability: Fixed new SDC components not being available when enabling themes through the UI.
- Views Summary Links: Fixed
template_preprocess_views_summary_unformatted()
not setting active link when using AJAX.
Module and Integration Fixes
- Migration Highwater Mark: Fixed migration issue by resetting highwater mark before rolling back.
- Views Third-party Settings: Fixed an issue where uninstalling a module would delete all views that have third-party settings by that module.
- Layout Builder Dependency: Resolved hidden dependency on block_content in layout_builder.
- Workspaces Issues: Fixed WorkspacesHtmlEntityFormController building entity forms twice and resolved InvalidComponentException when workspaces UI is installed.
JavaScript and UI Fixes
- Node Preview Modal: Fixed node preview modal to use Drupal API properly.
- Toolbar Test Failures: Fixed random test failures in Toolbar Test (toolbarTest.js).
- Contextual Model View: Fixed random failure with "Drupal.contextual.ContextualModelView is not a constructor".
- Timezone JS: Fixed timezone.js calling the system.timezone route with an unused date parameter.
- Form Data Handling: Fixed invalid exposed form data not being excluded properly.
New Features
Image Handling Improvements
- AVIF with WebP Fallback: Added support for AVIF image format with WebP fallback for all core image styles, providing better compression and quality for modern browsers.
- Automatic Image Format Conversion: Core now automatically handles conversion between modern image formats.
Component and UI Enhancements
- SDC Enum Translation: Added support for translatable labels in Single Directory Components (SDC) enum properties using
meta:enum
. - Navigation Module Improvements: The Navigation top bar now properly utilizes Drupal.displace() for better positioning.
- Block Redirection: Added automatic redirection when there's only one block type available during block creation.
API and Development Improvements
- HTMX Response Handling: Added support for processing attachments (CSS/JS) for HTMX responses and adding Drupal asset libraries.
- Package Manager Direct Operations: Package Manager can now operate directly on the live code base without requiring rsync.
- Database Transaction Improvements: Added ability to explicitly return to prior nesting levels in database transactions.
- RequirementSeverity Enum: Created enums for RequirementSeverity to replace the deprecated constants.
- Security Documentation: Added SECURITY.md explaining how to properly report security vulnerabilities.
Dependency Updates
- Updated CKEditor 5: Updated to version 45.2.0.
- Symfony 7.3 Support: Updated to Symfony 7.3.0 with schema updates for mailer security improvements.
- Composer Dependency Updates: Updated various development dependencies for better compatibility.
Security Updates
-
Symfony Mailer Security: Updated config schema for Symfony 7.3 mailer security improvements, enhancing the security of mail delivery.
-
Security Documentation: Added a SECURITY.md file explaining how to properly report security vulnerabilities, improving the security reporting process.
-
Session Handling: Deprecated custom keys in $_SESSION to improve session security and prevent potential security issues related to session handling.
-
User Access Checks: Added user access checks to 'more' link, ensuring proper permission validation before displaying content.
-
Dependency Updates: Updated to Symfony 7.3.0 and other dependencies with security improvements.
No critical security vulnerabilities were addressed in this release candidate, but the improvements to session handling and access checks contribute to the overall security posture of Drupal installations.
Performance Improvements
Caching Optimizations
- Cache Tag Management: Fixed a critical issue where cache tags would grow endlessly, significantly improving performance over time for sites that had been running for extended periods.
- Node Grants Caching: Improved caching behavior when using 'view own unpublished content' permission alongside node grants, preventing unnecessary cache redirects.
Database and Transaction Handling
- Transaction Nesting: Added support for returning explicitly to prior nesting levels in transactions, allowing for more efficient transaction management.
- PO Database Writer: Implemented transaction use in PoDatabaseWriter to improve performance during language imports and updates.
JavaScript and Asset Optimizations
- String Comparison: Replaced RegExp.test() with simpler String.prototype methods for better performance in string comparisons.
- Optional Chaining: Improved JavaScript code by replacing multi-line existence checks for JavaScript objects and properties with optional chaining.
Module and Service Improvements
- Cron Service: Removed lazy declaration and proxy class for cron service and used service closure instead, reducing overhead.
- ModuleHandler Optimizations: Improved ModuleHandler::resetImplementations to reset all properties with hook implementations, providing more consistent behavior.
Image Processing
- Modern Image Formats: Added support for AVIF image format with WebP fallback, which provides better compression and quality while maintaining compatibility.
Impact Summary
Drupal 11.2.0-rc1 represents a significant step forward in Drupal's evolution, focusing on performance, developer experience, and modern web capabilities. This release candidate addresses several long-standing issues while introducing new features that align with current web development trends.
The most impactful change is the fix for cache tag bloat, which resolves a critical performance issue where cache tags would grow endlessly over time. This improvement alone can significantly enhance the performance of long-running Drupal sites that previously suffered from degraded performance due to this issue.
Modern image handling gets a major boost with AVIF format support and WebP fallback for all core image styles. This enables better image compression and quality while maintaining broad browser compatibility, improving both site performance and visual quality.
For developers, the improvements to Single Directory Components (SDC) are substantial, with better template reloading, enum property translation support, and fixes for component availability when enabling themes through the UI. These changes make SDC a more robust and user-friendly solution for component-based development in Drupal.
The addition of HTMX response handling for CSS/JS assets is particularly forward-looking, improving Drupal's capabilities for dynamic page updates without full page reloads. This aligns with modern web development practices and enhances Drupal's competitiveness in the CMS space.
Several important deprecations and API improvements prepare the way for future Drupal versions while maintaining compatibility with modern dependencies like Symfony 7.3. These changes, while requiring some code updates, position Drupal to remain a modern, secure, and performant CMS.
Overall, this release candidate demonstrates Drupal's commitment to performance, developer experience, and modern web standards, making it a worthwhile update for most Drupal 11 installations once it reaches stable release.
Statistics:
User Affected:
- Benefit from AVIF image format support with WebP fallback for all core image styles
- Experience improved block handling with automatic redirection when only one block type exists
- Gain better caching behavior with fixes for cache tag bloat and node grant permission issues
- Need to be aware of the deprecation of the SyndicateBlock