From a4406beef59155f2fbdd70d2adcbc258139cfbd1 Mon Sep 17 00:00:00 2001 From: Oliver Lee Date: Fri, 5 Sep 2025 17:41:34 -0500 Subject: [PATCH] use `versions` from `@bazel_skylib` --- version.bzl | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/version.bzl b/version.bzl index 6c01adc..a528b47 100644 --- a/version.bzl +++ b/version.bzl @@ -1,5 +1,6 @@ """Version rules for toolchains""" +load("@bazel_skylib//lib:versions.bzl", compare = "versions") load( "@toolchains_arm_gnu//toolchain/archives:aarch64_none_elf.bzl", "AARCH64_NONE_ELF", @@ -17,34 +18,12 @@ load( "ARM_NONE_LINUX_GNUEABIHF", ) -def _semver(version): - """Parse a semantic version string into a list of integers.""" - parts = [int(i.split("-")[0]) for i in version.split(".")] - return struct( - major = parts[0], - minor = parts[1], - patch = parts[2], - ) - -def _compare_versions(left, right): - """Compare two semantic versions.""" - left = _semver(left) - right = _semver(right) - - # (a < b): -1, (a > b): 1, (a == b): 0. - compare = lambda a, b: int(a > b) - int(a < b) - - return compare(left.major, right.major) or \ - compare(left.minor, right.minor) or \ - compare(left.patch, right.patch) or \ - 0 - def max_version(versions): """Obtains the minimum version from the list of version strings.""" if versions: maximum = versions.pop(0) for version in versions: - if _compare_versions(maximum, version) < 0: + if not compare.is_at_most(maximum, version): maximum = version return maximum return None @@ -54,7 +33,7 @@ def min_version(versions): if versions: minimum = versions.pop(0) for version in versions: - if _compare_versions(minimum, version) > 0: + if not compare.is_at_least(minimum, version): minimum = version return minimum return None