--TEST-- Update with a package whitelist only updates those packages and their dependencies matching the pattern but no dependencies defined as roo package --COMPOSER-- { "repositories": [ { "type": "package", "package": [ { "name": "fixed", "version": "1.1.0" }, { "name": "fixed", "version": "1.0.0" }, { "name": "whitelisted-component1", "version": "1.1.0" }, { "name": "whitelisted-component1", "version": "1.0.0" }, { "name": "whitelisted-component2", "version": "1.1.0", "require": { "dependency": "1.*", "root-dependency": "1.*" } }, { "name": "whitelisted-component2", "version": "1.0.0", "require": { "dependency": "1.*", "root-dependency": "1.*" } }, { "name": "dependency", "version": "1.1.0" }, { "name": "dependency", "version": "1.0.0" }, { "name": "root-dependency", "version": "1.1.0" }, { "name": "root-dependency", "version": "1.0.0" }, { "name": "unrelated", "version": "1.1.0", "require": { "unrelated-dependency": "1.*" } }, { "name": "unrelated", "version": "1.0.0", "require": { "unrelated-dependency": "1.*" } }, { "name": "unrelated-dependency", "version": "1.1.0" }, { "name": "unrelated-dependency", "version": "1.0.0" } ] } ], "require": { "fixed": "1.*", "whitelisted-component1": "1.*", "whitelisted-component2": "1.*", "root-dependency": "1.*", "unrelated": "1.*" } } --INSTALLED-- [ { "name": "fixed", "version": "1.0.0" }, { "name": "whitelisted-component1", "version": "1.0.0" }, { "name": "whitelisted-component2", "version": "1.0.0", "require": { "dependency": "1.0.0" } }, { "name": "root-dependency", "version": "1.0.0" }, { "name": "dependency", "version": "1.0.0" }, { "name": "unrelated", "version": "1.0.0", "require": { "unrelated-dependency": "1.*" } }, { "name": "unrelated-dependency", "version": "1.0.0" } ] --RUN-- update whitelisted-* --with-dependencies --EXPECT-- Updating whitelisted-component1 (1.0.0) to whitelisted-component1 (1.1.0) Updating dependency (1.0.0) to dependency (1.1.0) Updating whitelisted-component2 (1.0.0) to whitelisted-component2 (1.1.0)