Drupal Release: 10.1.0-beta1
Pre Release
Tag Name: 10.1.0-beta1
Release Date: 5/15/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 10.1.0-beta1 marks a significant step toward the upcoming Drupal 10.1.0 release, bringing numerous improvements across documentation, performance, accessibility, and developer experience. This beta includes CKEditor 5 autoformat support, improved toolbar performance to reduce page reflow, enhanced developer tools for theme builders, and updates to key dependencies like Symfony 6.3. The release focuses on polishing existing functionality rather than introducing major new features, with substantial work on code quality, testing infrastructure, and developer documentation.
Highlight of the Release
- Added CKEditor 5 autoformat support for faster content formatting
- Improved toolbar performance by reducing browser reflow
- Made it easier for theme builders to enable Twig debugging and disable render cache
- Updated to Symfony 6.3 and other key dependencies
- Fixed XSS filtering for datetime attributes
- Enhanced security by adding .phtml files to the list of potentially malicious extensions
- Improved accessibility for modals in forced colors mode
Migration Guide
Node.js Version Requirement
Drupal 10.1.x now requires Node.js 18 for development. If you're contributing to Drupal core or developing with JavaScript tooling, ensure you've updated your Node.js installation.
Symfony 6.3 Update
The update to Symfony 6.3 may require adjustments if your custom code relies on specific Symfony components. Review the Symfony 6.3 changelog for details on changes that might affect your code.
PHPUnit 9.6.7 Update
If you have custom test suites, you may need to update them to be compatible with PHPUnit 9.6.7. Pay special attention to any deprecated testing methods or assertions you might be using.
Method Signature Changes
Several method signatures have been updated with improved type hinting:
\Drupal\Component\Utility\Xssmethods now include type hinting- Some TranslatableInterface methods now return more specific types
- The
$opparameter inhook_node_grants[_alter]()andnode_access_grantshas been renamed to$operation
Review any custom code that extends or implements these interfaces or hooks.
Upgrade Recommendations
For Production Sites
This is a beta release and is not recommended for production sites. Wait for the stable 10.1.0 release before upgrading production environments.
For Development and Testing
If you're a developer or site builder who wants to test the upcoming features or verify compatibility with your custom code and modules:
- Set up a separate development or staging environment
- Back up your database and files
- Update to Drupal 10.1.0-beta1
- Test thoroughly, especially custom code that:
- Extends core classes with updated type hints
- Uses Symfony components
- Implements or hooks into the node access system
- Works with workspaces or translations
Module Developers
Module developers should test their modules against this beta to ensure compatibility with the upcoming 10.1.0 release. Pay special attention to:
- Type hint changes
- Symfony 6.3 compatibility
- PHPUnit test compatibility
Bug Fixes
UI and Accessibility Fixes
- Fixed incorrect progress throbber positioning
- Fixed "Call to a member function getLabel()" error after enabling layout_builder
- Fixed "Comments per page" setting to allow configuring "all comments" option
- Fixed media library showing 'is required message' when users have no access to the field
- Fixed RTL support for collapse state in translation update page
- Improved visibility of modal boundaries in forced colors mode
Core System Fixes
- Fixed workspace handling to ensure all revisions are cleaned up after deleting a workspace
- Fixed issue with creating unpublished entities in a workspace not setting the workspace field on the revision
- Fixed
Html::escapeCdataElement()not adding CDATA correctly - Fixed
Xss::filterAdmin()incorrectly filtering datetime attribute - Removed redundant
role="article"from<article>HTML tags
Form and API Fixes
- Fixed
OptionsWidgetBaseto respect#required_error - Fixed SiteSettingsForm to include install.inc
- Modified to allow DELETE requests to return a response body
New Features
CKEditor 5 Autoformat Support
Added support for CKEditor 5 autoformat, allowing content editors to use markdown-like syntax for faster formatting. For example, typing **bold** will automatically convert to bold text.
Enhanced Theme Development Tools
New developer tools make it easier to enable Twig debugging and disable render cache during theme development, streamlining the theme building process.
Improved EntityListBuilder Query Extension
The EntityListBuilder::getEntityIds() method has been enhanced to allow easier extension of the query, giving developers more flexibility when customizing entity lists.
Help Topic for Announcements Feed Module
Added a new help topic specifically for the Announcements Feed module to improve user documentation.
Entity Reference Label Formatter Enhancement
Added entity to the entity reference label formatter render array, providing more context and flexibility in entity reference displays.
Security Updates
Enhanced File Extension Security
Added .phtml files to the list of potentially malicious extensions, improving security against potential file upload vulnerabilities.
XSS Protection Improvement
Fixed Xss::filterAdmin() which was incorrectly filtering datetime attributes, ensuring proper protection against cross-site scripting attacks.
Performance Improvements
Reduced UI Reflow
Several improvements have been made to reduce browser reflow, creating a smoother user experience:
- Reduced toolbar user button related browser reflow
- Reduced reflow on the Home / Back to Site button
- Optimized rendering of UI elements to minimize layout shifts
Key Value Storage Optimization
Improved how KernelTestBase manages its persistent key value storage, enhancing test performance and reliability.
Memory Management
Do not use persist tag for keyvalue.memory in KernelTestBase, improving memory usage during testing.
Impact Summary
Drupal 10.1.0-beta1 represents an incremental but significant improvement to the Drupal 10 platform. While not introducing major new features, it focuses on enhancing developer experience, performance, and accessibility.
The addition of CKEditor 5 autoformat support will improve content editing workflows, making it faster and more intuitive to format text. Performance improvements to the toolbar and UI elements reduce page reflow, creating a smoother user experience.
For developers, the update to Symfony 6.3, improved type hinting, and better documentation throughout the codebase enhance the development experience. The new tools for theme builders to enable Twig debugging and disable render cache will significantly streamline theme development workflows.
Security has been improved with better XSS protection and enhanced file extension security. Accessibility enhancements, particularly for modals in forced colors mode, continue Drupal's commitment to creating inclusive experiences.
This beta release sets the stage for a polished and refined Drupal 10.1.0 stable release, with improvements that benefit all types of Drupal users from content editors to developers.
Statistics:
User Affected:
- Easier theme debugging with new tools to enable Twig debugging and disable render cache
- Updated dependencies including Symfony 6.3, PHPUnit 9.6.7, and various other libraries
- Improved type hinting and PHPDoc comments throughout the codebase
- Better query extension capabilities with enhanced EntityListBuilder::getEntityIds()
- Node.js 18 now required for development
