From b4bcc5b5c8c1a1d0e1f91570668cc75cf771a60d Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Mon, 22 Oct 2012 15:55:29 +0200 Subject: [PATCH] Fix bogus operations that trigger a "package is not installed" exception for dev installs, refs #789 --- src/Composer/Installer.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Composer/Installer.php b/src/Composer/Installer.php index f2a970f4f..67f45c65e 100644 --- a/src/Composer/Installer.php +++ b/src/Composer/Installer.php @@ -374,6 +374,19 @@ class Installer return false; } + if ($devMode) { + // remove bogus operations that the solver creates for stuff that was force-updated in the non-dev pass + // TODO this should not be necessary ideally, but it seems to work around the problem quite well + foreach ($operations as $index => $op) { + if ('update' === $op->getJobType() && $op->getInitialPackage()->getUniqueName() === $op->getTargetPackage()->getUniqueName() + && $op->getInitialPackage()->getSourceReference() === $op->getTargetPackage()->getSourceReference() + && $op->getInitialPackage()->getDistReference() === $op->getTargetPackage()->getDistReference() + ) { + unset($operations[$index]); + } + } + } + // force dev packages to be updated if we update or install from a (potentially new) lock foreach ($localRepo->getPackages() as $package) { // skip non-dev packages