From 272fc8524e1297abe73cc97eb294896d4c862620 Mon Sep 17 00:00:00 2001 From: netkas Date: Thu, 19 Sep 2024 13:52:20 -0400 Subject: [PATCH] Fixed version filtering and sorting in PackagistRepository --- .../PackagistExtension/PackagistRepository.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/ncc/Classes/PackagistExtension/PackagistRepository.php b/src/ncc/Classes/PackagistExtension/PackagistRepository.php index a6b29a7..a8cee67 100644 --- a/src/ncc/Classes/PackagistExtension/PackagistRepository.php +++ b/src/ncc/Classes/PackagistExtension/PackagistRepository.php @@ -163,23 +163,21 @@ { $versions = self::getVersions($repository, $vendor, $project); - /** @noinspection KeysFragmentationWithArrayFunctionsInspection */ + // Filter out pre-release versions such as alpha, beta, rc, dev $versions = array_filter($versions, static function($version) { return !preg_match('/-alpha|-beta|-rc|dev/i', $version); }); - usort($versions, static function($a, $b) - { - return Comparator::lessThanOrEqualTo($a, $b) ? 1 : -1; - }); + // Sort versions in descending order using Semver::rsort + $versions = Semver::rsort($versions); - if($versions[0] === null) + if (!isset($versions[0])) { throw new NetworkException(sprintf('Failed to resolve latest version for %s/%s', $vendor, $project)); } - return $versions[0]; + return $versions[0]; // The first version in the sorted array is the latest } /**