Drupal 9 Early Access

Test the latest Drupal on the Pantheon WebOps Platform.

Contributors: Matt Cheney, Edward Angert.

Tweet

Drupal 9 is, according to drupal.org:

"...a cleaned-up version of Drupal 8... [with] deprecated code removed and third-party dependencies updated."

Drupal 9 updates Drupal’s underlying dependencies like Symfony 4.4 and Twig 2, removes several deprecated API functions in favor of better options, and allows everyone running Drupal 8.8+ an easy upgrade path to Drupal 9 and beyond.

 Early Access Only - Not for Production Use

Do not use this Early Access release for your live site.

Currently, Drupal 9 is only available on Pantheon as an Early Access feature release. This means the feature is currently in active development and is intended for testing and evaluation purposes only.

Pantheon engineers are rolling out changes often, and easy updates from Drupal 9 Early Access are not guaranteed.

Sites may be deleted without notice.

Test Drupal 9 with a fresh installation using either our Integrated Composer Early Access program or Build Tools:

BenefitsConsiderations
Integrated Composer• Composer automatically runs on Pantheon
• Lean repository (vendor dir not in git)
• Integrated 1-click Pantheon updates & Custom Upstreams
• Early Access only
• Requires a unique site-name prefix
Build Tools• Composer automatically runs via CI
• Pull request-based workflow
• Supports automated testing
• Requires 3rd-party CI
• Terminus required
• Composer updates happen outside the 1-click Pantheon Dashboard

If you're not ready to create a new site yet, you can also check an existing site's compatibility to upgrade. Once you're ready, test-upgrade an existing Pantheon Drupal 8 site to Drupal 9.

Create a New Drupal 9 Site with Integrated Composer

Join our Early Access program to test out both Drupal 9 and Pantheon Integrated Composer support.

  1. Fill out this form to get access to our “Drupal 9 Early Access” group. Once you are added, you'll have access to a new "Drupal 9 Early Access" site creation option from your Pantheon Dashboard.

  2. Spin up a new "Drupal 9 Early Access" site with ic-demo-2020- as a site name prefix (i.e., ic-demo-2020-d9-preview). This will give you the Drupal 9 starter codebase and will automatically trigger a Composer install and git commit on site creation.

Create a Drupal 9 Site with Continuous Integration via Build Tools

Want to regularly develop with continuous integration (CI) and automated tests? Leverage Pantheon’s Build Tools to get up and running quickly with a CI workflow to build, test, and deploy Drupal 9.

These steps use GitHub and CircleCI:

  1. Install the Terminus Build Tools plugin.

  2. Enable support for custom CircleCI Orbs in your Organizational settings. In CircleCI, click Settings, then Security, and under Allow Uncertified Orbs click Yes:

    Allow Uncertified Orbs in CircleCI

  3. Use Terminus to create a new Drupal 9 site, complete with a customizable CI workflow. Remember to replace <NEW-SITE-NAME> in this example with a name for your new site, and optional-pantheon-organization-name with your choice (if any):

    terminus build:project:create "pantheon-systems/drupal-9-with-circleci-orb:dev-master" <NEW-SITE-MACHINE-NAME> --stability=dev --team='optional-pantheon-organization-name'

Test an Existing Drupal Site for Drupal 9 Upgrade Compatibility

  1. Review the How to Prepare Your Drupal 7 or Drupal 8 Site for Drupal 9 guide on Drupal.org.

  2. Use the Upgrade Status Drupal 8/9 module to generate a full report of your site’s compatibility.

  3. Check out Acquia’s Drupal 9 Deprecation Status Upgrade Tracker for information about Drupal 9 support for contributed Drupal modules and themes.

Update Deprecated Code for Drupal 9 Compatibility

Drupal 9 has deprecated a number of different functions and APIs in favor of better options going forward.

For example, node_load() was replaced in Drupal 9 with Node::load resulting in this change needed:

Drupal 8:

$node = node_load(1);

Drupal 9:

use \Drupal\node\Entity\Node;
$node = Node::load(1);

Since most of these changes are relatively minor, there are a number of deprecation checking and correction tools available.

Test-upgrade an Existing Pantheon Drupal 8 Site to Drupal 9

Are you already running a Pantheon site using our Drupal 8 upstream? Use our Multidev feature to test Drupal 9 in a new branch.

  1. Clone your Drupal 8 site’s codebase to your computer and change directory to it. You can create a new Drupal 8 site or use an existing Drupal 8 site:

    git clone <url for site repo>
    cd <site-name>
  2. Use Terminus to create a Multidev environment called d9-preview on your Drupal 8 site for testing:

    terminus multidev:create <site>.<env> d9-preview
  3. Create and switch to a new testing branch in the Drupal 8 codebase:

    git checkout -b d9-preview
  4. Pull the 9.0.0 tag into your codebase:

    git pull https://github.com/pantheon-systems/drops-8.git 9.0.0
  5. Modify the pantheon.yml file to specify PHP 7.3 or newer and Drush 8:

    pantheon.yml
    php_version: 7.4
    drush_version: 8

    Note that Drupal 9 is not yet compatible with the pre-installed Drush 10.

  6. Commit and push your changes:

    git commit -am "test upgrade to Drupal 9"
    git push origin d9-preview
  7. Run update.php on your new Drupal 9 site:

    terminus drush <site>.<env> updatedb

FAQ

Pantheon Drupal 8 Modules Being Upgraded to Drupal 9

Module NameDrupal 8 Version?Drupal 9 Version?
Pantheon Advanced Page CacheYesYes
Search API PantheonYesNot yet

Does Pantheon have plans to upgrade MariaDB?

Yes, Pantheon has plans to upgrade MariaDB platform-wide before September 30, 2020.

Where can I report an issue?

Drupal 9 issues can be reported on GitHub: