Install
To start a new Drupal project with version 9.2.0-alpha1@alpha:To update your site and all dependencies to the latest version of Drupal:
To update your site to this specific release:
Using Composer to manage Drupal site dependencies
Downloads
Release notes
This is an alpha release for the next minor (feature) release of Drupal 9. Alphas are good testing targets for developers and site builders who are comfortable reporting (and where possible, fixing) their own bugs. Alpha releases are not recommended for non-technical users, nor for production websites. More information on alpha releases.
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.2.x contains new features, and should be the target for new site development. Drupal 8.9.x will continue to have security support until November 2021. Drupal 9.1.x will continue to have security support until December 2021. Security support for 9.0.x ends with the release of 9.2.0 on June 16.
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.
Beta testing program
The Drupal Association and the Drupal core maintainers are partnering with agencies and site owners in an official beta testing program for Drupal core minor releases. The program aims to identify and minimize regressions in minor releases. Participating in the program is a way to contribute to the Drupal project and will be credited accordingly.
Important update information
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.
Upgrading from Drupal 7
Drupal 7 users can continue to migrate to Drupal 8.9, or 9.2 directly. The upgrade path for multilingual sites is stable in both Drupal 8 and 9.
Important changes for this release
Changes to site-owner-managed files
-
The web.config file used by Microsoft's IIS server has been updated to remove unnecessary configuration. The commented out
Erase HTTP_PROXYrule has been removed. PHP 7.3 and up is not vulnerable and this rule can be removed if you have enabled it.
Other
- Drupal now uses PHPs built-in session generation. The change record details how custom and contributed code that relies on the session ID should be updated.
- Configuration files with multi-line strings will be exported using Symfony's multi-line literal block formatting option, improving readability and diffs. This will mean a configuration diff the first time a configuration file is re-exported.
- If you limit allowed extensions and want dangerous files to be uploaded and renamed, you must explicitly allow txt file uploads. This is mandated when configuring file fields through the user interface.
-
Views renamed the default display from "Master" to "Default". This does not affect existing Views, only ones created after this change. Additionally the setting to hide/show the default display had its machine name changed from
ui.show.master_displaytoui.show.default_display. Review the change record for more information. -
Drupal's README now focuses on shepherding new contributors into the Drupal ecosystem and uses the Markdown format. The usage information previously contained in the
README.txtfile has been extracted to a newly createdUSAGE.txtfile in thecoredirectory. Sites that are using thedrupal/core-composer-scaffoldplugin to excludeREADME.txtshould update their configuration to excludeREADME.mdinstead.
Dependency updates
Deprecated, changed, and removed dependencies
- The Goutte testing browser has been deprecated and replaced with a new mink driver client, using Guzzle. This should not require any changes to browser tests unless you are interacting with specific Goutte features. Review the change record on the Goutte driver replacement for more information.
-
Drupal has replaced the
behat/mink-browserkit-driverdependency withfriends-of-behat/mink-browserkit-driverfor PHP 8 and Symfony 5 compatibility. -
The tabbable library has been added to replace the functionality provided by for jQuery UI's:tabbable selector. A shim has been provided so all existing of uses of the
:tabbableselector now use tabbable to query tabbable elements.
. See the change record for more information.
Added dependencies
- The core/once library, a standalone library that offers the same benefits as core/jquery.once but without the jQuery dependency, has been added to Drupal core.
Updated dependencies
- #3187025: Update dependencies for Drupal 9.2
+------------------------------+---------+---------+ | Production Changes | From | To | +------------------------------+---------+---------+ | composer/semver | 3.2.2 | 3.2.4 | | egulias/email-validator | 2.1.22 | 2.1.24 | | laminas/laminas-stdlib | 3.3.0 | 3.3.1 | | symfony/console | v4.4.16 | v4.4.17 | | symfony/debug | v4.4.16 | v4.4.17 | | symfony/dependency-injection | v4.4.16 | v4.4.17 | | symfony/error-handler | v4.4.16 | v4.4.17 | | symfony/event-dispatcher | v4.4.16 | v4.4.17 | | symfony/http-foundation | v4.4.16 | v4.4.17 | | symfony/http-kernel | v4.4.16 | v4.4.17 | | symfony/process | v4.4.16 | v4.4.17 | | symfony/routing | v4.4.16 | v4.4.17 | | symfony/serializer | v4.4.16 | v4.4.17 | | symfony/translation | v4.4.16 | v4.4.17 | | symfony/validator | v4.4.16 | v4.4.17 | | symfony/yaml | v4.4.16 | v4.4.17 | +------------------------------+---------+---------+ +------------------------------------+---------+---------+ | Dev Changes | From | To | +------------------------------------+---------+---------+ | composer/composer | 2.0.2 | 2.0.8 | | composer/spdx-licenses | 1.5.4 | 1.5.5 | | composer/xdebug-handler | 1.4.4 | 1.4.5 | | doctrine/instantiator | 1.3.1 | 1.4.0 | | drupal/coder | 8.3.10 | 8.3.11 | | easyrdf/easyrdf | 1.0.0 | 1.1.1 | | myclabs/deep-copy | 1.10.1 | 1.10.2 | | phar-io/manifest | 1.0.3 | 2.0.1 | | phar-io/version | 2.0.1 | 3.0.3 | | phpunit/php-code-coverage | 7.0.10 | 7.0.14 | | phpunit/php-file-iterator | 2.0.2 | 2.0.3 | | phpunit/php-timer | 2.1.2 | 2.1.3 | | phpunit/php-token-stream | 3.1.1 | 4.0.4 | | phpunit/phpunit | 8.5.8 | 8.5.13 | | sebastian/code-unit-reverse-lookup | 1.0.1 | 1.0.2 | | sebastian/comparator | 3.0.2 | 3.0.3 | | sebastian/diff | 3.0.2 | 3.0.3 | | sebastian/environment | 4.2.3 | 4.2.4 | | sebastian/exporter | 3.1.2 | 3.1.3 | | sebastian/global-state | 3.0.0 | 3.0.1 | | sebastian/object-enumerator | 3.0.3 | 3.0.4 | | sebastian/object-reflector | 1.1.1 | 1.1.2 | | sebastian/recursion-context | 3.0.0 | 3.0.1 | | sebastian/resource-operations | 2.0.1 | 2.0.2 | | sebastian/type | 1.1.3 | 1.1.4 | | seld/jsonlint | 1.8.2 | 1.8.3 | | sirbrillig/phpcs-variable-analysis | v2.9.0 | v2.10.0 | | symfony/browser-kit | v4.4.16 | v4.4.17 | | symfony/css-selector | v4.4.16 | v4.4.17 | | symfony/dom-crawler | v4.4.16 | v4.4.17 | | symfony/filesystem | v4.4.16 | v4.4.17 | | symfony/finder | v4.4.16 | v4.4.17 | | symfony/lock | v4.4.16 | v4.4.17 | +------------------------------------+---------+---------+ - ChromeDriver has been updated from 86.0.0 to 87.0.5.
- Modernizr has been updated to v3.11.7
- Underscore.js has been updated to 1.13.1
Changes to coding standards
The following coding standards checks have been enabled in core:
Drupal.Semantics.RemoteAddress
Drupal.Classes.PropertyDeclaration
Drupal.Commenting.DocComment.ParamGroup
Generic.Formatting.DisallowMultipleStatements
Squiz.WhiteSpace.ScopeKeywordSpacing
Drupal.Commenting.DocCommentAlignment
Drupal.Commenting.FunctionComment.ParamMissingDefinition
Drupal.Commenting.FunctionComment.InvalidTypeHint
Drupal.Commenting.FunctionComment.IncorrectTypeHint
Drupal.Commenting.HookComment
Drupal.Classes.UseGlobalClass
Drupal.Commenting.DocComment.TagGroupSpacing
Drupal.Commenting.DocComment.ShortFullStop
Known issues
Search the issue queue for known issues.
All changes since 9.1.0
https://www.drupal.org/project/issues/search/drupal?project_issue_follow...