How to upgrade drupal cms from 1.1 to 1.2 by composer command

Created on 19 July 2025, 4 days ago

Hi, guys!
Is there a way to upgrade Drupal CMS from version 1.1 to version 1.2 via the standard drupal-way (something similar to updating the core or modules via "composer require...")?
If not, is there an instruction on how to do it differently?

best regards,
Savage

πŸ’¬ Support request
Status

Active

Component

General

Created by

πŸ‡§πŸ‡ΎBelarus savage1974

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

Merge Requests

Comments & Activities

  • Issue created by @savage1974
  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    That's a good question. Drupal CMS has no upgrade path as such; it's purely a starting point. The recipes it ships with are applied once, when you install the site, and then you can throw them out; they aren't used again. The underlying modules can be upgraded like any other modules (composer update and drush updb).

    Between 1.1.x and 1.2.x, the most significant change is probably the addition of recipe unpacking, which is a helpful thing you can and should do to keep the update path for modules and core as smooth as possible. See https://www.drupal.org/node/3528669 β†’ for more information and instructions on how to set this up (luckily, it's pretty easy).

  • πŸ‡§πŸ‡ΎBelarus savage1974

    phenaproxima, thanks a lot!
    But after I run the command "composer drupal:recipe-unpack" I faced with the following error:

    In UnpackCommand.php line 58:
                                                   
      [Error]                                      
      Call to a member function getType() on null  
                                                   
    Exception trace:
      at /var/www/html/vendor/drupal/core-recipe-unpack/UnpackCommand.php:58
     Drupal\Composer\Plugin\RecipeUnpack\UnpackCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:298
     Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:1040
     Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:301
     Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:397
     Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:171
     Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:137
     Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:98
     require() at /usr/local/bin/composer:29
    
  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    Weird. Send me your composer.json and composer.lock?

  • πŸ‡§πŸ‡ΎBelarus savage1974

    phenaproxima,

    Here are the files

    PS I rolled back to the moment before the upgrade

  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    Thanks!

    By looking at the code in UnpackCommand, it seems to me that what's happening here might be a fluke, although core could probably be more defensive here (by using the nullsafe operator instead of calling getType() naively on a package object that might be NULL). But that's a separate issue.

    If you run composer validate, do you get any errors reported?

    If not, and you feel up to doing some debugging, then do the upgrade again, but before running composer drupal:recipe-unpack, change UnpackCommand.php, around like 58, to look like this:

            $package = $local_repo->findPackage($link->getTarget(), $link->getConstraint());
            if ($package === NULL) {
              $output->writeln($link->getTarget() . ' not found');
            }
            if ($package->getType() === Plugin::RECIPE_PACKAGE_TYPE) {
              $package_names[] = $package->getName();
            }
    

    ...and let me know what it says when you run composer drupal:recipe-unpack. It's expecting to find some package installed locally, but it's not. It's totally possible that what you've found here is a bug in core that we should fix, but without a little more information it's very hard to say for sure.

  • πŸ‡§πŸ‡ΎBelarus savage1974

    Thanks a lot, Adam!

    The problem was the '"ext-mbstring": "*"' in the composer.json.
    I removed this extension from "require", updated composer and all commands worked successfully.

    Thank you so much for your help, and blame me of not knowing the "composer validate" command.

    best regards,
    Savage

  • πŸ‡§πŸ‡ΎBelarus savage1974

    One more question - after completing all the commands, the following message appeared on the update page (/admin/modules/update):

    Your site cannot be automatically updated until further action is performed.
    Unsupported plugin found Composer.
    drupal/core-recipe-unpack
    

    Is this normal or I should fix it?

  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    Now that is awesome teamwork!

    The fact that the unpacker choked on ext-mbstring is a straight-up bug in core and needs to be fixed. Nice find!

    As for the message you're getting, that's a bit of a puzzler. Core maintains a hard-coded list of Composer plugins that are supported by the Package Manager module (https://git.drupalcode.org/project/drupal/-/blob/11.2.x/core/modules/pac...), but the unpacker is listed as one of them.

    I suspect you're probably running the contributed version of Package Manager, not the core version. That would be the case if you are still using Automatic Updates 3.x, which is exactly what Drupal CMS 1.1.x and earlier shipped with.

    Now that the unpacker is working, I think you might need to do the update at the command line, rather than in the UI. Try this:

    composer require --no-update "drupal/automatic_updates:^3.1 || ^4" "drupal/project_browser:^2.1"
    composer update --with-all-dependencies
    ./vendor/bin/drush updb
    

    Transferring this issue to the core issue queue to fix the unpacking bug.

  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts
  • Merge request !12790Adjust fixture to test this and fix the bug β†’ (Closed) created by phenaproxima
  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts
  • Pipeline finished with Failed
    3 days ago
    Total: 741s
    #552270
  • Pipeline finished with Failed
    2 days ago
    Total: 685s
    #552276
  • Pipeline finished with Failed
    2 days ago
    Total: 1079s
    #552275
  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    Here's a test run proving that the tests can reproduce the bug: https://git.drupalcode.org/issue/drupal-3536939/-/jobs/5951055#L266

    I'm hoping the committers will backport this as a non-disruptive bug fix.

  • Pipeline finished with Success
    2 days ago
    Total: 933s
    #552286
  • πŸ‡§πŸ‡ΎBelarus savage1974

    Adam, here is my output:

    ddev composer require --no-update "drupal/automatic_updates:^3.1 || ^4" "drupal/project_browser:^2.1"
    ./composer.json has been updated
    ~/DEV/bks git:[091-back--core-modules-update]
    ddev composer update --with-all-dependencies
    Loading composer repositories with package information
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires drupal/project_browser ^2.1, found drupal/project_browser[dev-2.1.x, 2.1.0-beta2, 2.1.x-dev (alias of dev-2.1.x)] but it does not match your minimum-stability.
    
    Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
    Composer [update --with-all-dependencies] failed, composer command failed: exit status 2. stderr=
    

    PS just in case, I'd like to inform you that I installed some modules through the composer, and some through recipe activation or the project_manager.

  • πŸ‡§πŸ‡ΎBelarus savage1974

    I tried to specify the version of the project manager from his page. here is my code output:

    ddev composer require --no-update "drupal/automatic_updates:^3.1 || ^4" "drupal/project_browser:^2.1@beta"
    ./composer.json has been updated
    
    ddev composer update --with-all-dependencies
    Loading composer repositories with package information
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires drupal/core-recommended 11.1.8 -> satisfiable by drupal/core-recommended[11.1.8].
        - Root composer.json requires drupal/project_browser ^2.1@beta -> satisfiable by drupal/project_browser[2.1.0-beta2].
        - drupal/core-recommended 11.1.8 requires drupal/core 11.1.8 -> satisfiable by drupal/core[11.1.8].
        - drupal/project_browser 2.1.0-beta2 requires drupal/core ^11.2 -> satisfiable by drupal/core[11.2.0, 11.2.1, 11.2.2].
        - You can only install one version of a package, so only one of these can be installed: drupal/core[10.4.0, ..., 10.5.1, 11.0.0, ..., 11.2.2].
    
    Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
    Composer [update --with-all-dependencies] failed, composer command failed: exit status 2. stderr=
    
  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    @savage1974, thanks for sharing the command output.

    I think you're running into these issues because we did the unpacking before updating the 1.1.x versions of the recipes, so you're not operating from the latest (11.2 compatible) constraints. Considering the fact that your upgrade was derailed by this core bug, that's understandable!

    Try:

    composer require --no-update "drupal/automatic_updates:^4" "drupal/project_browser:^2.1@beta" "drupal/gin:^5" "drupal/gin_toolbar:^3"
    composer update --with-all-dependencies
    
  • Pipeline finished with Success
    2 days ago
    Total: 801s
    #552369
  • πŸ‡§πŸ‡ΎBelarus savage1974

    Adam, the problem remains ((:

    ddev composer require --no-update "drupal/automatic_updates:^4" "drupal/project_browser:^2.1@beta" "drupal/gin:^5" "drupal/gin_toolbar:^3"
    ./composer.json has been updated
    
    ddev composer update --with-all-dependencies
    Loading composer repositories with package information
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires drupal/core-recommended 11.1.8 -> satisfiable by drupal/core-recommended[11.1.8].
        - Root composer.json requires drupal/project_browser ^2.1@beta -> satisfiable by drupal/project_browser[2.1.0-beta2].
        - drupal/core-recommended 11.1.8 requires drupal/core 11.1.8 -> satisfiable by drupal/core[11.1.8].
        - drupal/project_browser 2.1.0-beta2 requires drupal/core ^11.2 -> satisfiable by drupal/core[11.2.0, 11.2.1, 11.2.2].
        - You can only install one version of a package, so only one of these can be installed: drupal/core[10.4.0, ..., 10.5.1, 11.0.0, ..., 11.2.2].
    
  • πŸ‡§πŸ‡ΎBelarus savage1974

    Adam, I solved it.
    Commands:

    # Delete problem modules
    ddev composer remove drupal/automatic_updates drupal/project_browser drupal/gin drupal/gin_toolbar
    # Updating composer & it's dependencies
    ddev composer update --with-all-dependencies
    # Register problem modules. I'm not sure if this command is necessary.
    ddev composer require --no-update "drupal/automatic_updates:^4" "drupal/project_browser:^2.1@beta" "drupal/gin:^5" "drupal/gin_toolbar:^3"
    # Update drupal to new core (incl. installing problem modules)
    ddev composer require drupal/core-recommended:11.2.2 drupal/core-composer-scaffold:11.2.2 drupal/core-project-message:11.2.2 --update-with-all-dependencies
    

    Now I'll try to go all the way from the beginning and make a general summary of the necessary commands...

  • πŸ‡§πŸ‡ΎBelarus savage1974

    Final list of commands:

    # remove from composer.json
    - "ext-mbstring": "*" ("require" section)
    - all patches (pre-save, "patches" section)
    # remove patch's module
    composer remove cweagans/composer-patches
    # Update all modules
    composer update "drupal/*" --with-all-dependencies
    drush updatedb
    drush cr
    
    # Set up recipe unpacking
    composer config allow-plugins.drupal/core-recipe-unpack true
    composer require drupal/core-recipe-unpack
    composer drupal:recipe-unpack
    composer update --with-all-dependencies
    
    # Delete problem modules
    composer remove drupal/automatic_updates drupal/project_browser drupal/gin drupal/gin_toolbar
    
    # Update drupal to new core (incl. installing problem modules)
    composer require drupal/core-recommended:11.2.2 drupal/core-composer-scaffold:11.2.2 drupal/core-project-message:11.2.2 --update-with-all-dependencies
    drush cr
    drush updb
    
    # Return all patches
    ## Install patch module
    composer require cweagans/composer-patches
    ##  Return in "extra" section "patches" (in composer.json)
    
  • πŸ‡§πŸ‡ΎBelarus savage1974

    There is still 1 problem (when updating the database):

    ddev drush updb
     [warning] Drupal requires databases that support JSON storage.
     (Currently using Database support for JSON Available
    )
     [warning] The package manager is available for
    pre-testing. To  
    install the module in the file settings.php
    set the value to TRUE for 'testing_package_manager
    
  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    Relax, friend. :) Except for no recipes showing up, it sounds like it went fine. Once we got the commands right, anyway.

    The package manager is available for pre-testing.

    This is normal. It's just a warning currently put there by core, because Package Manager is not technically stable yet. It won't stop you from doing anything, or change the operation of the site. You can safely ignore it.

    and the Drupal CMS itself has not been updated

    It has been updated. Drupal CMS is just core plus a collection of contrib modules; it's not a specific thing you can update separately. That's not how it works. When you update core and the modules, that is effectively the same thing as updating Drupal CMS.

    remained 1.1 in the composer.json

    This is normal. That version number never changes. The only reason it's there so that, when we receive support requests (like yours!) we can reliably know which version you started from. The version is not used for anything other than that; you can even just remove it if you like, or change it.

    Nothing is shown on the recipes page

    This is the only truly legitimate problem I'm seeing here. Try drush cr and drush project-browser:storage-clear, then refresh. If nothing still shows up, see if there is any error reported in the logs -- I bet there will be something, and it's probably a fairly straightforward fix.

  • πŸ‡§πŸ‡ΎBelarus savage1974

    This is the only truly legitimate problem I'm seeing here. Try drush cr and drush project-browser:storage-clear, then refresh. If nothing still shows up, see if there is any error reported in the logs -- I bet there will be something, and it's probably a fairly straightforward fix.

    Yes, I got an error in my log's report:
    Drupal\Core\Recipe\RecipePreExistingConfigException: The configuration 'field.storage.media.field_media_image' exists already and does not match the recipe's configuration in Drupal\Core\Recipe\ConfigConfigurator->__construct() (line 68 of /var/www/html/web/core/lib/Drupal/Core/Recipe/ConfigConfigurator.php).

    #0 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(94): Drupal\Core\Recipe\ConfigConfigurator->__construct()
    #1 /var/www/html/web/core/lib/Drupal/Core/Recipe/RecipeConfigurator.php(70): Drupal\Core\Recipe\Recipe::createFromDirectory()
    #2 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(381): Drupal\Core\Recipe\RecipeConfigurator::getIncludedRecipe()
    #3 /var/www/html/vendor/symfony/validator/Constraints/CallbackValidator.php(34): Drupal\Core\Recipe\Recipe::validateRecipeExists()
    #4 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\CallbackValidator->validate()
    #5 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #6 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #7 /var/www/html/vendor/symfony/validator/Constraints/SequentiallyValidator.php(36): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #8 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\SequentiallyValidator->validate()
    #9 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #10 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #11 /var/www/html/vendor/symfony/validator/Constraints/AllValidator.php(43): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #12 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\AllValidator->validate()
    #13 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #14 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #15 /var/www/html/vendor/symfony/validator/Constraints/CollectionValidator.php(58): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #16 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\CollectionValidator->validate()
    #17 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #18 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #19 /var/www/html/vendor/symfony/validator/Validator/RecursiveValidator.php(81): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #20 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(313): Symfony\Component\Validator\Validator\RecursiveValidator->validate()
    #21 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(90): Drupal\Core\Recipe\Recipe::parse()
    #22 /var/www/html/web/core/lib/Drupal/Core/Recipe/RecipeConfigurator.php(70): Drupal\Core\Recipe\Recipe::createFromDirectory()
    #23 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(381): Drupal\Core\Recipe\RecipeConfigurator::getIncludedRecipe()
    #24 /var/www/html/vendor/symfony/validator/Constraints/CallbackValidator.php(34): Drupal\Core\Recipe\Recipe::validateRecipeExists()
    #25 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\CallbackValidator->validate()
    #26 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #27 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #28 /var/www/html/vendor/symfony/validator/Constraints/SequentiallyValidator.php(36): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #29 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\SequentiallyValidator->validate()
    #30 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #31 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #32 /var/www/html/vendor/symfony/validator/Constraints/AllValidator.php(43): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #33 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\AllValidator->validate()
    #34 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #35 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #36 /var/www/html/vendor/symfony/validator/Constraints/CollectionValidator.php(58): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #37 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\CollectionValidator->validate()
    #38 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #39 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #40 /var/www/html/vendor/symfony/validator/Validator/RecursiveValidator.php(81): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #41 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(313): Symfony\Component\Validator\Validator\RecursiveValidator->validate()
    #42 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(90): Drupal\Core\Recipe\Recipe::parse()
    #43 /var/www/html/web/core/lib/Drupal/Core/Recipe/RecipeConfigurator.php(70): Drupal\Core\Recipe\Recipe::createFromDirectory()
    #44 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(381): Drupal\Core\Recipe\RecipeConfigurator::getIncludedRecipe()
    #45 /var/www/html/vendor/symfony/validator/Constraints/CallbackValidator.php(34): Drupal\Core\Recipe\Recipe::validateRecipeExists()
    #46 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\CallbackValidator->validate()
    #47 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #48 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #49 /var/www/html/vendor/symfony/validator/Constraints/SequentiallyValidator.php(36): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #50 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\SequentiallyValidator->validate()
    #51 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #52 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #53 /var/www/html/vendor/symfony/validator/Constraints/AllValidator.php(43): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #54 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\AllValidator->validate()
    #55 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #56 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #57 /var/www/html/vendor/symfony/validator/Constraints/CollectionValidator.php(58): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #58 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\CollectionValidator->validate()
    #59 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #60 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #61 /var/www/html/vendor/symfony/validator/Validator/RecursiveValidator.php(81): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #62 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(313): Symfony\Component\Validator\Validator\RecursiveValidator->validate()
    #63 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(90): Drupal\Core\Recipe\Recipe::parse()
    #64 /var/www/html/web/core/lib/Drupal/Core/Recipe/RecipeConfigurator.php(70): Drupal\Core\Recipe\Recipe::createFromDirectory()
    #65 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(381): Drupal\Core\Recipe\RecipeConfigurator::getIncludedRecipe()
    #66 /var/www/html/vendor/symfony/validator/Constraints/CallbackValidator.php(34): Drupal\Core\Recipe\Recipe::validateRecipeExists()
    #67 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\CallbackValidator->validate()
    #68 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #69 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #70 /var/www/html/vendor/symfony/validator/Constraints/SequentiallyValidator.php(36): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #71 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\SequentiallyValidator->validate()
    #72 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #73 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #74 /var/www/html/vendor/symfony/validator/Constraints/AllValidator.php(43): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #75 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\AllValidator->validate()
    #76 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #77 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #78 /var/www/html/vendor/symfony/validator/Constraints/CollectionValidator.php(58): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #79 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(747): Symfony\Component\Validator\Constraints\CollectionValidator->validate()
    #80 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(592): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateInGroup()
    #81 /var/www/html/vendor/symfony/validator/Validator/RecursiveContextualValidator.php(101): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validateGenericNode()
    #82 /var/www/html/vendor/symfony/validator/Validator/RecursiveValidator.php(81): Symfony\Component\Validator\Validator\RecursiveContextualValidator->validate()
    #83 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(313): Symfony\Component\Validator\Validator\RecursiveValidator->validate()
    #84 /var/www/html/web/core/lib/Drupal/Core/Recipe/Recipe.php(90): Drupal\Core\Recipe\Recipe::parse()
    #85 /var/www/html/web/modules/contrib/project_browser/src/Activator/RecipeActivator.php(164): Drupal\Core\Recipe\Recipe::createFromDirectory()
    #86 /var/www/html/web/modules/contrib/project_browser/src/ProjectBrowser/Normalizer.php(113): Drupal\project_browser\Activator\RecipeActivator->getTasks()
    #87 /var/www/html/web/modules/contrib/project_browser/src/ProjectBrowser/Normalizer.php(37): Drupal\project_browser\ProjectBrowser\Normalizer->getActivationInfo()
    #88 /var/www/html/web/modules/contrib/project_browser/src/ProjectBrowser/Normalizer.php(45): Drupal\project_browser\ProjectBrowser\Normalizer->normalize()
    #89 [internal function]: Drupal\project_browser\ProjectBrowser\Normalizer->Drupal\project_browser\ProjectBrowser\{closure}()
    #90 /var/www/html/web/modules/contrib/project_browser/src/ProjectBrowser/Normalizer.php(44): array_map()
    #91 /var/www/html/web/modules/contrib/project_browser/src/Controller/ProjectBrowserEndpointController.php(82): Drupal\project_browser\ProjectBrowser\Normalizer->normalize()
    #92 [internal function]: Drupal\project_browser\Controller\ProjectBrowserEndpointController->getAllProjects()
    #93 /var/www/html/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array()
    #94 /var/www/html/web/core/lib/Drupal/Core/Render/Renderer.php(622): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
    #95 /var/www/html/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(121): Drupal\Core\Render\Renderer->executeInRenderContext()
    #96 /var/www/html/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext()
    #97 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(183): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
    #98 /var/www/html/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw()
    #99 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/Session.php(53): Symfony\Component\HttpKernel\HttpKernel->handle()
    #100 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle()
    #101 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\Core\StackMiddleware\KernelPreHandle->handle()
    #102 /var/www/html/web/core/modules/big_pipe/src/StackMiddleware/ContentLength.php(32): Drupal\Core\StackMiddleware\ContentLength->handle()
    #103 /var/www/html/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(116): Drupal\big_pipe\StackMiddleware\ContentLength->handle()
    #104 /var/www/html/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(90): Drupal\page_cache\StackMiddleware\PageCache->pass()
    #105 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle()
    #106 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle()
    #107 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(53): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle()
    #108 /var/www/html/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\AjaxPageState->handle()
    #109 /var/www/html/web/core/lib/Drupal/Core/DrupalKernel.php(715): Drupal\Core\StackMiddleware\StackedHttpKernel->handle()
    #110 /var/www/html/web/index.php(19): Drupal\Core\DrupalKernel->handle()
    #111 {main}
    

    PS I wonder if there is any way to hide a long text under a spoiler?

  • πŸ‡ΊπŸ‡ΈUnited States phenaproxima Massachusetts

    Have you changed something about the storage of the field_media_image field as it exists on Image media items?

    That error is a normal error for a recipe to give if you have. Recipes are generally relaxed about allowing changes to most configuration, but field storages are one they are usually strict about -- because that influences the database storage in a way that would could cause very bad bugs, and even data loss, if it's configured differently than the recipe expects it to be.

    So this is not an update issue -- this is the recipe refusing to even instantiate itself in a potentially conflicting context. But, as I said, that is pretty standard recipe behavior.

    A little more information on that: https://project.pages.drupalcode.org/distributions_recipes/recipe_author...

    To fix it, you'll probably want to revert any changes you've made to that particular field storage. (It'd probably be under "Storage settings", IIRC, if you go configure the Image media type and edit its Image field.)

  • πŸ‡ΊπŸ‡ΈUnited States thejimbirch Cape Cod, Massachusetts

    Composer platform dependencies allow dependencies to be run as virtual packages. Since these packages don't exist, they can't be unpacked.

    The fix in the unpack command uses Composer’s method of checking for platform requirements, and skips them if they are platform requirements. A test was also added replicating the bug.

    Since this is a bug, we'd love it if this could also be back ported to 11.2.

    Marking as RTBC.

    • larowlan β†’ committed 9ac21a92 on 11.2.x
      Issue #3536939 by phenaproxima, savage1974, thejimbirch: The unpacker...
    • larowlan β†’ committed 47f443d0 on 11.x
      Issue #3536939 by phenaproxima, savage1974, thejimbirch: The unpacker...
  • πŸ‡¦πŸ‡ΊAustralia larowlan πŸ‡¦πŸ‡ΊπŸ.au GMT+10

    Committed to 11.x and backported to 11.2.x - thanks folks

    Congrats on your first core issue credit @savage1974 πŸŽ‰

  • πŸ‡¦πŸ‡ΊAustralia larowlan πŸ‡¦πŸ‡ΊπŸ.au GMT+10
Production build 0.71.5 2024