This is a a feature minor release of Drupal 11 and is ready for use on production sites. Learn more about Drupal 11 and the Drupal core release cycle.

Read the Drupal 11.2.0 release announcement for improvements and highlights in this release.

This minor release provides improvements and new functionality. It does not break backward compatibility (BC) for public APIs. There may be changes in internal APIs and experimental modules. If so, contributed and custom modules and themes may need updating. This is according to Drupal core's backward compatibility and experimental module policies.

This release may include string changes and additions. Translators can review the latest translation status on localize.drupal.org.

Drupal 11.2.x will receive security support until June 2026. Drupal 11.1.x will continue to receive security support until December 2025.

Drupal 11 will be supported until the release of Drupal 13.

Important update information

If you are using Drupal CMS, see the release notes for Drupal CMS 1.2.0, as there are a couple of additional steps that should be taken before upgrading Drupal core to 11.2.0.

Sites must update to the latest release of 10.3 before upgrading to Drupal 11

Drupal sites running 10.2 or earlier versions must first update to 10.3.0 or later before updating to Drupal 11. All core updates added before 10.3.0 have been removed. In general, sites should update core and contributed modules to the most recent releases available for their current major core version, before updating to the next major release.

Upgrading from Drupal 6 and 7

Drupal 6 and 7 users can continue to migrate to Drupal 11. The migration paths from Drupal 6 and Drupal 7 to Drupal 11 will remain supported throughout Drupal 11's release cycle.

Removed features

API and behavior changes

Hook system changes

 
The new attribute-based hook system has had several additions and changes over the course of this release:

Developers testing against core APIs in earlier versions of 11.2 should make sure to read the latest change records, as there were breaking changes during the development process as well as numerous improvements and deprecations since 11.1.

Automated testing changes

Experimental module changes

  • Package Manager is a hidden experimental module in Drupal core. (It does not do anything on its own, but provides the foundational APIs used by Project Browser and Automatic Updates.) Package Manager is now considered API-stable. Future API changes will be backwards-compatible, so contributed module developers can now rely on the experimental module's APIs.

  • Sites using the Automatic Updates contributed module must update to the 4.0.0 release or higher at the same time as updating to Drupal 11.2

    Sites using the contributed Project Browser module must update to the 2.1.0-beta2 release or higher at the same time as updating to Drupal 11.2.

PHP dependency changes

  • Drupal core now requires Symfony v7.3.0.
  • Twig has been updated to v3.21.1.
  • Numerous other dependencies have received minor- and patch-level updates to the latest versions.

PHP development dependency changes

  • PHPUnit 11 is now the default version. It's still possible to downgrade to PHPUnit 10 in case of need, but in that case it's recommended to use PHPUnit's CLI for running tests, and avoid using Drupal's run-tests.sh script that may have gaps in discovering tests. Drupal tests now can use PHPUnit's 10+ attributes instead of the legacy annotations. New tests must use attributes.

  • PHPStan has received a major-version upgrade to 2.1.17. Projects using PHPStan 1.x can refer to the PHPStan 2 upgrade guide.

  • symfony/polyfill-php84 has been added for PHP 8.4 feature adoption.

  • Composer has increased its minimum requirement for the justinrainbow/json-schema package to version 6, and as a result, Drupal core's lockfile and metapackage now pin this development dependency to version 6 as well. Modules using this package should read the version 6 upgrade notes as there are breaking changes. If your contributed or custom project relies on an older version of justinrainbow/json-schema, you should declare a conflict with the 6.x branch in your composer.json.

  • Coder has been updated to the latest version (8.3.30), and the following Drupal coding standards rules have changed:

    • Drupal.CSS.ClassDefinitionNameSpacing and Drupal.CSS.ColourDefinition have been removed as Coder is no longer responsible for CSS coding standards.
    • Drupal.Strings.UnnecessaryStringConcat has been replaced with Generic.Strings.UnnecessaryStringConcat
    • Squiz.WhiteSpace.LanguageConstructSpacing has been replaced with Generic.WhiteSpace.LanguageConstructSpacing
    • MySource.Debug.DebugCode has been removed.

Frontend (CSS and JavaScript) production dependency changes

Development dependencies

  • PostCSS and its plugins have been updated to the latest edition, removing the need for the @nest keyword and removing the use of rgba(). Drupal maintains the 2021 nesting behavior to avoid adding :is() selectors throughout the CSS. For details, see the PostCSS Nesting plugin documentation.

    Stylelint and stylelint-config-standard have also been updated to the latest version. Most notably the CSS rgb() function is preferred over the equivalent rgba() function. Drupal core stylesheets have been updated to account for these changed standards.

  • Many dependencies have received minor- and patch-level updates to the latest versions.

Known issues

  • [#3531506]
  • [#3531412]
  • [#2987548]
  • Numerous site owners and developers have reported difficulty updating to Drupal 11.2.0 due to conflicting versions of Drupal core's development dependencies. Several core development dependencies had their major version constraints increased in the 11.2.0 release:

    • PHPStan was increased from v1 to v2.
    • sebastian/diff was increased from v5 to v6<./li>
    • PHPUnit was increased from v10 to v11.

    In a future bugfix release, we may attempt to support compatibility with both major versions of these dependencies. For the time being, however, we recommend site owners attempt updating all their packages which may use core's development dependencies together, for example:


    composer update "drupal/core*" drupal/automatic_updates "drupal/gin*" drupal/project_browser --with-all-dependencies

    For more information and debugging suggestions that may help for your site, see [#3531287].

Search the issue queue for known issues.

All changes since Drupal 11.2.0-rc2

VCS Label
11.2.0
Short description
Actively maintained with new features and backwards-compatible improvements every six months. Use this version for the best compatibility with future releases.
Packaged Git sha1
338d58439d5b59d92ac9519ad81ffd916b673841
Release files
xoubUGh1SV.txt
39d34e67af7af843cf2c8e31a8793580
Release file SHA-1 hash
54f53f10b3479a98ae369238a5f905f0282396e1
Release file SHA-256 hash
68844e781b1f34e4689639088cdf531d091c4369cbd7ab909ebc619de6ad07f0
syK7E2Yvil.txt
7a5f3fac48d85c39964ea0931c8c55c3
Release file SHA-1 hash
80abf316eb6455eeafedd5c7cac78d39108402da
Release file SHA-256 hash
66bae56ff608b84e2568a5a4f423deae5fd6fd71fd68790ca32c1ce594413a7a