From 5a247ca9a5b4adecb475e5676f09d2c29c451c3c Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Mon, 27 Aug 2012 12:03:07 +0200 Subject: [PATCH] Fix regression in updating dev packages to latest ref, fixes #1030 --- src/Composer/Installer.php | 5 +++ .../update-dev-ignores-providers.test | 38 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 tests/Composer/Test/Fixtures/installer/update-dev-ignores-providers.test diff --git a/src/Composer/Installer.php b/src/Composer/Installer.php index 6c1761134..d14662518 100644 --- a/src/Composer/Installer.php +++ b/src/Composer/Installer.php @@ -404,6 +404,11 @@ class Installer continue; } + // skip providers/replacers + if ($match->getName() !== $package->getName()) { + continue; + } + $newPackage = $match; break; } diff --git a/tests/Composer/Test/Fixtures/installer/update-dev-ignores-providers.test b/tests/Composer/Test/Fixtures/installer/update-dev-ignores-providers.test new file mode 100644 index 000000000..e0858e054 --- /dev/null +++ b/tests/Composer/Test/Fixtures/installer/update-dev-ignores-providers.test @@ -0,0 +1,38 @@ +--TEST-- +Updating a dev package selects its newest version but no providers +--COMPOSER-- +{ + "repositories": [ + { + "type": "package", + "package": [ + { + "name": "a/replacer", "version": "dev-master", + "source": { "reference": "wrong", "url": "", "type": "git" }, + "replace": { + "a/installed": "dev-master" + } + }, + { + "name": "a/installed", "version": "dev-master", + "source": { "reference": "newref", "url": "", "type": "git" } + } + ] + } + ], + "require": { + "a/installed": "dev-master" + }, + "minimum-stability": "dev" +} +--INSTALLED-- +[ + { + "name": "a/installed", "version": "dev-master", + "source": { "reference": "oldref", "url": "", "type": "git" } + } +] +--RUN-- +update +--EXPECT-- +Updating a/installed (dev-master oldref) to a/installed (dev-master newref)