|
@@ -429,7 +429,10 @@ class Installer
|
|
|
$this->io->writeError('Nothing to modify in lock file');
|
|
|
}
|
|
|
|
|
|
- $this->extractDevPackages($lockTransaction, $platformRepo, $aliases, $policy);
|
|
|
+ $exitCode = $this->extractDevPackages($lockTransaction, $platformRepo, $aliases, $policy);
|
|
|
+ if ($exitCode !== 0) {
|
|
|
+ return $exitCode;
|
|
|
+ }
|
|
|
|
|
|
// write lock
|
|
|
$platformReqs = $this->extractPlatformRequirements($this->package->getRequires());
|
|
@@ -542,7 +545,7 @@ class Installer
|
|
|
protected function extractDevPackages(LockTransaction $lockTransaction, $platformRepo, $aliases, $policy)
|
|
|
{
|
|
|
if (!$this->package->getDevRequires()) {
|
|
|
- return array();
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
$resultRepo = new ArrayRepository(array());
|
|
@@ -562,7 +565,7 @@ class Installer
|
|
|
$request->requireName($link->getTarget(), $link->getConstraint());
|
|
|
}
|
|
|
|
|
|
- $pool = $repositorySet->createPool($request, $this->eventDispatcher);
|
|
|
+ $pool = $repositorySet->createPoolWithAllPackages();
|
|
|
|
|
|
$solver = new Solver($policy, $pool, $this->io, $repositorySet);
|
|
|
try {
|
|
@@ -570,12 +573,16 @@ class Installer
|
|
|
$solver = null;
|
|
|
} catch (SolverProblemsException $e) {
|
|
|
$this->io->writeError('<error>Unable to find a compatible set of packages based on your non-dev requirements alone.</error>', true, IOInterface::QUIET);
|
|
|
- $this->io->writeError($e->getPrettyString($repositorySet, $request, $pool));
|
|
|
+ $this->io->writeError('Your requirements can be resolved successfully when require-dev packages are present.');
|
|
|
+ $this->io->writeError('You may need to move packages from require-dev or some of their dependencies to require.');
|
|
|
+ $this->io->writeError($e->getPrettyString($repositorySet, $request, $pool, true));
|
|
|
|
|
|
return max(1, $e->getCode());
|
|
|
}
|
|
|
|
|
|
$lockTransaction->setNonDevPackages($nonDevLockTransaction);
|
|
|
+
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
/**
|