Fix package sorting logic, fixes #11287
parent
50cded331c
commit
2f2d6c9de7
|
@ -28,21 +28,22 @@ class PackageSorter
|
||||||
*/
|
*/
|
||||||
public static function getMostCurrentVersion(array $packages): ?PackageInterface
|
public static function getMostCurrentVersion(array $packages): ?PackageInterface
|
||||||
{
|
{
|
||||||
return array_reduce($packages, static function ($carry, $pkg) {
|
if (count($packages) === 0) {
|
||||||
if ($carry === null) {
|
return null;
|
||||||
return $pkg;
|
}
|
||||||
|
|
||||||
|
$highest = reset($packages);
|
||||||
|
foreach ($packages as $candidate) {
|
||||||
|
if ($candidate->isDefaultBranch()) {
|
||||||
|
return $candidate;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($pkg->isDefaultBranch()) {
|
if (version_compare($highest->getVersion(), $candidate->getVersion(), '<')) {
|
||||||
return $pkg;
|
$highest = $candidate;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!$carry->isDefaultBranch() && version_compare($carry->getVersion(), $pkg->getVersion(), '<')) {
|
return $highest;
|
||||||
return $pkg;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $carry;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue