Add create_release.py script (#798)
diff --git a/scripts/create_release.py b/scripts/create_release.py
new file mode 100755
index 0000000..b84a432
--- /dev/null
+++ b/scripts/create_release.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+
+import json
+import os
+import subprocess
+import sys
+from collections import OrderedDict
+
+script_dir = os.path.dirname(os.path.abspath(__file__))
+root_dir = os.path.dirname(script_dir)
+sys.path.append(root_dir)
+
+import emsdk # noqa
+
+
+def version_to_list(version_string):
+ return [int(part) for part in version_string.split('.')]
+
+
+def main(args):
+ if subprocess.check_output(['git', 'status', '--porcelain'], cwd=root_dir).strip():
+ print('tree is not clean')
+ sys.exit(1)
+
+ release_info = emsdk.load_releases_info()
+ new_version = version_to_list(release_info['latest'])
+ new_version[-1] += 1
+ branch_name = 'version_%s' % '_'.join(str(part) for part in new_version)
+
+ # Create a new git branch
+ subprocess.check_call(['git', 'checkout', '-b', branch_name], cwd=root_dir)
+
+ new_version = '.'.join(str(part) for part in new_version)
+ new_hash = emsdk.get_emscripten_releases_tot()
+ print('Creating new release: %s -> %s' % (new_version, new_hash))
+ release_info['releases'][new_version] = new_hash
+ releases = [(k, v) for k, v in release_info['releases'].items()]
+ releases.sort(key=lambda pair: version_to_list(pair[0]))
+
+ release_info['releases'] = OrderedDict(reversed(releases))
+ release_info['latest'] = new_version
+
+ with open(os.path.join(root_dir, 'emscripten-releases-tags.txt'), 'w') as f:
+ f.write(json.dumps(release_info, indent=2))
+ f.write('\n')
+
+ subprocess.check_call(os.path.join(script_dir, 'update_bazel_workspace.sh'), cwd=root_dir)
+
+ # Create auto-generated changes to the new git branch
+ subprocess.check_call(['git', 'add', '-u', '.'], cwd=root_dir)
+ subprocess.check_call(['git', 'commit', '-m', new_version], cwd=root_dir)
+
+ print('New relase created in branch: `%s`' % branch_name)
+
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv[1:]))