Install
To start a new Drupal project with version 9.0.10: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 a patch (bugfix) release of Drupal 9 and is ready for use on production sites. Learn more about Drupal 9.
Drupal 9.0.x will receive security coverage until June 16, 2021 when Drupal 9.2.0 is released. It will no longer receive bugfix releases now that Drupal 9.1.0 has been released
If you are upgrading from Drupal 8, read upgrading a Drupal 8 site to Drupal 9 and the 9.0.0 release notes before upgrading to this release.
If your site is on 8.8.x or earlier, you may wish to upgrade to Drupal 8.9.11 instead. Regardless of which version you choose now, features will only be added to Drupal 9 minor releases, so plan to adopt Drupal 9 as soon as possible so that you can easily update to Drupal 9.2 and later.
Important update information
PHP 8 was released recently. Drupal 8 and Drupal 9.0 are not compatible with PHP 8. Update to Drupal 9.1 for full PHP 8 support. See the change record for more information, including issues the contributed code and custom code may face.
Known issues
Search the issue queue for known issues.
All changes since Drupal 9.0.9
- Issue #3138795 by quietone, sja112, jungle, longwave: d6_term_node_revision references non-existent migration
- Resolve merge conflicts, update lockfile, and merge 9.0.9.
- Issue #3160015 by quietone, mikelutz: Don't remove all slashes from filepath in file.php
- Issue #3126746 by danflanagan8, Deepak Goyal, Neslee Canil Pinto, geek-merlin, tim.plunkett: LayoutBuilderHtmlEntityFormController breaks decoration
- Issue #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
- Back to dev.
- Merged 9.0.8.
- Issue #3118591 by alexpott, xjm, chesnut: Datetime-related test failures on PostgreSQL 12
- Issue #268909 by maartenvg, raman.b, paulocs, lyricnz, Abhijith S, webchick, Freso, chx, pameeela: "0" can't be used a path alias, but no error is shown
- Issue #2851504 by alexpott, vomiand, Vj, BalajiDS, cilefen, tamasd: "Illegal choice 0 in Book element" when switching the book outline field from anything to "- None - "
- Issue #3179875 by greg.1.anderson, longwave, catch, Mixologic: Path repositories need to be listed first for Composer 2
- Issue #3181173 by longwave, pefferen, JD_1, larowlan: Drupal 8.9.7 breaks Book Settings Form Validation
- Issue #3156651 by alexpott, dww, pfrenssen, Kristen Pol, xjm, andypost, Gábor Hojtsy, bradjones1: Prevent Drupal 8.9 and 9.0 from being installed on PHP 8
- Issue #3014969 by TR, longwave, Abhijith S, joachim, shimpy: Unescaped "@" in ContextProviderInterface doc comment
- Issue #3179318 by dww: Always use HTTPS for fetching translations
- Issue #3132426 by alexpott, dww, GuyPaddock, catch, VladimirAus: Notice: Undefined index: title in Drupal\update\ProjectSecurityRequirement
- Issue #3173004 by beram: Incorrect typehint documentation for FieldItemInterface::view() and FieldItemListInterface::view(): $display_options could also be a string
- Issue #3173891 by shetpooja04, meena.bisht: Remove unused variable $assert_session in UpdateScriptTest.php, system module
- Issue #3177557 by alexpott, andypost, dawehner: \Drupal\error_test\Controller\ErrorTestController::generateWarnings() notice is not a notice in PHP 8
- Issue #3178039 by anmolgoyal74, Matroskeen, xjm, Kristen Pol, alvar0hurtad0: Correct typo "is has" in a few code comments and tests in core
- Issue #2937844 by andypost, ravi.shankar, Spokje, mrinalini9, Deepak Goyal, RoSk0, daffie, borisson_, xjm, tstoeckler: [8.9/9.0 backport] Fix 'Squiz.PHP.NonExecutableCode' coding standard
- Issue #3040274 by sarvjeetsingh, ayushmishra206, rishabhthakur, alexpott, theotherlondon, kkalaskar, longwave, kiamlaluno, amarphule, ravi.shankar, gringoinc, quietone, larowlan, davidhernandez, tim.plunkett: [backport] Fix grammar, spelling, and style of the code comments in FormBuilder::prepareForm()
- Issue #3178273 by longwave: BasicAuthTestTrait::basicAuthPostForm() does not work
- Issue #3069026 by anmolgoyal74, Pooja Ganjage, mikelutz, longwave, alexpott, xjm: Fix Call to deprecated method addAutowiringType() of class Symfony\Component\DependencyInjection\Definition in YamlFileLoader
- Issue #3037436 by alexpott, jonathan1055, Wim Leers, catch, tedbow, longwave: [random test failure] Make QuickEditIntegrationTest more robust and fail proof
- Issue #3177765 by klausi: ListInterface::first() return value is documented wrong
- Issue #3157963 by shailja179, ravi.shankar, kiamlaluno, davidhernandez, joachim: The link given in FormState::setRedirect() for the page explaining what values are available for $options param takes to a class documentation page
- Issue #3176652 by Erik Frèrejean: Inline documentation references removed function `drupal_installation_attempted`
- Issue #3177477 by Gábor Hojtsy, pameeela, Dries: Promote pameeela to non-provisional committer facilitator
- Issue #3176036 by paulocs, raman.b, longwave: Replace "does" to "do" in ProfileFieldCheckRequirementsTest.php
- Back to dev.
- Drupal 9.0.7
- Issue #3174190 by anmolgoyal74: Repetive 'using' word in DbImportCommand.php
- Issue #3040181 by paulocs, quietone, snehalgaikwad, ravi.shankar, acbramley, alexpott, mindbet, ultrabob, bthompson1, Lendude, lapaev, pameeela, catch: Unpublished books appear in the list of books at /book
- Issue #3175395 by NitinLama: Remove unused #html property from DateTimeFormatterBase::buildDateWithIsoAttribute
- Issue #3175112 by alexpott, longwave: hold_test module creates files in incorrect place leading to possible random errors
- Issue #2223967 by jofitz, LKS90, AdamPS, sja112, shaktik, pminf, Berdir, mxr576, bmcclure, Manuel Garcia, naveenvalecha, Gogowitsch, andypost, alexpott, jonathanshaw, claudiu.cristea, greggles: Do not decode a contact message twice