Browse Source

Do not throw exception on install --dev with old lock files if composer.json has no require-dev

Jordi Boggiano 12 years ago
parent
commit
b519d65bff
1 changed files with 10 additions and 1 deletions
  1. 10 1
      src/Composer/Installer.php

+ 10 - 1
src/Composer/Installer.php

@@ -295,7 +295,16 @@ class Installer
         $installFromLock = false;
         if (!$this->update && $this->locker->isLocked()) {
             $installFromLock = true;
-            $lockedRepository = $this->locker->getLockedRepository($withDevReqs);
+            try {
+                $lockedRepository = $this->locker->getLockedRepository($withDevReqs);
+            } catch (\RuntimeException $e) {
+                // if there are dev requires, then we really can not install
+                if ($this->package->getDevRequires()) {
+                    throw $e;
+                }
+                // no require-dev in composer.json and the lock file was created with no dev info, so skip them
+                $lockedRepository = $this->locker->getLockedRepository();
+            }
         }
 
         $this->whitelistUpdateDependencies(