--TEST-- Partial update from lock file should update everything to the state of the lock, remove overly unstable packages --COMPOSER-- { "repositories": [ { "type": "package", "package": [ { "name": "a/old", "version": "1.0.0" }, { "name": "a/old", "version": "2.0.0" }, { "name": "b/unstable", "version": "1.0.0", "require": {"f/dependency": "1.*"} }, { "name": "b/unstable", "version": "1.1.0-alpha", "require": {"f/dependency": "1.*"} }, { "name": "c/uptodate", "version": "1.0.0" }, { "name": "d/removed", "version": "1.0.0" }, { "name": "e/newreq", "version": "1.0.0" }, { "name": "f/dependency", "version": "1.1.0" }, { "name": "f/dependency", "version": "1.0.0" } ] } ], "require": { "a/old": "*", "b/unstable": "*", "c/uptodate": "*", "e/newreq": "*" } } --LOCK-- { "packages": [ { "name": "a/old", "version": "1.0.0" }, { "name": "b/unstable", "version": "1.1.0-alpha", "require": {"f/dependency": "1.*"} }, { "name": "c/uptodate", "version": "1.0.0" }, { "name": "d/removed", "version": "1.0.0" }, { "name": "e/newreq", "version": "1.0.0" }, { "name": "f/dependency", "version": "1.0.0" } ], "packages-dev": [], "aliases": [], "minimum-stability": "stable", "stability-flags": { "b/unstable": 15 }, "prefer-stable": false, "prefer-lowest": false, "platform": {}, "platform-dev": {} } --INSTALLED-- [ { "name": "a/old", "version": "0.9.0" }, { "name": "b/unstable", "version": "1.1.0-alpha", "require": {"f/dependency": "1.*"} }, { "name": "c/uptodate", "version": "2.0.0" }, { "name": "f/dependency", "version": "1.0.0" } ] --RUN-- update b/unstable --EXPECT-LOCK-- { "packages": [ { "name": "a/old", "version": "1.0.0", "type": "library" }, { "name": "b/unstable", "version": "1.0.0", "type": "library", "require": {"f/dependency": "1.*"} }, { "name": "c/uptodate", "version": "1.0.0", "type": "library" }, { "name": "e/newreq", "version": "1.0.0", "type": "library" }, { "name": "f/dependency", "version": "1.0.0", "type": "library" } ], "packages-dev": [], "aliases": [], "minimum-stability": "stable", "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, "platform": {}, "platform-dev": {} } --EXPECT-- Upgrading a/old (0.9.0 => 1.0.0) Downgrading b/unstable (1.1.0-alpha => 1.0.0) Downgrading c/uptodate (2.0.0 => 1.0.0) Installing e/newreq (1.0.0)