--TEST-- See Github issue #6661 ( github.com/composer/composer/issues/6661 ). When `with-all-dependencies` is used, Composer\Installer::whitelistUpdateDependencies should update all whitelisted dependencies, even if the dependency is a root requirement. --COMPOSER-- { "repositories": [ { "type": "package", "package": [ { "name": "a", "version": "1.0.0" }, { "name": "a", "version": "1.1.0" }, { "name": "b", "version": "1.0.0", "require": { "a": "~1.0" } }, { "name": "b", "version": "1.1.0", "require": { "a": "~1.1" } } ] } ], "require": { "a": "^1.0", "b": "~1.0" } } --INSTALLED-- [ { "name": "a", "version": "1.0.0" }, { "name": "b", "version": "1.0.0", "require": { "a": "~1.0" } } ] --RUN-- update b --with-all-dependencies --EXPECT-OUTPUT-- Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 0 installs, 2 updates, 0 removals Writing lock file Generating autoload files --EXPECT-- Updating a (1.0.0) to a (1.1.0) Updating b (1.0.0) to b (1.1.0)