--TEST-- Update with a package allow list removes unused packages --COMPOSER-- { "repositories": [ { "type": "package", "package": [ { "name": "allowed/pkg", "version": "1.1.0" }, { "name": "allowed/pkg", "version": "1.0.0", "require": { "fixed/dependency": "1.0.0", "old/dependency": "1.0.0" } }, { "name": "fixed/dependency", "version": "1.1.0" }, { "name": "fixed/dependency", "version": "1.0.0" }, { "name": "old/dependency", "version": "1.0.0" } ] } ], "require": { "allowed/pkg": "1.*", "fixed/dependency": "1.*" } } --INSTALLED-- [ { "name": "allowed/pkg", "version": "1.0.0", "require": { "old/dependency": "1.0.0", "fixed/dependency": "1.0.0" } }, { "name": "fixed/dependency", "version": "1.0.0" }, { "name": "old/dependency", "version": "1.0.0" } ] --LOCK-- { "packages": [ { "name": "allowed/pkg", "version": "1.0.0", "require": { "old/dependency": "1.0.0", "fixed/dependency": "1.0.0" } }, { "name": "fixed/dependency", "version": "1.0.0" }, { "name": "old/dependency", "version": "1.0.0" } ], "packages-dev": [], "aliases": [], "minimum-stability": "dev", "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": {}, "platform-dev": {} } --RUN-- update --with-dependencies allowed/pkg --EXPECT-- Removing old/dependency (1.0.0) Upgrading allowed/pkg (1.0.0 => 1.1.0)