Small tweaks and make sure composer fails properly in a plane
parent
a5d5270a7e
commit
4b7658a2a8
|
@ -250,13 +250,18 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito
|
||||||
foreach ($packageNameMap as $name => $constraint) {
|
foreach ($packageNameMap as $name => $constraint) {
|
||||||
$matches = array();
|
$matches = array();
|
||||||
|
|
||||||
|
// if a repo has no providers but only partial packages and the partial packages are missing
|
||||||
|
// then we don't want to call whatProvides as it would try to load from the providers and fail
|
||||||
if (!$hasProviders && !isset($this->partialPackagesByName[$name])) {
|
if (!$hasProviders && !isset($this->partialPackagesByName[$name])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$candidates = $this->whatProvides($name, $isPackageAcceptableCallable);
|
$candidates = $this->whatProvides($name, $isPackageAcceptableCallable);
|
||||||
foreach ($candidates as $candidate) {
|
foreach ($candidates as $candidate) {
|
||||||
if ($candidate->getName() === $name && (!$constraint || $constraint->matches(new Constraint('==', $candidate->getVersion())))) {
|
if ($candidate->getName() !== $name) {
|
||||||
|
throw new \LogicException('whatProvides should never return a package with a different name than the requested one');
|
||||||
|
}
|
||||||
|
if (!$constraint || $constraint->matches(new Constraint('==', $candidate->getVersion()))) {
|
||||||
$matches[spl_object_hash($candidate)] = $candidate;
|
$matches[spl_object_hash($candidate)] = $candidate;
|
||||||
if ($candidate instanceof AliasPackage && !isset($matches[spl_object_hash($candidate->getAliasOf())])) {
|
if ($candidate instanceof AliasPackage && !isset($matches[spl_object_hash($candidate->getAliasOf())])) {
|
||||||
$matches[spl_object_hash($candidate->getAliasOf())] = $candidate->getAliasOf();
|
$matches[spl_object_hash($candidate->getAliasOf())] = $candidate->getAliasOf();
|
||||||
|
@ -278,7 +283,7 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito
|
||||||
return $packages;
|
return $packages;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->lazyProvidersUrl) {
|
if ($this->lazyProvidersUrl && count($packageNameMap)) {
|
||||||
$packages = array_merge($packages, $this->loadAsyncPackages($packageNameMap, $isPackageAcceptableCallable));
|
$packages = array_merge($packages, $this->loadAsyncPackages($packageNameMap, $isPackageAcceptableCallable));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -225,6 +225,7 @@ class CurlDownloader
|
||||||
if (!isset($this->jobs[$i])) {
|
if (!isset($this->jobs[$i])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$progress = array_diff_key(curl_getinfo($curlHandle), self::$timeInfo);
|
$progress = array_diff_key(curl_getinfo($curlHandle), self::$timeInfo);
|
||||||
$job = $this->jobs[$i];
|
$job = $this->jobs[$i];
|
||||||
unset($this->jobs[$i]);
|
unset($this->jobs[$i]);
|
||||||
|
@ -239,7 +240,7 @@ class CurlDownloader
|
||||||
try {
|
try {
|
||||||
// TODO progress
|
// TODO progress
|
||||||
//$this->onProgress($curlHandle, $job['callback'], $progress, $job['progress']);
|
//$this->onProgress($curlHandle, $job['callback'], $progress, $job['progress']);
|
||||||
if (CURLE_OK !== $errno) {
|
if (CURLE_OK !== $errno || $error) {
|
||||||
throw new TransportException($error);
|
throw new TransportException($error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue