Can't update to 11.2.0

Created on 20 June 2025, 4 days ago

Problem/Motivation

I am attempting to update to 11.2.0

Steps to reproduce

Running composer update "drupal/core-*" --with-all-dependencies results in an upgrade to 11.2.0-rc2
Attempting to pin to the recommended version 11.2.0 by running cocodrupal@evek:~/drupal$ composer require drupal/core-recommended:11.2.0 drupal/core-composer-scaffold:11.2.0 drupal/core-project-message:11.2.0 --update-with-all-dependencies results in:

 Problem 1
    - Root composer.json requires drupal/core-recommended 11.2.0 -> satisfiable by drupal/core-recommended[11.2.0].
    - drupal/core-recommended 11.2.0 requires sebastian/diff ~6.0.2 -> found sebastian/diff[6.0.2, 6.0.x-dev] but these were not loaded, likely because it conflicts with another require.

Proposed resolution

Remaining tasks

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

🐛 Bug report
Status

Active

Version

11.2 🔥

Component

base system

Created by

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @johnwt
  • For support let's see the entire output please.

  • 🇬🇧United Kingdom longwave UK

    composer why-not drupal/core 11.2.0 may explain the reason more clearly.

    In 📌 Deprecate TestDiscovery test file scanning, use PHPUnit API instead Active it appears that core-recommended bumped the major version of sebastian/diff, we did not catch this nor pick it up in the release notes

    -        "sebastian/diff": "~5.1.1",
    +        "sebastian/diff": "~6.0.2",
    
  • composer why-not drupal/core 11.2.0
    drupal/core-recommended 11.2.0-rc2 requires drupal/core (11.2.0-rc2) 

    but the issue with sebastian/diff seems to be the problem. Is there a workaround?

  • Try composer why-not sebastian/diff "~6.0.2", and in addition, consider providing your composer.json file because it will be much easier for us to give a little support here.

  • composer why-not sebastian/diff "~6.0.2"

    drupal/core-recommended 11.2.0-rc2 requires sebastian/diff (~5.1.1) 
    phpunit/phpunit         10.5.46    requires sebastian/diff (^5.1.1) 
    sebastian/comparator    5.0.3      requires sebastian/diff (^5.0)  
  • {
        "name": "drupal/core",
        "description": "Drupal is an open source content management platform powering millions of websites and applications.",
        "type": "drupal-core",
        "license": "GPL-2.0-or-later",
        "require": {
            "ext-date": "*",
            "ext-dom": "*",
            "ext-filter": "*",
            "ext-gd": "*",
            "ext-hash": "*",
            "ext-json": "*",
            "ext-pcre": "*",
            "ext-PDO": "*",
            "ext-session": "*",
            "ext-SimpleXML": "*",
            "ext-SPL": "*",
            "ext-tokenizer": "*",
            "ext-xml": "*",
            "ext-zlib": "*",
            "php": ">=8.3.0",
            "symfony/console": "^7.3",
            "symfony/dependency-injection": "^7.3",
            "symfony/event-dispatcher": "^7.3",
            "symfony/filesystem": "^7.3",
            "symfony/finder": "^7.3",
            "symfony/http-foundation": "^7.3",
            "symfony/http-kernel": "^7.3",
            "symfony/mailer": "^7.3",
            "symfony/mime": "^7.3",
            "symfony/routing": "^7.3",
            "symfony/serializer": "^7.3",
            "symfony/validator": "^7.3",
            "symfony/process": "^7.3",
            "symfony/polyfill-iconv": "^1.32",
            "symfony/polyfill-php84": "^1.32",
            "symfony/yaml": "^7.3",
            "revolt/event-loop": "^1.0",
            "twig/twig": "^3.21.0",
            "doctrine/annotations": "^2.0",
            "doctrine/lexer": "^2.0",
            "guzzlehttp/guzzle": "^7.5",
            "guzzlehttp/psr7": "^2.4.5",
            "egulias/email-validator": "^3.2.1|^4.0",
            "masterminds/html5": "^2.7",
            "symfony/psr-http-message-bridge": "^7.3",
            "composer-runtime-api": "^2.1",
            "composer/semver": "^3.3",
            "asm89/stack-cors": "^2.3",
            "pear/archive_tar": "^1.4.14",
            "psr/log": "^3.0",
            "mck89/peast": "^1.14",
            "sebastian/diff": "^4 || ^5 || ^6 || ^7",
            "php-tuf/composer-stager": "^2.0"
        },
        "conflict": {
            "drupal/automatic_updates": "<4",
            "drupal/project_browser": "<2.1",
            "drush/drush": "<12.4.3"
        },
        "replace": {
            "drupal/core-annotation": "self.version",
            "drupal/core-assertion": "self.version",
            "drupal/core-class-finder": "self.version",
            "drupal/core-datetime": "self.version",
            "drupal/core-dependency-injection": "self.version",
            "drupal/core-diff": "self.version",
            "drupal/core-discovery": "self.version",
            "drupal/core-event-dispatcher": "self.version",
            "drupal/core-file-cache": "self.version",
            "drupal/core-file-security": "self.version",
            "drupal/core-filesystem": "self.version",
            "drupal/core-front-matter": "self.version",
            "drupal/core-gettext": "self.version",
            "drupal/core-graph": "self.version",
            "drupal/core-http-foundation": "self.version",
            "drupal/core-php-storage": "self.version",
            "drupal/core-plugin": "self.version",
            "drupal/core-proxy-builder": "self.version",
            "drupal/core-render": "self.version",
            "drupal/core-serialization": "self.version",
            "drupal/core-transliteration": "self.version",
            "drupal/core-utility": "self.version",
            "drupal/core-uuid": "self.version",
            "drupal/core-version": "self.version"
        },
        "minimum-stability": "dev",
        "prefer-stable": true,
        "autoload": {
            "psr-4": {
                "Drupal\\Core\\": "lib/Drupal/Core",
                "Drupal\\Component\\": "lib/Drupal/Component"
            },
            "classmap": [
                "lib/Drupal.php",
                "lib/Drupal/Component/DependencyInjection/Container.php",
                "lib/Drupal/Component/DependencyInjection/PhpArrayContainer.php",
                "lib/Drupal/Component/FileCache/FileCacheFactory.php",
                "lib/Drupal/Component/Utility/Timer.php",
                "lib/Drupal/Component/Utility/Unicode.php",
                "lib/Drupal/Core/Cache/Cache.php",
                "lib/Drupal/Core/Cache/CacheBackendInterface.php",
                "lib/Drupal/Core/Cache/CacheTagsChecksumInterface.php",
                "lib/Drupal/Core/Cache/CacheTagsChecksumTrait.php",
                "lib/Drupal/Core/Cache/CacheTagsInvalidatorInterface.php",
                "lib/Drupal/Core/Cache/DatabaseBackend.php",
                "lib/Drupal/Core/Cache/DatabaseCacheTagsChecksum.php",
                "lib/Drupal/Core/Database/Connection.php",
                "lib/Drupal/Core/Database/Database.php",
                "lib/Drupal/Core/Database/StatementInterface.php",
                "lib/Drupal/Core/DependencyInjection/Container.php",
                "lib/Drupal/Core/DrupalKernel.php",
                "lib/Drupal/Core/DrupalKernelInterface.php",
                "lib/Drupal/Core/Installer/InstallerRedirectTrait.php",
                "lib/Drupal/Core/Site/Settings.php",
                "lib/Drupal/Component/Datetime/Time.php"
            ],
            "files": [
                "includes/bootstrap.inc"
            ]
        },
        "config": {
            "preferred-install": "dist"
        },
        "suggest": {
            "ext-zip": "Needed to extend the plugin.manager.archiver service capability with the handling of files in the ZIP format."
        },
        "extra": {
            "drupal-scaffold": {
                "file-mapping": {
                    "[project-root]/.editorconfig": "assets/scaffold/files/editorconfig",
                    "[project-root]/.gitattributes": "assets/scaffold/files/gitattributes",
                    "[project-root]/recipes/README.txt": "assets/scaffold/files/recipes.README.txt",
                    "[web-root]/.csslintrc": "assets/scaffold/files/csslintrc",
                    "[web-root]/.eslintignore": "assets/scaffold/files/eslintignore",
                    "[web-root]/.eslintrc.json": "assets/scaffold/files/eslintrc.json",
                    "[web-root]/.ht.router.php": "assets/scaffold/files/ht.router.php",
                    "[web-root]/.htaccess": "assets/scaffold/files/htaccess",
                    "[web-root]/example.gitignore": "assets/scaffold/files/example.gitignore",
                    "[web-root]/index.php": "assets/scaffold/files/index.php",
                    "[web-root]/INSTALL.txt": "assets/scaffold/files/drupal.INSTALL.txt",
                    "[web-root]/README.md": "assets/scaffold/files/drupal.README.md",
                    "[web-root]/robots.txt": "assets/scaffold/files/robots.txt",
                    "[web-root]/update.php": "assets/scaffold/files/update.php",
                    "[web-root]/sites/README.txt": "assets/scaffold/files/sites.README.txt",
                    "[web-root]/sites/development.services.yml": "assets/scaffold/files/development.services.yml",
                    "[web-root]/sites/example.settings.local.php": "assets/scaffold/files/example.settings.local.php",
                    "[web-root]/sites/example.sites.php": "assets/scaffold/files/example.sites.php",
                    "[web-root]/sites/default/default.services.yml": "assets/scaffold/files/default.services.yml",
                    "[web-root]/sites/default/default.settings.php": "assets/scaffold/files/default.settings.php",
                    "[web-root]/modules/README.txt": "assets/scaffold/files/modules.README.txt",
                    "[web-root]/profiles/README.txt": "assets/scaffold/files/profiles.README.txt",
                    "[web-root]/themes/README.txt": "assets/scaffold/files/themes.README.txt"
                }
            }
        },
        "scripts": {
            "pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump"
        }
    }
    
  • 🇺🇸United States mradcliffe USA

    I was able to update to 11.2.0 from 11.1.8 yesterday, but ran into issues along the way because of my drupal/core-dev dev dependency being too strict (^11.1 rather than ^11).

    Reviewing my shell history locally, I worked around the issue using --no-update with the require commands, removed the lock file, and then ran composer install again.

    @johnwt, I don' find phpunit/phpunit in that composer.json. Maybe there is a mismatch between composer.json and composer.lock on your site? Or is that not the root composer.json for your site?

  • Is that your site’s composer.json file or Drupal core’s? Let’s leave this as a support request for now.

  • It is the site's drupal/web/core/composer.json

  • Didn't mean to change the category.
    phpunit appears a number of times in the lock file but not at all in the json file.

  • @johnwt What we are looking for here is the composer.json file that is in the root of your project, which is the one you use to build the site.

  • This one: drupal/composer.json ?

    {
        "name": "drupal/recommended-project",
        "description": "Project template for Drupal projects with a relocated document root",
        "type": "project",
        "license": "GPL-2.0-or-later",
        "homepage": "https://www.drupal.org/project/drupal",
        "support": {
            "docs": "https://www.drupal.org/docs/user_guide/en/index.html",
            "chat": "https://www.drupal.org/node/314178"
        },
        "repositories": [
            {
                "type": "composer",
                "url": "https://packages.drupal.org/8"
            }
        ],
        "require": {
            "adci/full-name-parser": "^0.2.4",
            "audiolabs/bibtexparser": "^1.0",
            "caseyamcl/php-marc21": "^1.1",
            "composer/installers": "^2.3",
            "drupal/address": "^2.0",
            "drupal/allowed_formats": "^3.0",
            "drupal/backup_migrate": "^5.1",
            "drupal/better_exposed_filters": "^7.0",
            "drupal/book": "^2.0",
            "drupal/bootstrap5": "^4.0",
            "drupal/captcha": "^2.0",
            "drupal/collapsiblock": "^4.4",
            "drupal/composer_deploy": "^1.10",
            "drupal/conditional_fields": "^4.0@alpha",
            "drupal/core-composer-scaffold": "^11.2",
            "drupal/core-project-message": "^11.2",
            "drupal/core-recommended": "^11.1",
            "drupal/csp": "^2.2",
            "drupal/diff": "^2.0@beta",
            "drupal/draggableviews": "^2.1",
            "drupal/dxpr_theme": "^6.0",
            "drupal/dxpr_theme_helper": "^1.0",
            "drupal/dynamic_entity_reference": "^3.2",
            "drupal/entity": "^1.6",
            "drupal/entity_clone": "^2.1@beta",
            "drupal/entity_print": "^2.16",
            "drupal/entity_reference_revisions": "^1.12",
            "drupal/eu_cookie_compliance": "^1.26",
            "drupal/eva": "^3.1",
            "drupal/extlink": "^2.0",
            "drupal/field_formatter_class": "^1.8",
            "drupal/field_group": "^4.0",
            "drupal/flood_control": "^3.0",
            "drupal/forum": "1.0.2",
            "drupal/fullcalendar_view": "^5.2",
            "drupal/gdpr": "^3.1",
            "drupal/group": "^3.3",
            "drupal/imce": "^3.1",
            "drupal/jquery_ui": "^1.7",
            "drupal/jquery_ui_accordion": "^2.1",
            "drupal/jquery_ui_datepicker": "^2.1",
            "drupal/jquery_ui_slider": "^2.1",
            "drupal/jquery_ui_tabs": "^2.1",
            "drupal/jquery_ui_touch_punch": "^1.1",
            "drupal/libraries": "^4.0",
            "drupal/linkchecker": "^2.0",
            "drupal/login_destination": "^2.0@beta",
            "drupal/mailsystem": "^4.5",
            "drupal/metatag": "^2.1",
            "drupal/page_manager": "^4.0@RC",
            "drupal/paragraphs": "^1.19",
            "drupal/pathauto": "^1.13",
            "drupal/pdf_api": "^2.4",
            "drupal/plupload": "^2.2",
            "drupal/redirect": "^1.11",
            "drupal/registration": "^3.4",
            "drupal/search404": "^2.2@RC",
            "drupal/security_review": "^3.1",
            "drupal/shs": "^2.0",
            "drupal/simplenews": "^4.1",
            "drupal/site_verify": "^2.1",
            "drupal/smtp": "^1.4",
            "drupal/spambot": "^1.4",
            "drupal/spamspan": "^3.2",
            "drupal/superfish": "^1.13",
            "drupal/taxonomy_manager": "^2.0",
            "drupal/token": "^1.15",
            "drupal/update_config_entity": "^1.0",
            "drupal/upgrade_status": "^4.3",
            "drupal/user_register_notify": "^2.0@beta",
            "drupal/view_unpublished": "^1.3",
            "drupal/views_conditional": "^1.10",
            "drupal/views_slideshow": "^5.0",
            "drush/drush": "^13.3",
            "leongersen/nouislider": "^15.8",
            "seboettg/citeproc-php": "^2.6"
        },
        "conflict": {
            "drupal/drupal": "*"
        },
        "minimum-stability": "dev",
        "prefer-stable": true,
        "config": {
            "allow-plugins": {
                "composer/installers": true,
                "drupal/core-composer-scaffold": true,
                "drupal/core-project-message": true,
                "phpstan/extension-installer": true,
                "dealerdirect/phpcodesniffer-composer-installer": true,
                "php-http/discovery": true,
                "tbachert/spi": true
            },
            "sort-packages": true
        },
        "extra": {
            "drupal-scaffold": {
                "locations": {
                    "web-root": "web/"
                },
                "file-mapping": {
                    "[web-root]/libraries/nouislider/nouislider.min.js": "vendor/leongersen/nouislider/dist/nouislider.min.js"
                }
            },
            "installer-paths": {
                "web/core": [
                    "type:drupal-core"
                ],
                "web/libraries/{$name}": [
                    "type:drupal-library"
                ],
                "web/modules/contrib/{$name}": [
                    "type:drupal-module"
                ],
                "web/profiles/contrib/{$name}": [
                    "type:drupal-profile"
                ],
                "web/themes/contrib/{$name}": [
                    "type:drupal-theme"
                ],
                "drush/Commands/contrib/{$name}": [
                    "type:drupal-drush"
                ],
                "web/modules/custom/{$name}": [
                    "type:drupal-custom-module"
                ],
                "web/profiles/custom/{$name}": [
                    "type:drupal-custom-profile"
                ],
                "web/themes/custom/{$name}": [
                    "type:drupal-custom-theme"
                ]
            },
            "drupal-core-project-message": {
                "include-keys": [
                    "homepage",
                    "support"
                ],
                "post-create-project-cmd-message": [
                    "<bg=blue;fg=white>                                                         </>",
                    "<bg=blue;fg=white>  Congratulations, you’ve installed the Drupal codebase  </>",
                    "<bg=blue;fg=white>  from the drupal/recommended-project template!          </>",
                    "<bg=blue;fg=white>                                                         </>",
                    "",
                    "<bg=yellow;fg=black>Next steps</>:",
                    "  * Install the site: https://www.drupal.org/docs/installing-drupal",
                    "  * Read the user guide: https://www.drupal.org/docs/user_guide/en/index.html",
                    "  * Get support: https://www.drupal.org/support",
                    "  * Get involved with the Drupal community:",
                    "      https://www.drupal.org/getting-involved",
                    "  * Remove the plugin that prints this message:",
                    "      composer remove drupal/core-project-message"
                ]
            }
        },
        "require-dev": {
            "drupal/core-dev": "11.1.1"
        }
    }
    
  • I haven't ran this file yet but are you aware of this pin?

    "require-dev": {
            "drupal/core-dev": "11.1.1"
        }
    
  • Sort of, I tried to update by pinning to 11.2.0 which is when I got the sebastian/diff problem.

  • 🇺🇸United States mradcliffe USA

    This is what I run into with my comment in #8. If you don't want to edit composer.json, then

    On a platform that meets the requirements,

    composer require drupal/core-recommended:^11.2 drupal/core-composer-scaffold:^11.2 drupal/core-project-message:^11.2 --no-update
    composer require --dev drupal/core-dev:^11 --no-update
    rm composer.lock
    composer install
    

    Or if you prefer pinned versions in composer.json for less risk (this is what I did yesterday and it updated fine),

    composer require drupal/core-recommended:11.2.0 drupal/core-composer-scaffold:11.2.0 drupal/core-project-message:11.2.0 --no-update
    composer require --dev drupal/core-dev:^11 --no-update
    rm composer.lock
    composer install
    

    Or if you want to use the composer.json you have above without running commands, change drupal/core-dev: 11.1.1 to drupal/core-dev: ^11, remove composer.lock, and run composer install.

  • Thanks, I will have a look at it tomorrow.

  • 🇬🇧United Kingdom longwave UK

    When we upgraded to PHPUnit 11 we didn't spot the major version upgrade of sebastian/diff in drupal/core-recommended. I think we are confident that core works with both versions of the diff library so we could expand the constraints to allow both versions; this in turn means core-recommended users should be able to use both PHPUnit 10 and 11.

  • After lots of looking around the two problems, I have concluded the following. The first is drupal/upgrade_status which you will have to remove to proceed. The second is exactly what is said in comment #19.

    By only removing drupal/upgrade_status you can get here:

    $ composer show "drupal/core*" -D
    drupal/core-composer-scaffold 11.2.0     A flexible Composer project scaffold builder.
    drupal/core-dev               11.2.0     require-dev dependencies from drupal/drupal; use in addition to drupal/core-reco...
    drupal/core-project-message   11.2.0     Adds a message after Composer installation.
    drupal/core-recommended       11.2.0-rc2 Core and its dependencies with known-compatible minor versions. Require this pro...
    
  • I seem to have managed to update to a pinned version of 11.2.0, thanks a lot each for your help.
    I uninstalled then removed the drupal/upgrade_status
    However, running composer show "drupal/core*" -D I got:

    drupal/core-composer-scaffold 11.2.0     A flexible Composer project scaffold builder.
    drupal/core-dev               11.1.1     require-dev dependencies from drupal/drupal; use in addition to drupal/core-recommended to run tests from drupal/core.
    drupal/core-project-message   11.2.0     Adds a message after Composer installation.
    drupal/core-recommended       11.2.0-rc2 Core and its dependencies with known-compatible minor versions. Require this project INSTEAD OF drupal/core.
    

    So I tried:
    composer require drupal/core-recommended:11.2.0 drupal/core-composer-scaffold:11.2.0 drupal/core-project-message:11.2.0 drupal/core-dev:11.2.0 --update-with-all-dependencies
    And got:

    drupal/core-dev is currently present in the require-dev key and you ran the command without the --dev flag, which will move it to the require key.
    Do you want to move this requirement? [no]? 
    Do you want to re-run the command with --dev? [yes]? 
    ./composer.json has been updated
    Running composer update drupal/core-recommended drupal/core-composer-scaffold drupal/core-project-message drupal/core-dev --with-all-dependencies
    Loading composer repositories with package information
    Updating dependencies
    Lock file operations: 2 installs, 31 updates, 0 removals
      - Upgrading composer/composer (2.8.6 => 2.8.9)
      - Upgrading drupal/core (11.2.0-rc2 => 11.2.0)
      - Upgrading drupal/core-dev (11.1.1 => 11.2.0)
      - Upgrading drupal/core-recommended (11.2.0-rc2 => 11.2.0)
      - Upgrading justinrainbow/json-schema (5.3.0 => 6.4.2)
      - Locking marc-mabe/php-enum (v4.7.1)
      - Upgrading mglaman/phpstan-drupal (1.3.9 => 2.0.7)
      - Upgrading micheh/phpcs-gitlab (1.1.0 => 2.0.0)
      - Upgrading phpstan/phpstan (1.12.27 => 2.1.17)
      - Upgrading phpstan/phpstan-deprecation-rules (1.2.1 => 2.0.3)
      - Upgrading phpstan/phpstan-phpunit (1.4.2 => 2.0.6)
      - Upgrading phpunit/php-code-coverage (10.1.16 => 11.0.10)
      - Upgrading phpunit/php-file-iterator (4.1.0 => 5.1.0)
      - Upgrading phpunit/php-invoker (4.0.0 => 5.0.1)
      - Upgrading phpunit/php-text-template (3.0.1 => 4.0.1)
      - Upgrading phpunit/php-timer (6.0.0 => 7.0.1)
      - Upgrading phpunit/phpunit (10.5.47 => 11.5.24)
      - Upgrading sebastian/cli-parser (2.0.1 => 3.0.2)
      - Upgrading sebastian/code-unit (2.0.0 => 3.0.3)
      - Upgrading sebastian/code-unit-reverse-lookup (3.0.0 => 4.0.1)
      - Upgrading sebastian/comparator (5.0.3 => 6.3.1)
      - Upgrading sebastian/complexity (3.2.0 => 4.0.1)
      - Upgrading sebastian/diff (5.1.1 => 6.0.2)
      - Upgrading sebastian/environment (6.1.0 => 7.2.1)
      - Upgrading sebastian/exporter (5.1.2 => 6.3.0)
      - Upgrading sebastian/global-state (6.0.2 => 7.0.2)
      - Upgrading sebastian/lines-of-code (2.0.2 => 3.0.1)
      - Upgrading sebastian/object-enumerator (5.0.0 => 6.0.1)
      - Upgrading sebastian/object-reflector (3.0.0 => 4.0.1)
      - Upgrading sebastian/recursion-context (5.0.0 => 6.0.2)
      - Upgrading sebastian/type (4.0.0 => 5.1.2)
      - Upgrading sebastian/version (4.0.1 => 5.0.2)
      - Locking staabm/side-effects-detector (1.0.5)
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Package operations: 2 installs, 31 updates, 0 removals
      - Downloading sebastian/diff (6.0.2)
      - Downloading drupal/core (11.2.0)
      - Downloading staabm/side-effects-detector (1.0.5)
      - Downloading sebastian/version (5.0.2)
      - Downloading sebastian/type (5.1.2)
      - Downloading sebastian/recursion-context (6.0.2)
      - Downloading sebastian/object-reflector (4.0.1)
      - Downloading sebastian/object-enumerator (6.0.1)
      - Downloading sebastian/global-state (7.0.2)
      - Downloading sebastian/exporter (6.3.0)
      - Downloading sebastian/environment (7.2.1)
      - Downloading sebastian/comparator (6.3.1)
      - Downloading sebastian/code-unit (3.0.3)
      - Downloading sebastian/cli-parser (3.0.2)
      - Downloading phpunit/php-timer (7.0.1)
      - Downloading phpunit/php-text-template (4.0.1)
      - Downloading phpunit/php-invoker (5.0.1)
      - Downloading phpunit/php-file-iterator (5.1.0)
      - Downloading sebastian/lines-of-code (3.0.1)
      - Downloading sebastian/complexity (4.0.1)
      - Downloading sebastian/code-unit-reverse-lookup (4.0.1)
      - Downloading phpunit/php-code-coverage (11.0.10)
      - Downloading phpunit/phpunit (11.5.24)
      - Downloading phpstan/phpstan (2.1.17)
      - Downloading phpstan/phpstan-phpunit (2.0.6)
      - Downloading micheh/phpcs-gitlab (2.0.0)
      - Downloading phpstan/phpstan-deprecation-rules (2.0.3)
      - Downloading mglaman/phpstan-drupal (2.0.7)
      - Downloading marc-mabe/php-enum (v4.7.1)
      - Downloading justinrainbow/json-schema (6.4.2)
      - Downloading composer/composer (2.8.9)
      - Upgrading sebastian/diff (5.1.1 => 6.0.2): Extracting archive
      - Upgrading drupal/core (11.2.0-rc2 => 11.2.0): Extracting archive
      - Installing staabm/side-effects-detector (1.0.5): Extracting archive
      - Upgrading sebastian/version (4.0.1 => 5.0.2): Extracting archive
      - Upgrading sebastian/type (4.0.0 => 5.1.2): Extracting archive
      - Upgrading sebastian/recursion-context (5.0.0 => 6.0.2): Extracting archive
      - Upgrading sebastian/object-reflector (3.0.0 => 4.0.1): Extracting archive
      - Upgrading sebastian/object-enumerator (5.0.0 => 6.0.1): Extracting archive
      - Upgrading sebastian/global-state (6.0.2 => 7.0.2): Extracting archive
      - Upgrading sebastian/exporter (5.1.2 => 6.3.0): Extracting archive
      - Upgrading sebastian/environment (6.1.0 => 7.2.1): Extracting archive
      - Upgrading sebastian/comparator (5.0.3 => 6.3.1): Extracting archive
      - Upgrading sebastian/code-unit (2.0.0 => 3.0.3): Extracting archive
      - Upgrading sebastian/cli-parser (2.0.1 => 3.0.2): Extracting archive
      - Upgrading phpunit/php-timer (6.0.0 => 7.0.1): Extracting archive
      - Upgrading phpunit/php-text-template (3.0.1 => 4.0.1): Extracting archive
      - Upgrading phpunit/php-invoker (4.0.0 => 5.0.1): Extracting archive
      - Upgrading phpunit/php-file-iterator (4.1.0 => 5.1.0): Extracting archive
      - Upgrading sebastian/lines-of-code (2.0.2 => 3.0.1): Extracting archive
      - Upgrading sebastian/complexity (3.2.0 => 4.0.1): Extracting archive
      - Upgrading sebastian/code-unit-reverse-lookup (3.0.0 => 4.0.1): Extracting archive
      - Upgrading phpunit/php-code-coverage (10.1.16 => 11.0.10): Extracting archive
      - Upgrading phpunit/phpunit (10.5.47 => 11.5.24): Extracting archive
      - Upgrading phpstan/phpstan (1.12.27 => 2.1.17): Extracting archive
      - Upgrading phpstan/phpstan-phpunit (1.4.2 => 2.0.6): Extracting archive
      - Upgrading micheh/phpcs-gitlab (1.1.0 => 2.0.0): Extracting archive
      - Upgrading phpstan/phpstan-deprecation-rules (1.2.1 => 2.0.3): Extracting archive
      - Upgrading mglaman/phpstan-drupal (1.3.9 => 2.0.7): Extracting archive
      - Installing marc-mabe/php-enum (v4.7.1): Extracting archive
      - Upgrading justinrainbow/json-schema (5.3.0 => 6.4.2): Extracting archive
      - Upgrading composer/composer (2.8.6 => 2.8.9): Extracting archive
      - Upgrading drupal/core-dev (11.1.1 => 11.2.0)
      - Upgrading drupal/core-recommended (11.2.0-rc2 => 11.2.0)
    
  • You may have converted drupal/core-recommended and others to dev dependencies there by answering yes to “Do you want to re-run the command with --dev?”. Of the drupal/core* packages you directly updated only drupal/core-dev should be a dev dependency.

    That’s something you can fix on your end.

    Analyzing this one in relation to how Composer describes transitive dependencies in its error output was not straightforward. I expect some “I’m having this problem too” comments will follow.

    Is any further support needed?

  • Thanks, hopefully no more support needed for this issue.
    "That’s something you can fix on your end.", I don't really know how to or whether I need to, I am hoping everything will return to normal at the next update.

  • 🇳🇬Nigeria chike Nigeria

    I also can't update my Drupal CMS site to 11.2.0. I ran this command a few minutes ago,

    $ composer update "drupal/core-*" --with-all-dependencies
    Gathering patches for root package.
    Loading composer repositories with package information
    Updating dependencies
    Lock file operations: 0 installs, 22 updates, 0 removals
      - Upgrading drupal/core (11.1.6 => 11.1.8)
      - Upgrading drupal/core-composer-scaffold (11.1.6 => 11.2.0)
      - Upgrading drupal/core-project-message (11.1.6 => 11.2.0)
      - Upgrading drupal/core-recommended (11.1.6 => 11.1.8)
      - Upgrading symfony/console (v7.2.5 => v7.2.7)
      - Upgrading symfony/dependency-injection (v7.2.5 => v7.2.7)
      - Upgrading symfony/error-handler (v7.2.5 => v7.2.7)
      - Upgrading symfony/http-foundation (v7.2.5 => v7.2.7)
      - Upgrading symfony/http-kernel (v7.2.5 => v7.2.7)
      - Upgrading symfony/mailer (v7.2.3 => v7.2.6)
      - Upgrading symfony/mime (v7.2.4 => v7.2.6)
      - Upgrading symfony/polyfill-php80 (v1.31.0 => v1.32.0)
      - Upgrading symfony/polyfill-php81 (v1.31.0 => v1.32.0)
      - Upgrading symfony/polyfill-php83 (v1.31.0 => v1.32.0)
      - Upgrading symfony/polyfill-php84 (v1.31.0 => v1.32.0)
      - Upgrading symfony/serializer (v7.2.5 => v7.2.7)
      - Upgrading symfony/string (v7.2.0 => v7.2.6)
      - Upgrading symfony/translation (v7.2.4 => v7.3.0)
      - Upgrading symfony/validator (v7.2.5 => v7.2.7)
      - Upgrading symfony/var-dumper (v7.2.3 => v7.2.6)
      - Upgrading symfony/var-exporter (v7.2.5 => v7.2.7)
      - Upgrading symfony/yaml (v7.2.5 => v7.2.6)
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Package operations: 0 installs, 22 updates, 0 removals
    Gathering patches for root package.
    Gathering patches for dependencies. This might take a minute.
      - Upgrading drupal/core-composer-scaffold (11.1.6 => 11.2.0): Extracting archive
      - Upgrading drupal/core-project-message (11.1.6 => 11.2.0): Extracting archive
      - Upgrading symfony/polyfill-php84 (v1.31.0 => v1.32.0): Extracting archive
      - Upgrading symfony/string (v7.2.0 => v7.2.6): Extracting archive
      - Upgrading symfony/console (v7.2.5 => v7.2.7): Extracting archive
      - Upgrading symfony/polyfill-php81 (v1.31.0 => v1.32.0): Extracting archive
      - Upgrading symfony/yaml (v7.2.5 => v7.2.6): Extracting archive
      - Upgrading symfony/polyfill-php83 (v1.31.0 => v1.32.0): Extracting archive
      - Upgrading symfony/validator (v7.2.5 => v7.2.7): Extracting archive
      - Upgrading symfony/serializer (v7.2.5 => v7.2.7): Extracting archive
      - Upgrading symfony/http-foundation (v7.2.5 => v7.2.7): Extracting archive
      - Upgrading symfony/mime (v7.2.4 => v7.2.6): Extracting archive
      - Upgrading symfony/mailer (v7.2.3 => v7.2.6): Extracting archive
      - Upgrading symfony/var-dumper (v7.2.3 => v7.2.6): Extracting archive
      - Upgrading symfony/error-handler (v7.2.5 => v7.2.7): Extracting archive
      - Upgrading symfony/http-kernel (v7.2.5 => v7.2.7): Extracting archive
      - Upgrading symfony/var-exporter (v7.2.5 => v7.2.7): Extracting archive
      - Upgrading symfony/dependency-injection (v7.2.5 => v7.2.7): Extracting archive
      - Upgrading drupal/core (11.1.6 => 11.1.8): Extracting archive
      - Upgrading drupal/core-recommended (11.1.6 => 11.1.8)
      - Upgrading symfony/polyfill-php80 (v1.31.0 => v1.32.0): Extracting archive
      - Upgrading symfony/translation (v7.2.4 => v7.3.0): Extracting archive

    Then I asked Composer why,

    $ composer why-not drupal/core 11.2.0
    drupal/core-recommended 11.1.8      requires         drupal/core (11.1.8)                                      
    drupal/gin              4.1.0       requires         drupal/core (^10.3 || ^11 <11.2)                          
    drupal/gin_toolbar      2.1.0       requires         drupal/core (^10 || ^11 <11.2)                            
    drupal/project_browser  2.0.0-beta2 requires         drupal/core (^10.4 || ~11.0.0 || ~11.1.0)                 
    drupal/core             11.2.0      conflicts        drupal/automatic_updates (<4)                             
    drupal/core             11.2.0      conflicts        drupal/project_browser (<2.1)                             
    drupal/core             11.2.0      requires         symfony/console (^7.3)                                    
    drupal/cms              1.0.0       does not require symfony/console (but v7.2.7 is installed)                 
    drupal/core             11.2.0      requires         symfony/dependency-injection (^7.3)                       
    drupal/cms              1.0.0       does not require symfony/dependency-injection (but v7.2.7 is installed)    
    drupal/core             11.2.0      requires         symfony/event-dispatcher (^7.3)                           
    drupal/cms              1.0.0       does not require symfony/event-dispatcher (but v7.2.0 is installed)        
    drupal/core             11.2.0      requires         symfony/filesystem (^7.3)                                 
    drupal/cms              1.0.0       does not require symfony/filesystem (but v7.2.0 is installed)              
    drupal/core             11.2.0      requires         symfony/finder (^7.3)                                     
    drupal/cms              1.0.0       does not require symfony/finder (but v7.2.2 is installed)                  
    drupal/core             11.2.0      requires         symfony/http-foundation (^7.3)                            
    drupal/cms              1.0.0       does not require symfony/http-foundation (but v7.2.7 is installed)         
    drupal/core             11.2.0      requires         symfony/http-kernel (^7.3)                                
    drupal/cms              1.0.0       does not require symfony/http-kernel (but v7.2.7 is installed)             
    drupal/core             11.2.0      requires         symfony/mailer (^7.3)                                     
    drupal/cms              1.0.0       does not require symfony/mailer (but v7.2.6 is installed)                  
    drupal/core             11.2.0      requires         symfony/mime (^7.3)                                       
    drupal/cms              1.0.0       does not require symfony/mime (but v7.2.6 is installed)                    
    drupal/core             11.2.0      requires         symfony/routing (^7.3)                                    
    drupal/cms              1.0.0       does not require symfony/routing (but v7.2.3 is installed)                 
    drupal/core             11.2.0      requires         symfony/serializer (^7.3)                                 
    drupal/cms              1.0.0       does not require symfony/serializer (but v7.2.7 is installed)              
    drupal/core             11.2.0      requires         symfony/validator (^7.3)                                  
    drupal/cms              1.0.0       does not require symfony/validator (but v7.2.7 is installed)               
    drupal/core             11.2.0      requires         symfony/process (^7.3)                                    
    drupal/cms              1.0.0       does not require symfony/process (but v7.2.5 is installed)                 
    drupal/core             11.2.0      requires         symfony/polyfill-iconv (^1.32)                            
    drupal/cms              1.0.0       does not require symfony/polyfill-iconv (but v1.31.0 is installed)         
    drupal/core             11.2.0      requires         symfony/yaml (^7.3)                                       
    drupal/cms              1.0.0       does not require symfony/yaml (but v7.2.6 is installed)                    
    drupal/core             11.2.0      requires         twig/twig (^3.21.0)                                       
    drupal/cms              1.0.0       does not require twig/twig (but v3.19.0 is installed)                      
    drupal/core             11.2.0      requires         symfony/psr-http-message-bridge (^7.3)                    
    drupal/cms              1.0.0       does not require symfony/psr-http-message-bridge (but v7.2.0 is installed) 
    drupal/core             11.2.0      requires         asm89/stack-cors (^2.3)                                   
    drupal/cms              1.0.0       does not require asm89/stack-cors (but v2.2.0 is installed)                
    Not finding what you were looking for? Try calling `composer update "drupal/core:11.2.0" --dry-run` to get another view on the problem.
  • The first line of why-not explains at least one reason: drupal/gin 4.1.0 requires drupal/core (^10.3 || ^11 <11.2)

    In that case, you need to upgrade drupal/gin to version 5 at the same time you upgrade Drupal Core. There may be other reasons so I suggest reading through the output thoroughly.

  • 🇳🇬Nigeria chike Nigeria

    How can I run composer update "drupal/core-*" --with-all-dependencies and at the same time move Gin from 4.1.0 to 5.0.2 which I believe will require a composer require command?

    Could you provide me a sample composer command to do this?

  • 🇮🇹Italy kopeboy Milan

    I also cannot update. All my modules are compatible (scanned with upgrade_status). I'm on DDEV with Drupal 10.5

    ddev composer update "drupal/core-*" --with-all-dependencies returns: Nothing to install, update or remove

    ddev composer require drupal/core-recommended:11.2.0 drupal/core-composer-scaffold:11.2.0 drupal/core-project-message:11.2.0 --update-with-all-dependencies returns drupal/core-recommended 11.2.0 requires symfony/console ~v7.3.0 -> found symfony/console[v7.3.0-BETA1, ..., 7.3.x-dev] but these were not loaded, likely because it conflicts with another require., but ddev composer why-not drupal/core 11.2.0 returns nonsense, like

    drupal/core 11.2.0 requires symfony/console (^7.3)                                     
    drupal/recommended-project - does not require symfony/console (but v6.4.22 is installed)

    and similarly composer update "drupal/core:11.2.0" --dry-run only cites problems contrib modules which actually support ^11 🤷🏻‍♂️

    Regarding #22: how can we check if we

    may have converted drupal/core-recommended and others to dev dependencies there by answering yes to “Do you want to re-run the command with --dev?”

    I don't remember that; I installed with DDEV Quickstart (leading to 10.4) and used suggested composer commands on d.org to update to each Drupal 10 release until 10.5

    Attaching my composer.json as txt (since we can't upload .json files).

  • 🇺🇸United States phenaproxima Massachusetts

    @chike:

    Could you provide me a sample composer command to do this?

    Try just composer update --with-all-dependencies. Let it update everything, not just core. If you feel that's too risky, you can allow it to also update Gin, Project Browser, and Automatic Updates -- all of which broke compatibility with Drupal 11.1 and earlier:

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

    I also strongly recommend you set up recipe unpacking, if you haven't already, before you do this -- just to take the recipes out of the dependency solving equation. Doing that is documented in the Drupal CMS release notes (see "How to update an existing project to Drupal 11.2").

  • 🇳🇬Nigeria chike Nigeria

    Thanks @phenaproxima

    I first set up recipe unpacking and the command you provided updated the site to 11.2.0. That is the command,

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

  • 🇺🇸United States phenaproxima Massachusetts

    Were you successful? Or did you continue to get the error you described in #25?

  • 🇳🇬Nigeria chike Nigeria

    It was successful without any errors.

    Maybe I should mention that before your comment at #29 I had tried the command composer update "drupal/core-*" drupal/gin drupal/automatic_updates drupal/project_browser --with-all-dependencies which didn't work. I failed to include gin_toolbar in the attempt. I tried this before my comment at #27.

    Now after setting up recipe unpacking, the command you provided worked successfully. So I am not sure if my prior attempt that didn't include gin_toolbar would have worked if I had included it, or it is recipe unpacking that made it to work.

  • 🇳🇬Nigeria chike Nigeria

    I tried with a different Drupal CMS site. So I first set up recipe unpacking and ran composer update "drupal/core-*" --with-all-dependencies and it updated to 11.1.8.

    I had to run composer update "drupal/core*" drupal/automatic_updates "drupal/gin*" drupal/project_browser --with-all-dependencies to get it to 11.2.0.

  • 🇺🇸United States xjm

    Just a heads up that some of these reports, at least for the pinned dev dependencies metapackage or sites that use core's dev deps, might be due to an overly aggressive bump of sebastian/diff from v5 to v6 and the PHPUnit bump form 10 to 11. @longwave suggested that we might want to try opening up both these constraints and switching one of our daily or weekly testing jobs so that we still test on the lower version of PHPUnit.

    #33 is a helpful suggestion for other site owners; thanks @chike.

Production build 0.71.5 2024