This is a patch (bugfix) release of Drupal 9 and is ready for use on production sites. Learn more about Drupal 9.
Drupal 9.4.x will receive security coverage until June 2023.
If you are upgrading from Drupal 8, read upgrading a Drupal 8 site to Drupal 9, 9.0.0 release notes, and the 9.4.0 release notes before upgrading to this release.
Important update information
The Quick Edit integration for Layout Builder is now provided by the Quick Edit module. This has been backported to 9.4.2 to retain as much parity as possible with the contributed version of Quick Edit.
Composer 2.2.0 introduced a new security feature that requires Composer projects to authorize plugins. This change means that Composer commands to install and update Drupal projects will fail unless either the required plugins are authorized in the project configuration or the user manually replies "
y
" to a prompt to authorize the plugin. The prompt can break continuous integration and deployment workflows, so it is recommended that projects authorize core's required plugins (and projects using development dependencies should authorize development plugins).This release configures
drupal/recommended-project
to authorize core's required and development plugins by default. Existing projects may also need to update their configuration to authorize these plugins. For more information, review Composer 2.2+ authorized plugins.
Known issues
- #3285724: [regression] Drupal 9.4 breaks BC of \Drupal\Driver\* overriding core drivers during installation and parsing connection URLs
- #3290924: [regression] With Drupal 9.4, can no longer call Database::getConnection() from within settings.php due to driver classes not yet in autoloader
- #3290936: Argument #1 ($database) must be of type Drupal\Core\Database\Driver\mysql\Connection, Drupal\mysql\Driver\Database\mysql\Connection given
- #3290992: Recursion tracker doesn't work
- #3294299: Regression in functional test performance with a large number of modules
Search the issue queue for known issues.
All changes since 9.4.1
- Issue #3294205 by shaal, NickDickinsonWilde, Spokje, alexpott, xjm, larowlan, longwave: Composer v2.2 prompts to authorize another plugin when stability=dev
- Revert "Issue #3248078 by uri_frazier, antojose, alisonjo315, rootwork: Update 8.x specific documentation URLs"
- Issue #3225381 by mikelutz, jrockowitz, yivanov, Spokje, larowlan, longwave, parkh, AdamPS, gcb: PHP Notice logged when switching "Configuration type" in single configuration export screen
- Issue #3248078 by uri_frazier, antojose, alisonjo315, rootwork: Update 8.x specific documentation URLs
- Issue #3259671 by alexpott, _KASH_, Lendude: Slow query in titleQuery Vid.php
- Issue #3255749 by Spokje, alexpott, shaal, longwave, cilefen, AaronMcHale, benjifisher, Mile23: Composer v2.2 prompts to authorize pluginsile
- Issue #3291303 by Spokje: "Wierd" assertion in \Drupal\Tests\Views\Functional\Wizard\BasicTest
- Issue #3031492 by longwave, tedbow, Spokje: Remove @todo in InlineBlockEntityOperations constructor
- Issue #3291295 by Ishani Patel, Webbeh: Incorrect ckeditor5.plugin.media_media schema label
- Issue #3292850 by tim.plunkett, chrisfromredfin, leslieg, xjm: Add Project Browser intitative to MAINTAINERS.txt
- Issue #3264145 by ankithashetty, yogeshmpawar, ravi.shankar, mrinalini9, neclimdul, mondrake, longwave, daffie: Fixing missing use statement in ConfigOverrider test class
- Issue #3239935 by mondrake, Spokje, alexpott, andypost, daffie: Refactor ToolkitGdTest
- Issue #2896993 by cburschka, andypost, mxr576, jedihe: Decorated services crash on serialization
- Issue #3291830 by webflo: Fix PSR4 path for database driver
- Issue #3293051 by Spokje, longwave: \Drupal\Core\Composer\Composer::preAutoloadDump contains duplicate if statement
- Issue #3270556 by quietone: Handle NULL for max_filesize_per_file in d6\FieldInstanceSettings::convertSizeUnit
- Issue #3070747 by immaculatexavier, herved, alexpott, yoruvo: Profile paths are not updated after moving them to other directories
- Issue #3293114 by uri_frazier, mikelutz, Spokje: Fix var tag on recent commit
- Issue #3284010 by _shY, mherchel, Abhijith S: "Create content" link within Olivero's "Getting started" page doesn't account for base directory
- Issue #3291317 by immaculatexavier, mherchel, Janner, longwave: Views Mini Pager's next button labeled "Previous" for screen readers in Olivero
- Issue #2987089 by askibinski, andypost, alexpott: Remove views.module's direct use of the _serviceId property
- Issue #3291283 by nod_, jsutta, longwave, cilefen, alexpott, Gabbia998, ptomulik: Restore missing backbone-min.js.map
- Issue #3292413 by Spokje: Update deprecation error made in [#3264633] from 9.5.0 to 9.4.2
- Issue #3285230 by xjm, benjifisher, phenaproxima, mikelutz, quietone: Migrate's DownloadFunctionalTest:: testExceptionThrow() is failing on guzzlehttp/psr7 2.3.0
- Issue #3264633 by mstrelan, Spokje, dww, larowlan, tim.plunkett, xjm: Remove \Drupal\layout_builder\QuickEditIntegration and refactor it so that quickedit contrib provides the integration with layout builder
- Issue #3291877 by alexpott, longwave: Fix \Drupal\FunctionalTests\Installer\InstallerTestBase tests to not test drupal.org