--TEST-- Partial update from lock file should apply lock file and if an unstable package is not allowed anymore by latest composer.json it should fail --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" }, { "name": "b/unstable", "version": "1.1.0-alpha" }, { "name": "c/uptodate", "version": "1.0.0" }, { "name": "d/removed", "version": "1.0.0" } ] } ], "require": { "a/old": "*", "b/unstable": "*", "c/uptodate": "*" } } --LOCK-- { "packages": [ { "name": "a/old", "version": "1.0.0" }, { "name": "b/unstable", "version": "1.1.0-alpha" }, { "name": "c/uptodate", "version": "1.0.0" }, { "name": "d/removed", "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" }, { "name": "c/uptodate", "version": "2.0.0" } ] --RUN-- update c/uptodate --EXPECT-- --EXPECT-EXIT-CODE-- 2 --EXPECT-OUTPUT-- Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - b/unstable is fixed to 1.1.0-alpha (lock file version) by a partial update but that version is rejected by your minimum-stability. Make sure you whitelist it for update.