Make sorting of releases in create_release.py stable (#976)
We were only sorting by the X.Y.Z part of the version which meant that, for example, `1.2.3` and `1.3.4-lto` were being compared equal.
This commit is contained in:
@@ -17,13 +17,13 @@
|
|||||||
"3.1.0-asserts": "1de2db691103282dad6b2037018db6ece54f57c6",
|
"3.1.0-asserts": "1de2db691103282dad6b2037018db6ece54f57c6",
|
||||||
"3.0.1": "91b7a67a486d2430e73423a38d950d8a550826ed",
|
"3.0.1": "91b7a67a486d2430e73423a38d950d8a550826ed",
|
||||||
"3.0.1-asserts": "2a84a08e92ce8748015dfc3eee40ee35a853fed0",
|
"3.0.1-asserts": "2a84a08e92ce8748015dfc3eee40ee35a853fed0",
|
||||||
"3.0.0-asserts": "f1d65c26f502220e278d31e7621e99b673e28093",
|
|
||||||
"3.0.0": "7fbe748230f2ce99abbf975d9ad997699efb3153",
|
"3.0.0": "7fbe748230f2ce99abbf975d9ad997699efb3153",
|
||||||
|
"3.0.0-asserts": "f1d65c26f502220e278d31e7621e99b673e28093",
|
||||||
"2.0.34": "d8fc1b92dbc0ce8d740a7adb937c5137ba4755e0",
|
"2.0.34": "d8fc1b92dbc0ce8d740a7adb937c5137ba4755e0",
|
||||||
"2.0.33": "cef8850d57278271766fb2163eebcb07354018e7",
|
"2.0.33": "cef8850d57278271766fb2163eebcb07354018e7",
|
||||||
"2.0.32": "74646397e3c5010824ad60d1de86c6bcbe334dff",
|
"2.0.32": "74646397e3c5010824ad60d1de86c6bcbe334dff",
|
||||||
"2.0.31-asserts": "c1065389ccf4a81e3c1af080316afd444788bc46",
|
|
||||||
"2.0.31": "597724ca3f6cd6e84bea73f1f519a3953b5c273d",
|
"2.0.31": "597724ca3f6cd6e84bea73f1f519a3953b5c273d",
|
||||||
|
"2.0.31-asserts": "c1065389ccf4a81e3c1af080316afd444788bc46",
|
||||||
"2.0.30": "c69458f1bbf3ef5b8da4e934de210659cc9bca04",
|
"2.0.30": "c69458f1bbf3ef5b8da4e934de210659cc9bca04",
|
||||||
"2.0.30-asserts": "e13a2d74c5fa5f175ae7cffd4197fe7f78bea304",
|
"2.0.30-asserts": "e13a2d74c5fa5f175ae7cffd4197fe7f78bea304",
|
||||||
"2.0.29": "c2369dc425725fff86ba90a9007a4603ddf7941b",
|
"2.0.29": "c2369dc425725fff86ba90a9007a4603ddf7941b",
|
||||||
|
|||||||
@@ -14,8 +14,10 @@ sys.path.append(root_dir)
|
|||||||
import emsdk # noqa
|
import emsdk # noqa
|
||||||
|
|
||||||
|
|
||||||
def version_to_list(version_string):
|
def version_key(version_string):
|
||||||
return [int(part) for part in re.split('[.-]', version_string)[:3]]
|
parts = re.split('[.-]', version_string)
|
||||||
|
key = [[int(part) for part in parts[:3]], -len(parts), parts[3:]]
|
||||||
|
return key
|
||||||
|
|
||||||
|
|
||||||
def main(args):
|
def main(args):
|
||||||
@@ -24,7 +26,7 @@ def main(args):
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
release_info = emsdk.load_releases_info()
|
release_info = emsdk.load_releases_info()
|
||||||
new_version = version_to_list(release_info['aliases']['latest'])
|
new_version = version_key(release_info['aliases']['latest'])[0]
|
||||||
new_version[-1] += 1
|
new_version[-1] += 1
|
||||||
branch_name = 'version_%s' % '_'.join(str(part) for part in new_version)
|
branch_name = 'version_%s' % '_'.join(str(part) for part in new_version)
|
||||||
|
|
||||||
@@ -39,7 +41,7 @@ def main(args):
|
|||||||
print('Creating new release: %s -> %s' % (new_version, new_hash))
|
print('Creating new release: %s -> %s' % (new_version, new_hash))
|
||||||
release_info['releases'][new_version] = new_hash
|
release_info['releases'][new_version] = new_hash
|
||||||
releases = [(k, v) for k, v in release_info['releases'].items()]
|
releases = [(k, v) for k, v in release_info['releases'].items()]
|
||||||
releases.sort(key=lambda pair: version_to_list(pair[0]))
|
releases.sort(key=lambda pair: version_key(pair[0]))
|
||||||
|
|
||||||
release_info['releases'] = OrderedDict(reversed(releases))
|
release_info['releases'] = OrderedDict(reversed(releases))
|
||||||
release_info['aliases']['latest'] = new_version
|
release_info['aliases']['latest'] = new_version
|
||||||
|
|||||||
Reference in New Issue
Block a user