Home

>

Tools

>

Drupal

>

Releases

>

10.0.0-alpha3

Drupal Release: 10.0.0-alpha3

Pre Release

Tag Name: 10.0.0-alpha3

Release Date: 4/13/2022

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.0.0-alpha3 brings significant updates to the CKEditor 5 integration, removes several deprecated modules (HAL, Aggregator), and improves accessibility across themes. This release continues the modernization of Drupal's JavaScript ecosystem by removing jQuery UI dependencies, deprecated libraries like jquery-once and jquery.cookie, and preparing for IE11's end of support. Performance improvements include better asset aggregation and optimized storage operations. The release also enhances the admin UI by better highlighting experimental and obsolete modules/themes.

This alpha release represents another major step toward Drupal 10's stability, with important API changes, dependency updates, and removal of deprecated code that developers should review when preparing their sites and modules for the Drupal 10 upgrade path.

Highlight of the Release

    • Removal of HAL module from core (moved to contrib)
    • Removal of Aggregator module from core (moved to contrib)
    • Improved CKEditor 5 integration with better media handling and accessibility
    • Unfork of jQuery UI and removal of deprecated jQuery libraries
    • Enhanced UI for identifying experimental and obsolete modules/themes
    • Numerous accessibility improvements in Claro and Olivero themes
    • Performance improvements including CKEditor 5 asset aggregation
    • Requirement of Node.js 16 for frontend development
    • Improved configuration synchronization UI
    • Addition of loading attribute UI for images

Migration Guide

Preparing for Module Removals

HAL Module

The HAL module has been removed from core and moved to a contrib project. If your site depends on HAL:

  • Install the HAL contrib module before upgrading to Drupal 10
  • Update any code that depends on HAL to use the contrib module
  • Review any REST implementations that might be using HAL as a formatter

Aggregator Module

The Aggregator module has been removed from core and the dependency on Laminas Feed has been removed. If your site uses Aggregator:

  • Install the Aggregator contrib module before upgrading to Drupal 10
  • Migrate any custom code that depends on Aggregator functionality

JavaScript Library Changes

jQuery UI

jQuery UI has been unforked. If your code depends on jQuery UI:

  • Use modern alternatives where possible
  • If you must use jQuery UI, add it as a direct dependency to your project

Deprecated Libraries

The following libraries have been removed:

  • jquery-once (use core/once instead)
  • jquery.cookie (use JavaScript's native cookie handling or a dedicated cookie library)
  • Backbone and Underscore are now deprecated and marked internal

Node.js Requirements

  • Node.js 16 is now required for frontend development
  • Update your local development environment accordingly

Database Schema Changes

  • The methods tableExists() and fieldExists() have been removed from Drupal\Core\Database\Driver\mysql\Schema
  • Update any custom code that uses these methods to use the standard Schema methods instead

PHP Requirements

  • Review code for compatibility with minimum PHP requirements
  • Note that MINIMUM_SUPPORTED_PHP is now enforced

Upgrade Recommendations

Priority: Medium

This is an alpha release and not recommended for production sites. However, developers should begin testing their custom modules and themes against this release to prepare for Drupal 10.

For Module and Theme Developers:

  1. Test with removed modules: If your code depends on HAL or Aggregator modules, test with the contributed versions.

  2. Update JavaScript dependencies: Remove dependencies on jquery-once, jquery.cookie, and update any code using Backbone or Underscore which are now deprecated.

  3. Review deprecated code: Many deprecated functions from taxonomy, user, jsonapi, and other modules have been removed. Update your code accordingly.

  4. Test with CKEditor 5: If your module interacts with the editor, test thoroughly with the enhanced CKEditor 5 integration.

  5. Update development environments: Ensure your development environment uses Node.js 16 for frontend development.

For Site Owners:

While you should not upgrade production sites to this alpha release, you should:

  1. Begin planning for the migration away from HAL and Aggregator modules if your site uses them.

  2. Set up a test environment with this alpha release to identify potential issues with your custom code and contributed modules.

  3. Review the list of removed deprecated functions and APIs to identify potential compatibility issues.

  4. Test any custom CKEditor integrations with CKEditor 5 to ensure they work properly.

Timeline:

Continue monitoring the Drupal 10 release cycle. This alpha3 release indicates progress toward a stable Drupal 10 release, but more changes are expected before the final release.

Bug Fixes

Content Editing Fixes

  • Fixed title formatting broken due to flawed EntityViewController->buildTitle
  • Fixed elements wrapping <drupal-media> not being retained
  • Fixed issue where some image attributes were lost in edge cases
  • Fixed issue where changes to "Manually editable HTML tags" were lost if form was submitted without triggering AJAX
  • Fixed bug where Media embed attributes were rendered in container div in editing view
  • Fixed issue where grouped exposed taxonomy term filters did not work

UI and Theme Fixes

  • Fixed Olivero search functionality in desktop Safari at wide widths
  • Fixed Olivero comment template breaking 'new' indicator/anchor
  • Fixed issue where multi-select (combobox) list items "escaped" bounding box in off-canvas forms in Chrome
  • Fixed dropbutton breaking when text is split to multiple lines
  • Fixed image overlapping in layout builder with +Add block +Add section
  • Fixed Claro vertical scrollbar not displaying when many results are returned by linkit
  • Fixed tour module popup close button size issue in Olivero
  • Fixed input field description not being visible in Configure dialog box of layout builder

System and API Fixes

  • Fixed TypeError in FileUrlGenerator::generateString() when null is passed instead of string
  • Fixed issue where assigned shortcut set is not cleaned on user removal
  • Fixed issue with many languages causing content_translation_page_attachments to add too many alternate links
  • Fixed BundleClassInheritanceException incorrectly thrown when a bundle class does not exist
  • Fixed issue where updating to Drupal 9.3 fails when sql_require_primary_key MySQL system variable is ON
  • Fixed issue where unmet installation requirements may contain render elements
  • Fixed issue with content translation not cleaning up alternate links on user removal

New Features

CKEditor 5 Enhancements

  • Added support for captions on <drupal-media> elements
  • Added CodeBlock plugin and package for code formatting
  • Improved media handling with better toolbar visibility when elements inside <drupal-media> are focused
  • Added support for merging cells in tables
  • Made image alt text required or strongly encouraged for better accessibility
  • Added ability to remove data-align in the UI and make images inline
  • Added support for functionality equivalent to ckeditor_stylesheets

UI Improvements

  • Added UI for 'loading' HTML attribute to images to improve page performance
  • Enhanced configuration synchronization UI to better distinguish between empty staged configuration and staged configuration that matches active
  • Improved UI for highlighting non-stable modules on the admin/modules/uninstall form
  • Added visual promotion of non-stable statuses in admin/appearance page
  • Added a new recipe to Umami demo - Borscht with pork ribs

Developer Features

  • Added ability for block and layout plugins to determine if they are being previewed
  • Added support for version negotiation for any entity type (previously only Node & Media were supported)
  • Extended post update system to provide themes a way to install newly-required dependencies
  • Added constant for watchdog_exception message for more consistent logging

Security Updates

  • Included SA-CORE-2022-005 security fix
  • Included SA-CORE-2022-006 security fix by JeroenT, DamienMcKenna, xjm, pwolanin, alexpott, larowlan, greggles

Note: Specific details about security fixes are intentionally limited in accordance with security disclosure best practices. For more information about these security advisories, please refer to the official Drupal Security Advisories.

Performance Improvements

Performance Optimizations

  • Enabled aggregation for CKEditor 5 assets, reducing HTTP requests and improving page load times
  • Optimized StorageCopyTrait for slow write operations, improving performance when copying large amounts of configuration
  • Improved handling of content_translation_page_attachments to prevent adding too many alternate links to response headers which could crash Varnish (503)
  • Added UI for 'loading' HTML attribute to images, allowing site builders to improve page performance by lazy-loading images
  • Removed IE11 warning for CKEditor 5 in Drupal 10, reducing unnecessary JavaScript loading
  • CKEditor 5 now adds ie11.user.warnings library more selectively, preventing FOUC for anonymous users

Impact Summary

Drupal 10.0.0-alpha3 represents a significant step in Drupal's evolution, focusing on modernizing the codebase, improving developer experience, and enhancing content editing capabilities. The removal of deprecated modules like HAL and Aggregator (now available as contrib) continues Drupal's strategy of streamlining core while maintaining functionality through the contributed ecosystem.

The JavaScript ecosystem sees major changes with the unfork of jQuery UI, removal of deprecated libraries like jquery-once and jquery.cookie, and the deprecation of Backbone and Underscore. These changes align with modern web development practices and reduce technical debt, though they require attention from developers maintaining custom code.

CKEditor 5 integration continues to mature with significant improvements to media handling, accessibility, and editing capabilities. The required alt text for images and better support for captions on media elements demonstrate Drupal's commitment to accessibility and content quality.

The admin UI receives thoughtful improvements, particularly in highlighting experimental and obsolete modules/themes, making it easier for site builders to make informed decisions about their site architecture. Performance optimizations, including CKEditor 5 asset aggregation and optimized storage operations, contribute to a more efficient platform.

For developers, this release requires attention to removed deprecated code and API changes, but provides a clearer path forward with modern alternatives. Site builders and content editors will benefit from improved UIs and editing experiences, though they'll need to adapt to module changes if they rely on HAL or Aggregator.

Overall, this alpha release demonstrates Drupal's continued focus on modernization, accessibility, and developer experience as it moves toward a stable Drupal 10 release.

Statistics:

File Changed300
Line Additions1,337
Line Deletions1,470
Line Changes2,807
Total Commits225

User Affected:

  • Need to update code that relies on removed deprecated functions from taxonomy, user, and jsonapi modules
  • Should prepare for the removal of HAL module which has been moved to contrib
  • Must update code that depends on jquery-once, jquery.cookie, or jQuery UI as these have been removed or unforked
  • Need to adapt to Node.js 16 requirement for frontend development
  • Should review code using Backbone and Underscore as these are now deprecated and marked internal

Contributors:

xjmalexpottlarowlanlauriiibbenjamingoba