mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
78 lines
2.2 KiB
Python
78 lines
2.2 KiB
Python
#!/usr/bin/env python
|
|
# Modify version...
|
|
import os
|
|
import re
|
|
import subprocess
|
|
import sys
|
|
|
|
from packaging.version import Version
|
|
|
|
DEV_RELEASE = os.environ.get("DEV_RELEASE", None) == "1"
|
|
PROJECT_DIRECTORY = os.getcwd()
|
|
PROJECT_DIRECTORY_NAME = os.path.basename(os.path.abspath(PROJECT_DIRECTORY))
|
|
PROJECT_NAME = PROJECT_DIRECTORY_NAME.replace("_", "-")
|
|
|
|
|
|
def main(argv):
|
|
version = argv[1]
|
|
version_obj = Version(version)
|
|
if not DEV_RELEASE:
|
|
# Discard epoch, release numbers after micro, pre-, post-, dev-release segments and local version
|
|
new_version_tuple = list(version_obj.release[:3])
|
|
if len(new_version_tuple) < 3:
|
|
new_version_tuple.append(0)
|
|
else:
|
|
new_version_tuple[2] += 1
|
|
new_version = ".".join(map(str, new_version_tuple))
|
|
else:
|
|
dev_number = version_obj.dev
|
|
assert dev_number is not None
|
|
new_version = f"{version_obj.base_version}.dev{dev_number + 1}"
|
|
|
|
history_path = os.path.join(PROJECT_DIRECTORY, "HISTORY.rst")
|
|
if not DEV_RELEASE:
|
|
with open(history_path) as f:
|
|
history = f.read()
|
|
|
|
def extend(from_str, line):
|
|
from_str += "\n"
|
|
return history.replace(from_str, from_str + line + "\n")
|
|
|
|
history = extend(
|
|
".. to_doc",
|
|
f"""
|
|
---------------------
|
|
{new_version}.dev0
|
|
---------------------
|
|
|
|
""",
|
|
)
|
|
with open(history_path, "w") as f:
|
|
f.write(history)
|
|
|
|
setup_cfg_path = os.path.join(PROJECT_DIRECTORY, "setup.cfg")
|
|
with open(setup_cfg_path) as f:
|
|
setup_cfg = f.read()
|
|
if not DEV_RELEASE:
|
|
setup_cfg = re.sub(r"^version = .*$", f"version = {new_version}.dev0", setup_cfg, count=1, flags=re.MULTILINE)
|
|
else:
|
|
setup_cfg = re.sub(
|
|
r"^version = .*$",
|
|
rf"version = {new_version}",
|
|
setup_cfg,
|
|
count=1,
|
|
flags=re.MULTILINE,
|
|
)
|
|
with open(setup_cfg_path, "w") as f:
|
|
f.write(setup_cfg)
|
|
shell(["git", "commit", "-m", f"Starting work on {PROJECT_NAME} {new_version}", "HISTORY.rst", setup_cfg_path])
|
|
|
|
|
|
def shell(cmds, **kwds):
|
|
p = subprocess.Popen(cmds, **kwds)
|
|
return p.wait()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(sys.argv)
|