diff --git a/src/Composer/Package/Locker.php b/src/Composer/Package/Locker.php index 1e5ea8531..f4c252989 100644 --- a/src/Composer/Package/Locker.php +++ b/src/Composer/Package/Locker.php @@ -345,18 +345,6 @@ class Locker $lock['platform-overrides'] = $platformOverrides; } - if (empty($lock['packages']) && empty($lock['packages-dev']) && empty($lock['platform']) && empty($lock['platform-dev'])) { - if ($this->lockFile->exists()) { - if ($write) { - unlink($this->lockFile->getPath()); - } else { - $this->virtualFileWritten = false; - } - } - - return false; - } - try { $isLocked = $this->isLocked(); } catch (ParsingException $e) { diff --git a/tests/Composer/Test/Fixtures/installer/update-to-empty-from-blank.test b/tests/Composer/Test/Fixtures/installer/update-to-empty-from-blank.test new file mode 100644 index 000000000..e9892c3b6 --- /dev/null +++ b/tests/Composer/Test/Fixtures/installer/update-to-empty-from-blank.test @@ -0,0 +1,20 @@ +--TEST-- +Update to a state without dependency works well from a blank slate +--COMPOSER-- +{ +} +--RUN-- +update +--EXPECT-LOCK-- +{ + "packages": [], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} +--EXPECT-- diff --git a/tests/Composer/Test/Fixtures/installer/update-to-empty-from-locked.test b/tests/Composer/Test/Fixtures/installer/update-to-empty-from-locked.test new file mode 100644 index 000000000..c7e93ccaf --- /dev/null +++ b/tests/Composer/Test/Fixtures/installer/update-to-empty-from-locked.test @@ -0,0 +1,47 @@ +--TEST-- +Update to a state without dependency works well from locked with dependency +--COMPOSER-- +{ + "minimum-stability": "dev" +} +--INSTALLED-- +[ + { + "name": "a/a", "version": "dev-master", + "source": { "reference": "1234", "type": "git", "url": "" } + } +] +--LOCK-- +{ + "packages": [ + { + "name": "a/a", "version": "dev-master", + "source": { "reference": "1234", "type": "git", "url": "" }, + "type": "library" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} +--RUN-- +update +--EXPECT-LOCK-- +{ + "packages": [], + "packages-dev": [], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} +--EXPECT-- +Uninstalling a/a (dev-master 1234)