Install

To start a new Drupal project with version 9.1.0-rc2@RC:

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 16.93 MB
MD5: 7739b43352b53907d31cdcd4eabb96e5
SHA-1: fb85b58377fd53e79826ad83119ffd44c85c2e3d
SHA-256: 11cbb79ecbe5f90ae9ee77aded3e9e91e68952dae175170b44aac61b71faa051
Download zip 28.37 MB
MD5: 6d2dfcc438947e9f44849a35154696b8
SHA-1: 7cfa4b495f0a2b3538e7fb3c9e6bfbb1889ce869
SHA-256: 8c7388b79254b09cfef948ad9a256ae08dce0e30c8b0d7f6ad793069e4f71202

Release notes

This is a release candidate for the next minor version (feature release) of Drupal 9. Release candidates are not supported for production sites, but they are intended for widespread testing in preparation for the upcoming stable release. More information on release candidates.

This minor release provides new improvements and functionality without breaking backward compatibility (BC) for public APIs. Note that there may be changes in internal APIs and experimental modules that require updates to contributed and custom modules and themes per Drupal core's backwards compatibility and experimental module policies.

Drupal 9.1.x contains new features, and should be the target for new site development. Drupal 9.0.x will continue to have security support until June 2021. Drupal 8.9.x will continue to have security support until November 2021.

Regardless of which version you choose now, features will only be added to Drupal 9 minor releases, so plan to adopt Drupal 9 this year so that you can easily update to Drupal 9.2 and later.

Important update information

If you are updating from 9.0.x or earlier, also read:

Updating from Drupal 8

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

Sites on 8.7 or earlier must update to either 8.8 or 8.9 before updating to Drupal 9 as all Drupal 8 update functions from before Drupal 8.8.0-rc1 were removed from Drupal 9. We recommend updating to 8.9.x, as well as updating all contributed modules, before updating to any Drupal 9 release.

Note: The migration paths from Drupal 6 and Drupal 7 to Drupal 9 will remain supported throughout Drupal 9's release cycle.

Note for users of the Experimental Workspaces module

Existing Drupal 8 sites using the experimental Workspaces module must update to at least Drupal 8.8.2 before updating to Drupal 9. (This is due to a required data integrity fix.) Remember that Workspaces is currently in beta status and is not intended for production.

Upgrading from Drupal 7

Drupal 7 users can continue to migrate to Drupal 8.9, or migrate to 9.0 or 9.1 directly. The upgrade path for multilingual sites is stable in Drupal 8.9, 9.0 and 9.1!

PHP 8 compatibility changes and dependency updates since 9.1.0-rc1

Drupal 9.1.0 is fully compatible with PHP 8.0! Report any issues related to PHP 8 in the Drupal core issue queue.

The following laminas components are updated for PHP 8 compatibility:

  • laminas-diactoros to 2.5.0
  • laminas-escaper to 2.7.0
  • laminas-feed to 2.13.0

While these are minor updates from Laminas, they are not known to contain any disruptive changes. \Laminas\Diactoros\Stream will now throw a \Laminas\Diactoros\Exception\RuntimeException instead of an \Laminas\Diactoros\Exception\InvalidArgumentException when used with a non-resource stream, but this is not likely to affect Drupal sites or custom code.

Known issues

  • The PECL uploadprogress library is not yet compatible with PHP 8. If you are relying on this in PHP 7.4, you may want to wait for uploadprogress to release a PHP 8 compatible version first. Support for PHP's built-in upload progress is being worked on in #1561866: Add support for built-in PHP session upload progress.

Search the issue queue for known issues.

All changes since 9.1.0-rc1

  • #3180207 by andypost, alexpott, Gábor Hojtsy, Mixologic, xjm, catch: Update laminas-diactoros, laminas-escaper and laminas-feed for PHP 8 compatibility
  • #3177231 by mherchel, ayushmishra206, kostyashupenko, nitesh624, markdorison, lauriii: Olivero homepage has an empty title block div with an empty H1
  • #3176913 by sarvjeetsingh, mherchel: [Olivero Code Review] Missing @file documentation in block--system-powered-by-block.html.twig
  • #3179150 by komalk, hansa11, Santosh_Verma, Abhijith S, mherchel: H1 tags within Olivero's .text-content CSS class should use sans-serif font
  • #3128815 by mondrake, jungle, sja112, Spokje, shobhit_juyal, jameszhang023, nikitagupta, mrinalini9, xjm, longwave, dww: Replace assert*() involving greater/less comparison operators with assert(Greater|Less)Than(OrEqual)
  • #3184324 by mondrake, longwave: Convert calls to drupalPostForm() that assign return value to a variable
  • #3176200 by msuthars, adityasingh, Pooja Ganjage, ravi.shankar, mondrake, longwave: Remove more uses of t() in assertNoText()
  • #3136406 by Spokje, codersukanta, IJsbrandy, atul4drupal, MahtabAlam, BalajiDS: Argument 1 passed to Drupal\Core\Form\SubformState::createForSubform() must be of the type array, null given
  • #3183712 by idebr, B2F: hook_entity_access $operation description is listed under $account
  • #3168375 by mondrake, manishsaharan29497, longwave: Convert calls to drupalPostForm(NULL, ...) to submitForm
  • #3098281 by greg.1.anderson, alexpott, heddn, Mile23, xjm, jungle, longwave: Ensure that 'composer update' evaluates dependencies using the correct PHP version
  • #3183825 by effulgentsia, alexpott: Use absolute instead of relative paths within the packages.json created in ComposerProjectTemplatesTest
  • #3183420 by alexpott, catch: Override \Behat\Mink\Driver\Selenium2Driver::uploadFile() in DrupalSelenium2Driver

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: 25 Nov 2020 at 19:24 UTC
Last updated: 26 Nov 2020 at 03:25 UTC
Bug fixes
Insecure
Unsupported

Other releases