_scripts: fix latestver.py (#2756)

Fix latestver to sort rc and beta versions before normal releases.
This commit is contained in:
Alessandro Arzilli
2021-10-25 21:38:58 +02:00
committed by GitHub
parent 689e08260b
commit fe100bcb11

View File

@ -2,11 +2,25 @@
import json import json
import urllib import urllib
import sys 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] ver = sys.argv[1]
d = json.loads(urllib.urlopen('https://golang.org/dl/?mode=json&include=all').read()) 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: for x in ds:
if x['version'][:len(ver)] == ver: if x['version'][:len(ver)] == ver:
print x['version'] print x['version']