From dd5aaa72dc697d27b2f66e902029e9548a4b3460 Mon Sep 17 00:00:00 2001 From: Weston Pace Date: Tue, 17 Mar 2026 09:21:30 -0700 Subject: [PATCH] ci: modify check_lance_release.py to prefer stable releases over betas (#3146) When Lance 3.0.0 released the check_lance_release.py script did not make a PR for it because it was a pre-release. This change may not be perfect but it always ranks stable releases above non-stable releases. --- ci/check_lance_release.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ci/check_lance_release.py b/ci/check_lance_release.py index d1629425e..e906dd489 100755 --- a/ci/check_lance_release.py +++ b/ci/check_lance_release.py @@ -3,6 +3,7 @@ from __future__ import annotations import argparse +import functools import json import os import re @@ -26,6 +27,7 @@ SEMVER_RE = re.compile( ) +@functools.total_ordering @dataclass(frozen=True) class SemVer: major: int @@ -156,7 +158,9 @@ def read_current_version(repo_root: Path) -> str: def determine_latest_tag(tags: Iterable[TagInfo]) -> TagInfo: - return max(tags, key=lambda tag: tag.semver) + # Stable releases (no prerelease) are always preferred over pre-releases. + # Within each group, standard semver ordering applies. + return max(tags, key=lambda tag: (not tag.semver.prerelease, tag.semver)) def write_outputs(args: argparse.Namespace, payload: dict) -> None: