Install
To start a new Drupal project with version 9.4.8: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
20.62 MB
MD5: 2dd8931d3a4eac19c777c85af41b88f9
SHA-1: 69359c041d5ab3de7ac7ae08a0ef92802949bc64
SHA-256: 48752d6676740f983f79319c236aa09efdc3ad82cf496bc1a89ce349b2ad88db
Download zip
33.15 MB
MD5: a8b25a1a4e954ee644cb5a62ff1c18f7
SHA-1: 4f2e486b78c9a30178ae0bbe83f5147a6160d05b
SHA-256: f5d1f6c15700768262b60aa657b5060bdec809dc5aff33b1ccdf6402b15d400d
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.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
-
CKEditor 5 has been updated to version 35.1.0.
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
Search the issue queue for known issues.
All changes since 9.4.7
- Issue #3250683 by beatrizrodrigues, Tauany Bueno, ravi.shankar, joachim, quietone: MigrateException documentation for class properties should link to where values are defined
- Issue #3165010 follow-up: Using the layout builder discard changes button should ignore any input and skip validation
- Issue #3121157 by apaderno, neelam_wadhwani, jungle, Lendude, alexpott, bnjmnm: Small correction needed in ThemeInstallerInterface::uninstall() docblock
- Issue #3165010 by dpi, acbramley, tim.plunkett, larowlan: Using the layout builder discard changes button should ignore any input and skip validation
- Issue #3308915 by smustgrave, longwave: Fix test performance of Drupal\Tests\workspaces\Functional\WorkspacesUninstallTest
- Issue #3313833 by Wim Leers, longwave, alexpott: Make it easy to run only tests for one specific core module
- Issue #3300246 by mglaman, Wim Leers: Allow other CKEditor 5 plugins to rerender drupal-media when their attribute changes
- Issue #2993165 by kkasson, tatianag, Spokje, mpdonadio, xurizaemon, raman.b, wombatbuddy, pooja saraah, tannguyenhn, VladimirAus, ranjith_kumar_k_u, jannakha, pameeela: Date Only field shows incorrect default value when UTC date is different than user's date
- Issue #2842141 by hchonov: Document that more specific hooks might be called before the primary hook depending on the module names
- Issue #3265574 by mondrake: Convert remaining assertions involving use of xpath to WebAssert, where possible
- Issue #3260227 by mondrake: Move driver specific database Unit tests to their modules
- Issue #3307468 by darvanen: Improve Batch API $context['sandbox'] documentation
- Issue #3310510 by igorbarato, Anchal_gupta: Harden error logging of OEmbed thumbnail fetching logic (YouTube errors contain special characters)
- Issue #3308449 by owenbush: CategorizingPluginManagerTrait::getSortedDefinitions() sometimes returns plugins in the incorrect order if they have categories or labels translated
- Issue #3006812 by NickDickinsonWilde, Ankit.Gupta: ViewsExecutable->exposed_widgets has wrong variable type in definition
- Issue #3202665 by danflanagan8, Ratan Priya, rupertj, longwave, smustgrave, thursday_bw: "A(n) object was thrown while attempting to stub." Hard to debug migration message
- Issue #3310760 by poker10, Wim Leers: Broken issue links in @todos
- Issue #3284254 by Wim Leers, smustgrave, nod_: HTMLRestrictions should not allow because that is equivalent to
- Issue #3291520 by sardara, Ratan Priya, alexpott, smustgrave: Incorrect label in taxonomy glossary for terms that start with zero
- Issue #3119786 by danflanagan8, tim.plunkett, JordiK, Berdir: Default values are not displayed for image fields placed in Layout Builder
- Issue #2875987 by raman.b, smustgrave, ericgsmith, anushrikumari, Lendude: Form alter hook called twice for views forms without view arguments
- Issue #3309173 by Arantxio, Pracheth, immaculatexavier, sittard, daffie, drumm: MySQL Module - Help page directs user to a 404 (page not found) and a number of other modules as well
- Issue #2617330 by dagmar, mfb, pradhumanjainOSL, Ratan Priya, fgm, alexpott, dawehner: LogMessageParser::parseMessagePlaceholders() needs to switch bang placeholder to colon placeholder
- Issue #2710427 by smustgrave, longwave, akhoury, alexpott, ChaseOnTheWeb, Spokje, Wim Leers, aby v a, frob, alison, catch, smulvih2, pameeela, ranjith_kumar_k_u, vsujeetkumar, becassin: Broken "Allowed Tags" updating: after all values for an attribute are allowed, it should not be overridden to allow only certain attribute values
- Issue #3296987 by Yujiman85, lucassc, gquisini, diegors, joachim, cilefen: CacheableDependencyInterface::getCacheMaxAge does not document \Drupal\Core\Cache\Cache::PERMANENT
- Issue #3283776 by Wim Leers, lauriii: Make CKEditor5PluginDefinition::getElements() consistent with CKEditor5PluginDefinition::get*()
- Issue #3285054 by lauriii, Wim Leers: Add ckeditor5-stylesheets: false to Claro and Olivero (and fix it)
- Issue #3306216 by bnjmnm, Wim Leers, Reinmar: Contrast perception issues with icons including low-opacity fills
- Issue #3280343 by bnjmnm, pooja saraah, Wim Leers: Audit of CKEditor 5 @todo items
- Issue #3222756 by nod_, Wim Leers, bnjmnm, scott_euser, Akhildev.cs, lauriii, catch: Allow using images from external source
- Issue #3281341 by andy-blum, Sakthivel M, pallavisk, mherchel: Olivero's blockquote pseudo-element decoration *sometimes* does not display properly
- Merge 9.4.7, resolve merge conflicts, and update lockfile and dev versions.
- Issue #3312001 by stijndmd, ravi.shankar, davidjguru, longwave, catch: Race condition with automatic deploy steps on ConfigImporter
- Issue #3270734 by Wim Leers, longwave, andregp, bnjmnm, lauriii: Update Editor + CKEditor 5 module to not use CKEditor 4 in tests
- Issue #3311476 by nlisgo, Spokje, xjm, hb76: Skip DownloadTest on SQLite
- Issue #3268306 by lauriii, Wim Leers, catch, Dom.: [GHS] Custom/unofficial HTML tags not retained: , ,
- Issue #3294908 by nod_, Wim Leers, DanielVeza: Configuration overlaps between Styles and other CKE5 plugins
- Issue #3231336 by Wim Leers, lauriii, bnjmnm: Simplify HtmlRestrictions and FundamentalCompatibilityConstraintValidator now that "forbidden tags" are deprecated
- Issue #3294695 by daffie, longwave, mkalkbrenner, pandaski: Drupal 8 BC for database driver namespace fails for replicas
- Issue #3306153 by lauriii, Wim Leers, xjm, bnjmnm: Update CKEditor 5 to 35.1.0
- Issue #3060716 by martin107, Lendude, quietone: EntityListBuilderTest: @coversDefaultClass is incorrect
- Issue #3309719 by solideogloria: Incorrect namespace in comment in EntityAutocomplete.php
- Issue #3166561 by Matroskeen, ravi.shankar, andregp, mohit_aghera, golddragon007, ranjith_kumar_k_u: Comment being deleted instead of reassigned to Anonymous user