| #!/usr/bin/python3 | |
| import sys | |
| import os | |
| import re | |
| from subprocess import check_output, check_call | |
| def bump(version): | |
| components = version.split(".") | |
| components[1] = str(int(components[1]) + 1) | |
| components[2] = "0" | |
| return ".".join(components) | |
| def run(): | |
| os.chdir(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| current_version = check_output( | |
| [sys.executable, "setup.py", "--version"], encoding="utf-8" | |
| ).strip() | |
| new_version = bump(current_version) | |
| check_call( | |
| [ | |
| "sed", | |
| "-r", | |
| "-e", | |
| "s|%s|%s|g" % (re.escape(current_version), new_version), | |
| "-i", | |
| "setup.py", | |
| ] | |
| ) | |
| check_call(["git", "add", "setup.py"]) | |
| tag = "v" + new_version | |
| msg = "Release " + tag | |
| check_call(["git", "commit", "-m", msg]) | |
| check_call(["git", "tag", "-a", "-m", msg, tag]) | |
| print("Check `git log', then `git push --follow-tags'") | |
| if __name__ == "__main__": | |
| run() |