Home

>

Tools

>

Drupal

>

Releases

>

10.1.0-beta1

Drupal Release: 10.1.0-beta1

Pre Release

Tag Name: 10.1.0-beta1

Release Date: 5/15/2023

Drupal LogoDrupal

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 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\Xss methods now include type hinting
  • Some TranslatableInterface methods now return more specific types
  • The $op parameter in hook_node_grants[_alter]() and node_access_grants has 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:

  1. Set up a separate development or staging environment
  2. Back up your database and files
  3. Update to Drupal 10.1.0-beta1
  4. 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 OptionsWidgetBase to 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:

File Changed300
Line Additions2,517
Line Deletions1,129
Line Changes3,646
Total Commits69

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

Contributors:

longwavealexpottlauriiilarowlanbbenjamin