This is an automated email from the ASF dual-hosted git repository.
sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-release.git
The following commit(s) were added to refs/heads/main by this push:
new 1e433f3 Fix a bug with sorting some versions
1e433f3 is described below
commit 1e433f3fda7d2fc12bb06696b4dc75ed618ad9b4
Author: Sean B. Palmer <[email protected]>
AuthorDate: Fri Sep 12 14:12:40 2025 +0100
Fix a bug with sorting some versions
---
atr/db/interaction.py | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/atr/db/interaction.py b/atr/db/interaction.py
index fdb0e22..cc1b424 100644
--- a/atr/db/interaction.py
+++ b/atr/db/interaction.py
@@ -88,7 +88,24 @@ async def all_releases(project: sql.Project) ->
list[sql.Release]:
for release in results:
release.project = project
- results.sort(key=lambda r: version.Version(r.version), reverse=True)
+ try:
+ # This rejects any non PEP 440 versions
+ results.sort(key=lambda r: version.Version(r.version), reverse=True)
+ except Exception:
+
+ def sort_key(release: sql.Release) -> tuple[tuple[int, int | str],
...]:
+ parts = []
+ version = release.version.replace("+", ".").replace("-", ".")
+ for part in version.split("."):
+ try:
+ # Numeric parts: (0, number) to sort before strings
+ parts.append((0, int(part)))
+ except ValueError:
+ # String parts: (1, string) to sort after numbers
+ parts.append((1, part))
+ return tuple(parts)
+
+ results.sort(key=sort_key, reverse=True)
return results
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]