Install

To start a new Drupal project with version 10.3.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 tar.gz 19.82 MB
MD5: 39b263798ab4a0e2c7cee4138cb77296
SHA-1: 95a9b9b47b8740c65065a338ada39c581335102f
SHA-256: c350513f780452b64bdf0a7dacc8bff14f698306ad75fa83ba7b66d70c554a3b
Download zip 32.26 MB
MD5: 9a62c16e926dc025e5c5517d39949ccc
SHA-1: b5f4893f9721e84304079868ab19883d739712b8
SHA-256: 48f7dcfb219a44e3ed562ab6b44cdb3d357c075e59c85791d25fcd5f20740e2c

Release notes

Learn more about Drupal 10.3.0!

This is the final feature release of Drupal 10 and is ready for use on production sites. Learn more about Drupal 10 and the Drupal core release cycle.

This minor release provides improvements and new functionality. It does not break backward compatibility (BC) for public APIs. There may be changes in internal APIs and experimental modules. If so, contributed and custom modules and themes may need updating. This is according to Drupal core's backward compatibility and experimental module policies.

Understanding the new release cycle: Drupal 10, 11, and 12

Sites must update to at least Drupal 10.3.0 (this release) prior to updating to Drupal 11. For information on the upcoming Drupal 11 release, read the Drupal 11.0.0-beta1 release notes.

Once Drupal 11 is released, start new projects on Drupal 11 for the best forward-compatibility with later releases. New features will only be added to upcoming Drupal 11 minor releases. Therefore, we recommend that you prepare existing sites for Drupal 11 this year in order to continue receiving the new features.
More information on the new Drupal core major release schedule.

Drupal 11.0 and 10.3

Drupal 10.3 provides almost the same public API as Drupal 11.0, which will be released in August. The main differences between Drupal 10.3 and 11.0 are dependency changes and the removal of deprecated code. For more information, refer to the Drupal 11.0.0-beta1 release notes.

Drupal 10.3.x and 11.0.x will receive security coverage until June 2025, when Drupal 11.2.0 is released. Drupal 10.2.x security coverage continues until December 2024.

Drupal 11.1 and 10.4

Drupal 10.4 will be a maintenance minor, the first in Drupal history. Maintenance minors receive limited ongoing forward-compatibility and security fixes only. Maintenance minor releases of Drupal 10 will be provided until the release of Drupal 12 in 2026. (More information on the new Drupal core major release schedule.)

Drupal 11.1 and 10.4 will be released in December 2024 and receive security coverage until December 2025.

Older Drupal versions

Drupal 10.1.x security support has ended. Sites on Drupal 8, 9, 10.0, or 10.1 should upgrade to a supported release as soon as possible.

Drupal 7 will reach its final end-of-life on January 5, 2025. No further support extensions will be provided. (Drupal 7 Migration Resource Center.)

Important update information

Backwards-compatibility break for security hardening

For security hardening, a backwards-compatibility break has been introduced in ImageStyleDownloadController. This change may affect modules that provide custom stream wrappers or extend ImageStyleDownloadController. Review the change record for information on how to update your routing entries for this change.

Changes to site-owner-managed files

  • The special privileges of user 1 are now part of the SuperUserAccessPolicy and is enabled by default. The special behavior of user 1 can be disabled by setting the parameter security.enable_super_user in the site services.yml file to false.

  • The use of the State cache can be controlled using a new setting in settings.php. The setting is $settings['state_cache'] and is set to TRUE to improve performance. Sites may set it to FALSE if any modules are storing large amounts of data or frequently changing data in the State store. In Drupal 11, the setting will be removed and the State cache will be permanently enabled.

Platform requirements changes

  • Drupal 10.3 is fully compatible with PHP 8.3. PHP 8.3 is now recommended and may offer performance improvements.

API and behavior changes

  • In order to protect users from being unexpectedly logged out, the user logout route is now CSRF-protected. Logout links that are hardcoded as /user/logout will result in a redirection to a confirmation form. Therefore, site users may be surprised when seeing this unexpected confirmation form for the first time. Site owners who have hardcoded /user/logout links can follow the instructions in the change record on the route's new protection to avoid the redirection behavior.

  • Drupal now returns render cache items (except for forms) on POST requests. This improves performance of form submissions by allowing other elements of the page to be render cached. This change should be transparent to contributed and custom code. Module developers who implement custom forms should read POST requests are now render-cached,

Experimental module changes

Experimental modules are provided with Drupal core for testing purposes, but are not yet fully supported.

Theme system and template changes

PHP dependency changes

  • Twig has been upgraded from 3.5.0 to 3.9.3. If you have custom code that extends Twig, you should read the Twig v3.9.0 changelog as there are new deprecations.

  • Drupal core's Composer development dependency has been updated to Composer 2.7.7, which addresses security vulnerabilities. It is recommended that Drupal site owners also update their local Composer versions with composer self-update.
  • Numerous other dependencies have received minor- and patch-level updates to the latest versions.

Frontend (CSS and JavaScript) production dependency changes

  • CKEditor 5 has been updated from 41.2.0 to 41.3.1.

    If you are updating from 10.2.x or earlier and have the CKEditor font module installed, or another CKEditor extension that has been disrupted by this update, you should consider switching to CKEditor5 Plugin pack for a more up-to-date version of the plugin which is compatible with the CKEditor5 version shipped with Drupal 10.3.

  • jQuery Form is removed as an external dependency. It is now forked into core because it is abandoned upstream. It is tagged @internal and should not be used by contributed or custom modules directly.

Known issues

Search the issue queue for known issues.

All changes since Drupal 10.3.0-rc1

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: catch
Created on: 20 Jun 2024 at 19:10 UTC
Last updated: 30 Jul 2024 at 22:32 UTC
Bug fixes
New features
Insecure
Unsupported

Other releases