Install
To start a new Drupal project with version 10.4.0: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 maintenance minor release of Drupal 10 and is ready for use on production sites. Learn more about Drupal 10 and the Drupal core release cycle.Maintenance minors are recommended for sites that prefer the minimum changes between releases.
This maintenance minor provides the best forward-compatibility with Drupal 11. It includes important dependency updates and API additions.. It does not not break backward compatibility (BC) for public APIs. This is according to Drupal core's backward compatibility and experimental module policies.
Drupal 10.4.x will receive security support until December 2025. Drupal 10.3.x will continue to receive security support until June 2025.
Drupal 10.2.x security support has ended. Sites on any Drupal version prior to 10.3.x should upgrade to a supported release as soon as possible.
Important update information
API and behavior changes
-
Assets are now ordered by dependencies instead of relying on the order that libraries were attached to the page. This is a bug fix that resolves various issues with asset handling. However, there may be side effects in some situations (for example, if a library specifies an individual asset weight that conflicts with its dependencies). Module or theme authors should review their projects for library dependencies that specify custom weights and evaluate any that do to determine if they are affected by this change.
-
Using Composer is the only way to safely and correctly add new code to a Drupal installation. Therefore, the following pages (which supported installing modules and themes via file uploads) have been removed without replacement:
- The "Add new module" page at
/admin/modules/install - The "Add new theme" page at
/admin/theme/install - The "Add new module or theme" page at
/admin/reports/updates/install
- The "Add new module" page at
- The Page Cache and Dynamic Page Cache response headers have been improved to include more details about the cacheability.
PHP dependency changes
PHP development dependency changes
-
Composer is updated to 2.8.1.
-
OpenTelemetry is updated to 1.1.0. This adds additional development dependencies including the
tbachert/spiComposer plugin. When this package is installed by Composer you may be asked whether to trust this plugin; unless you are using OpenTelemetry performance testing in Drupal you can safely answer "no" to this question.
Frontend (CSS and JavaScript) production dependency changes
-
CKEditor is updated to 44.0.0.
-
jQuery UI is updated to 1.14.0
Known issues
Search the issue queue for known issues.
All changes since Drupal 10.4.0-rc1
- Issue #3493146 by spokje, longwave, catch, quietone, smustgrave: Update all JavaScript dependencies which cause no changes
- Issue #3493182 by tim.plunkett, catch, lauriii: Block visibility settings have summary duplicated in the title
- Issue #3493141 by spokje, quietone: Bump cspell to 8.16.1
- Issue #2962753 by ivnish, asawari, sagarmohite0031, phenaproxima, smustgrave, longwave, pameeela, sime, joelpittet, quietone: Remove oEmbed security warning
- Issue #3493287 by phenaproxima, alexpott, longwave, tim.plunkett: The default content importer should handle Layout Builder section data
- Issue #3456417 by eugene bocharov, pablo_pukha, smustgrave, oily, andypost: [regression] DateHelper::dayOfWeekName() returns untranslated name
- Issue #3489022 by mondrake, larowlan, catch, el7cosmos, bbrala, alexpott, fjgarlin, longwave, xurizaemon, rosk0, poker10, mstrelan, nick_schuch: Remove drupalci.yml
- Issue #2533756 by quietone, jhodgdon, xjm: Revisit large numbers of @see in text element docs
- Issue #3480855 by mlncn, akulsaxena, smustgrave: Update lifecycle link for sdc
- Issue #3490710 by mfb, catch, spokje: Catch potential exception when calling Request::create() in PathBasedBreadcrumbBuilder
- Issue #3487488 by kim.pepper, mondrake, dakwamine, smustgrave: ExtensionMimeTypeGuesser::guessMimeType must support file names with "0" (zero) in the extension parts like foo.0.zip
- Issue #3488005 by spokje, nod_, longwave: Update stylelint* to latest releases
- Issue #3490183 by spokje, andypost: Update Composer dependencies for 10.4.0
- Issue #3463226 by quietone, dww, smustgrave, catch, xjm: Use the new equivalent updates API to prevent updates from 10.4.0 to 11.0.0
- Issue #3491256 by amateescu: Improve the exception message for unsupported entity types in a workspace
- Issue #3491464 by longwave, spokje, salmonek, catch: Update CKEditor 5 to 44.0.0
- Issue #3474108 by smustgrave, tomomi, quietone, nod_, spokje: Replace eslint-plugin-jquery with eslint-plugin-no-jquery
- Revert "Issue #3278759 by mxr576, kristiaanvandeneynde, acbramley, danflanagan8, larowlan, bbrala: Access cacheability is not correct when "view own unpublished content" is in use"
- Revert "Issue #3490710 by mfb: Catch potential exception when calling Request::create() in PathBasedBreadcrumbBuilder"
- Issue #3488365 by andypost, longwave: Upgrade twig/twig to 3.15.0
- Issue #3467309 by spokje, smustgrave: Replace abandoned, not working with latest stylelint, leon0399/stylelint-formatter-gitlab with gitlab-formatters/stylelint-formatter-gitlab
- Issue #3482464 by nicxvan, berdir: Backport Hook and LegacyHook Attribute
- Back to dev.