From fe100bcb1169e5bcd6835577e77b72881e59bd94 Mon Sep 17 00:00:00 2001 From: Alessandro Arzilli Date: Mon, 25 Oct 2021 21:38:58 +0200 Subject: [PATCH] _scripts: fix latestver.py (#2756) Fix latestver to sort rc and beta versions before normal releases. --- _scripts/latestver.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/_scripts/latestver.py b/_scripts/latestver.py index cad2f80a..886d476e 100644 --- a/_scripts/latestver.py +++ b/_scripts/latestver.py @@ -2,11 +2,25 @@ import json import urllib import sys -from distutils.version import LooseVersion +import re + +def splitver(x): + v = re.split(r'([^\d]+)', x) + v[0] = int(v[0]) + if len(v) > 2: + v[2] = int(v[2]) + if len(v) > 4: + v[4] = int(v[4]) + # make rc/beta versions sort before normal versions + if len(v) > 3 and v[3] == '.': + v[3] = '~' + elif len(v) == 3: + v.append('~') + return v ver = sys.argv[1] d = json.loads(urllib.urlopen('https://golang.org/dl/?mode=json&include=all').read()) -ds = sorted(d, reverse=True, key=lambda it: LooseVersion(it['version'][2:])) +ds = sorted(d, reverse=True, key=lambda it: splitver(it['version'][2:])) for x in ds: if x['version'][:len(ver)] == ver: print x['version']