Install

To start a new Drupal project with version 9.0.0-alpha1@alpha:

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 15.92 MB
MD5: d6966108add1d681774406209981fb77
SHA-1: 334c096472d83bd857d049ba3324106c356e1b8f
SHA-256: ed82cda94b38622bb6c976a03d77d430c8cddeae733dc0c556803361d7728cb4
Download zip 26.73 MB
MD5: 6384cfb849b0f04d87523a1a9f90e204
SHA-1: 798ede46c684565e7dd133f6800f0ecfda101b6b
SHA-256: 1af51b3528b297c64b1f4378661b2bccb27adff89d8d7bd9614110cf7d3c9598

Release notes

This is an alpha release for the next major version of Drupal. Drupal 9 alpha releases are intended for site owners and module or theme authors to begin testing whether their sites and code are compatible with significant dependency changes in Drupal 9.0.x. Drupal 9 alpha releases should not be used in production. No upgrade path is provided between Drupal 9 alpha releases or to Drupal 9.0.0-beta1.

Drupal 9 alphas do not include all the breaking changes that will be included in 9.0.0. Any further alpha releases as well as the first beta release will include more dependency updates and remove more of the previously identified deprecated APIs. Refer to How to prepare your Drupal 7 or 8 site for Drupal 9 for tools you can use to check the Drupal 9 compatibility of modules, themes, and sites.

For more information on 9.0.x development, see #3007300: [META] Release Drupal 9 on June 3 2020.

The 9.0.x branch also includes all the latest commits that will be backported to 8.9.x and earlier branches. 9.0.x will be nearly identical to 8.9.x except for the following:

  1. Deprecated code will be removed.
  2. Dependencies will be updated to new major versions as appropriate.

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

Information on updating to Drupal 9

Drupal 8 sites on 8.7 or earlier must update to either 8.8 or 8.9 before updating to Drupal 9 with update.php. All Drupal 8 update functions from before Drupal 8.8.0-rc1 were removed from Drupal 9. Note: The migration paths from Drupal 6 and Drupal 7 to Drupal 8 and 9 will remain supported throughout Drupal 9's release cycle.

For more information on updating from Drupal 8 to Drupal 9, see Upgrading a Drupal 8 site to Drupal 9.

Removal of Drupal 8's deprecated APIs

85% of all mentions of @deprecated APIs have been already removed, including the removal of the deprecated EntityManager service, and the removal of drupal_set_message() among others.

Render array hardening against remote code execution

The security fixes required for SA-CORE-2018-002 and SA-CORE-2018-004, as well as other publicly disclosed security issues, all indicated that the render system needs to be stricter about what may be called by a callback. If you have code that adds a render callback (#access_callback, #lazy_builder, #pre_render or #post_render), it might need to be updated to work in Drupal 9. Read more in the change record for limitations on what can be called by a callback in render arrays.

Ongoing changes to core themes and theme APIs

Backend (PHP) dependency updates

This alpha release includes the following key PHP dependency updates compared to Drupal 8.9.x:

Frontend (CSS and JavaScript) dependency updates

Drupal 9 will continue to depend on CKEditor 4 and jQuery 3.4.

  • Most jQuery UI components were deprecated in Drupal 8.8 and removed in Drupal 9.0. The libraries are now provided as contributed modules to make updating easier for any modules or themes that depend on them. See the change record on the removal of these jQuery UI libraries for more information.

    The libraries that are still in use as of Drupal 8.8 were forked into Drupal 9 core to make it easier to fix any potential security issues with jQuery UI before Drupal 9's end-of-life. We plan to deprecate and remove all of these forked components prior to Drupal 10.0.0's release.

  • The following browser support polyfill libraries were deprecated in 8.8.0 and have been removed from Drupal 9.0 because they are no longer required by any of the browsers supported by Drupal core:

    • html5shiv
    • matchMedia
    • domready (Replaced by a single simple function that will now work in all supported browsers. See domready is deprecated for more information.)
    • classList

    For sites that need to support older browsers, the contributed html5shiv module and matchmedia module provide identical replacements for the core libraries.

Other planned dependency updates

The following dependency updates are still outstanding and will be resolved before 9.0.0-beta1:

What's next?

We may release further alpha versions as needed. There are three release scenarios for Drupal 9. If we complete all Drupal 9.0.0 beta requirements by the end of February, the first beta will be released in the first week of March and Drupal 9.0.0 will be released on June 3rd, 2020. If the beta requirements are not completed by the end of February, one of the later beta windows will be used.

All changes since 8.8.0

Browse the commit log for 9.0.x.

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: 11 Feb 2020 at 18:35 UTC
Last updated: 16 Sep 2020 at 18:15 UTC
Bug fixes
New features
Insecure
Unsupported

Other releases