Install

To start a new Drupal project with version 10.0.0:

To update your site and all dependencies to the latest version of Drupal:

To update your site to this specific release:
Pinning to a specific release may make it more challenging to update your site in future, see composer documentation for managing pinned versions

Using Composer to manage Drupal site dependencies

Downloads

Download drupal-10.0.0.tar.gztar.gz 16.62 MB
MD5: e7076b85c398773037f3434ae5cdec9e
SHA-1: 82446c3b3ea5a12feb7f22541cd01f5481d787b8
SHA-256: 2d06fd1e28f4462db5226950eef146e98a1162a573db351d9c16c78b7872b350
Download drupal-10.0.0.zipzip 27.46 MB
MD5: 8275e5db27c341ce7c8598512337a166
SHA-1: 85b474cbca6a3f61ec6dc85fd4870f93d7d7de10
SHA-256: 494d0cd2ccc42c3d6ae57fe1c187e6e321b4e1cce7f340686b37b539392f3743

Release notes

This is the first supported release of the new Drupal 10 major version, and it is ready for use on production sites! Learn more about Drupal 10 and the Drupal core release cycles.

Drupal 10.0.0 has been released simultaneously with Drupal 9.5.0. Drupal 9.5 has most of the changes that Drupal 10 does, but retains backwards compatibility layers added through Drupal 9.5.0's release. Update to Drupal 9.5 before updating to Drupal 10 for the smoothest upgrade path.

If you are starting a new Drupal project, you have a choice between Drupal 9.5.0 and 10.0.0, and generally should choose Drupal 10 where possible for forward compatibility with future releases.

Regardless of which version you choose now, features will only be added to Drupal 10 minor releases. Plan to adopt Drupal 10 so that you can easily update to Drupal 10.1 and later.

Refer to Preparing your site to upgrade to a newer major version for tools you can use to check the Drupal 10 compatibility of modules, themes and sites. Then, upgrade from Drupal 9 to 10.

Both 10.0.0 and 9.5.0 include all the latest changes, and they have the same APIs and features aside from a few edge-cases. This also means modules and themes can be compatible with Drupal 9 and 10 at the same time! The key changes in 10.0.0 are:

  1. Deprecated code, including entire modules and themes, has been removed.
  2. Dependencies have been updated to new major versions as appropriate.
  3. Platform requirements (including supported PHP and database versions, Composer requirements, and supported browsers) have been updated.

For all other changes, refer to the 9.5.x branch.

Important update information

Sites must update to at least Drupal 9.4.4 before upgrading to Drupal 10

Drupal sites running 9.3.x or earlier versions must first update to 9.4.4 or later before updating to Drupal 10. All core updates added before 9.4.0 have been removed and the data upgrade path from CKEditor 4 to CKEditor 5 is not available before Drupal 9.4.4. In general, sites should update to the most recent release of their current major branch before updating to the next major release.

Sites using CKEditor 4 should upgrade to CKEditor 5 in Drupal 9.4 or 9.5 before updating to Drupal 10

Most Drupal sites using CKEditor 4 should upgrade to CKEditor 5. See the recommendations for CKEditor for details. Upgrading from CKEditor 4 to 5 is a manual process, because it requires human supervision.

Changes to site-owner-managed files

Platform requirements changes

PHP requirements

Database requirements

The following minimum database versions are supported by Drupal 10 core:

  • MySQL or Percona 5.7.8.
  • MariaDB 10.3.7 (This is a more recent release than the MySQL version.)
  • PostgreSQL 12 with the pg_trgm extension.
  • SQLite 3.26 with the JSON1 extension. PHP does not always use the system-provided SQLite, so verify that your PHP is compiled with at least this version.

Browser support changes

  • Internet Explorer 11 is not supported in Drupal 10.
  • Support for older versions of UC Browser has been removed. Newer versions of the browser that rely on WebView should be unaffected.

See the browser support policy for more information.

Composer requirements

Drupal 10 recommends Composer version 2.3.6 or higher, which is required for compatibility with PHP 8.2 and the forthcoming Automatic Updates feature. Core developers must update to at least Composer 2.3.6 to work on Drupal core, and site owners will receive warnings on older versions. Drupal will not install or update with Composer versions lower than 2.1.

To update your host's version of Composer, run:

composer self-update

You can roll back to the previous version at any time by using:

composer self-update --rollback

Update to a specific version with:

composer self-update 2.3.6

More information on using Composer for Drupal .

Removed modules and themes

Numerous modules and themes have been removed from Drupal core and moved to contributed projects. In many cases, the removed extensions have little to no impact on site development.

Sites that depend on a removed module or theme should download the contributed project version (either manually, or by requiring it with Composer) before updating their sites to Drupal 10. Drush may bypass warning and error messages on update.php related to missing modules or themes. The status report will display errors about missing modules after upgrading, but missing active themes will cause fatal errors and/or a white screen.

Removed modules

If a removed module is required for a site's functionality, the contributed version should be downloaded to the codebase or added to the Composer requirements before upgrading. Do not uninstall the module, since this would destroy the module configuration.

In addition to the below changes, some related CSS and templates have been removed from core base themes, so sites using the below modules may need to update their themes.

Removed themes

Even if you do not use the below themes directly, you should check whether your installed themes extend them. This information is available in the .info.yml file for the theme. For example, to see if themes/mytheme uses Classy as a base theme, check in themes/mytheme/mytheme.info.yml for this line:

base theme: classy

Base themes may extend other base themes, so if a non-core base theme is listed, you should also check whether or not that theme extends one of the below themes (especially Classy or Stable).

Composer integration changes

Composer 2.2 and higher require Composer projects to authorize individual plugins. This means that Composer commands to install and update Drupal projects will fail unless either the required plugins are allowed in the project configuration or the user manually replies y to a prompt to allow the plugin. Existing projects may need to update their configuration to authorize these plugins. This can be done by running the following commands:

composer config --no-plugins "allow-plugins.composer/installers" true
composer config --no-plugins "allow.plugins.drupal/core-composer-scaffold" true
composer config --no-plugins "allow-plugins.drupal/core-vendor-hardening" true
composer config --no-plugins "allow-plugins.drupal/core-project-message" true
  

For more information, review Composer 2.2+ authorized plugins.

Change to the Standard profile

The 'Basic HTML' format provided with the Standard profile no longer allows the <span> tag. This should simplify copying and pasting from Microsoft Word, Google Docs and similar programs into either version of CKEditor on new installs. Existing installs may want to consider removing the tag from text formats and reviewing existing content.

API changes

Backend (PHP) dependency changes

Added PHP dependencies

  • Drupal core requires guzzlehttp/psr7 2.4.3 for implementation of several core services for PSR-17.

Removed PHP dependencies

The following dependencies have been removed from Drupal core:

Updated PHP dependencies

  • Drupal 10 requires Symfony 6.2. Several indirect dependencies have changed as a result of the Symfony 6 update.

    Additionally, the symfony/deprecation-contracts, symfony/event-dispatcher-contracts, symfony/service-contracts, and symfony/translation-contracts libraries have been updated from 2.5.2 to 3.1.1.

  • Twig has been updated from 2.x to 3.4.3. Review the Twig 3 changes for PHP developers and template creators.

  • guzzlehttp/guzzle 7.5 is now required.

  • asm89/stack-cors has been updated from version 1.3.0 to 2.1.1.

    Enabling CORS now preserves cacheability whenever possible.

    Previously, enabling CORS would add Vary: Origin to all requests of a different origin. With this change, enabling CORS will only add this if absolutely necessary.

  • Drupal core's other production Composer dependency versions have been updated where possible to the latest major, minor, and patch releases. Where appropriate, constraints have been increased to require the latest minor versions.

Frontend (CSS and JavaScript) dependency changes

Removed frontend dependencies

  • The public Backbone and Underscore core libraries have been removed. These dependencies are now deprecated and for internal use only. Consequently, the drupal.editor.admin and drupal.filter.filter_html.admin libraries no longer depend on Underscore. Backbone and Underscore will eventually be removed from core.

    Modules or themes that depend on these libraries should either refactor their code to remove the dependencies, or treat them as third-party dependencies for the contributed module.

    Most Underscore functionality has simple replacements in modern ES6 JavaScript. Review the change record about the Underscore deprecation for more information on upgrading your code.

  • Since Internet Explorer 11 is no longer supported, Drupal 10 deprecates all polyfill libraries and removes the files. Additionally, the details HTML tag is available in all supported browsers, so the supporting code that provided this element for Internet Explorer has been removed. If you plan to continue supporting Internet Explorer 11 even when used with Drupal 10, your project will have to depend on or implement any required polyfills directly.

  • The Farbtastic library has been removed from Drupal core. There is no replacement. Developers should consider using browser-native color pickers instead.

  • The jQuery Joyride JavaScript library has been removed.

  • The PopperJS JavaScript library has been removed as a direct dependency. It was used only by Quick Edit, which has been removed from core. If you need to use it, you should define the library in a custom module.

Updated frontend dependencies

  • CKEditor 5 has been updated to the latest 35.4.0 release. This update has a minor breaking change that could affect the development of certain contributed or custom CKEditor 5 integrations. For more information read the CKEditor 5 35.4.0 release notes.

  • jQuery has been updated from 3.6.0 to 3.6.2.

  • tabbable has been updated to 6.0.10.

  • The Shepherd.js JavaScript package has been updated to 10.0.1. Additionally, the public core library for this package has been deprecated. Shepherd.js should only be used internally by Drupal core.

  • Drupal core's other production JavaScript dependency versions have been updated to the latest major, minor, and patch releases where possible. Where appropriate, constraints have been increased to require the latest minor versions.

Development dependencies

  • The JavaScript ES6 build process has been removed given that all browsers supported by Drupal Core are now ES6-compatible. This means that once the build tooling is removed from Drupal 10, core developers are no longer required to run the commands when they make changes to core JavaScript. This also means that babel/core and all related dependencies are no longer used as core development dependencies.

  • Node.js is a required development dependency for Drupal core and the minimum supported version has been updated from 12 to 16. (Information on changes in Node.js 16.) An updated version of Node.js can be installed directly or with nvm. This only affects sites that have installed Drupal core's JavaScript development dependencies with npm or yarn.

  • The PHPStan static analysis tool, version 1.9.1, has been added to Drupal core's development dependencies and is run against all core patches and merge requests.

  • PHPUnit has been upgraded from 8.5.21 to 9.5.24, and all its sub-packages have been updated. PHPUnit 9.5 or higher is required, and PHPUnit 8 is no longer supported.

    phpspec/prophecy-phpunit and Mink 1.10 or later are also now required for PHPUnit.

  • Drupal 10 development now requires composer/installers version 2.0 or higher (up from version 1.9).

  • The Nightwatch testing library has been updated to version 2.4.2. Reference the Nightwatch developer guide for a list of high level changes in the 2.0.0 release.

  • The JavaScript chromedriver package has been removed. If you were running Nightwatch tests locally, you may need to start Chromedriver manually.

  • The JavaScript raw-loader package has been removed as it is no longer required by Drupal’s build process.

  • The Stylelint development dependency has been updated to version 14, and minor changes have been made to whitespace and quoting in core CSS. Refer to the change record on the Stylelint 14 update for more information.

  • stylelint-config-standard, which enforces Drupal's CSS style, has been upgraded from 23.0.0 to 28.0.0. Developers who relied on this ruleset may have to make minor tweaks to their CSS to comply with the new standards.

  • cspell has been updated from version 5 to 6.14.1. This results in some slight changes to the dictionary for core development.

  • Chalk has been removed as a JavaScript development dependency.

  • PostCSS has been upgraded from 7.0.39 to 8.4.16. Developers who used custom PostCSS plugins may need to refer to the PostCSS 8 plugin migration guide.

  • The ESLint JavaScript development dependency has been updated to version 8.9.0. core/.eslintrc.passing.json has been updated to reflect the new rules.

  • eslint-plugin-yml, the YAML style checker for ESLint, has been upgraded from 0.14.0 to 1.2.0.

  • Drupal core's other JavaScript and PHP development dependencies have been updated to the latest major, minor, and patch versions wherever possible.

    Core developers should completely remove their node_modules directory and re-run yarn install from within the core/ directory.

Coding standards

The following coding standards checks have been enabled in core:

  • Drupal.Array.Array.ArrayClosingIndentation
    Drupal.Array.Array.ArrayIndentation
    Drupal.Commenting.FunctionComment.MissingReturnType
  • All YAML files are linted for correct indentation.

Known issues

Search the issue queue for known issues.

All changes since 10.0.0-rc3

What’s next?

  1. Learn how to install Drupal
  2. Learn how to update Drupal
  3. Extend Drupal to do more
  4. Get training
  5. Check out what others built
Created by: xjm
Created on: 15 Dec 2022 at 17:33 UTC
Last updated: 13 Jan 2023 at 09:14 UTC
Bug fixes
New features
Insecure

Other releases