diff options
author | Bernát Gábor <gaborjbernat@gmail.com> | 2018-07-06 17:52:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-06 17:52:19 +0100 |
commit | 6648edd12859e7d01ca823331689f6daeeec8911 (patch) | |
tree | 11fb4d9ffe93eb1369c9ffb3d1a9715d18d93954 /tasks | |
parent | 70e183722749bd6210b703d5c7503be61e1643c7 (diff) | |
download | tox-git-6648edd12859e7d01ca823331689f6daeeec8911.tar.gz |
prepare release 3.1.0a1 (#877)
Diffstat (limited to 'tasks')
-rw-r--r-- | tasks/release.py | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/tasks/release.py b/tasks/release.py index 9da62f9c..c135e868 100644 --- a/tasks/release.py +++ b/tasks/release.py @@ -5,7 +5,7 @@ from pathlib import Path from subprocess import check_call from typing import Tuple -from git import Commit, Head, Remote, Repo, TagReference +from git import Commit, Head, Remote, Repo from packaging.version import Version ROOT_SRC_DIR = Path(__file__).parents[1] @@ -19,20 +19,17 @@ def main(version_str: str) -> None: raise RuntimeError("Current repository is dirty. Please commit any changes and try again.") upstream, release_branch = create_release_branch(repo, version) - release_commit = release_changelog(repo, version) - tag = tag_release_commit(release_commit, repo, version) - print("push release tag") - repo.git.push(upstream.name, tag) - print("push release commit") + release_changelog(repo, version) + print("push release preparation commit") repo.git.push(upstream.name, release_branch) print("All done! ✨ 🍰 ✨") def create_release_branch(repo: Repo, version: Version) -> Tuple[Remote, Head]: - print("create release branch from upstream master") + print("create release preparation branch from upstream master") upstream = get_upstream(repo) upstream.fetch() - branch_name = f"release-{version}" + branch_name = f"prep-release-{version}" release_branch = repo.create_head(branch_name, upstream.refs.master, force=True) upstream.push(refspec=f"{branch_name}:{branch_name}", force=True) release_branch.set_tracking_branch(repo.refs[f"{upstream.name}/{branch_name}"]) @@ -49,26 +46,15 @@ def get_upstream(repo: Repo) -> Remote: def release_changelog(repo: Repo, version: Version) -> Commit: - print("generate release commit") + print("generate prepare release commit") check_call(["towncrier", "--yes", "--version", version.public], cwd=str(ROOT_SRC_DIR)) changed = [item.a_path for item in repo.index.diff(None)] if any((not i.startswith("changelog") or i == "CHANGELOG.rst") for i in changed): raise RuntimeError(f"found changes outside of the changelog domain: {changed}") repo.index.add(changed) - release_commit = repo.index.commit(f"release {version}") + release_commit = repo.index.commit(f"prepare release {version}") return release_commit -def tag_release_commit(release_commit, repo, version) -> TagReference: - print("tag release commit") - existing_tags = [x.name for x in repo.tags] - if version in existing_tags: - print("delete existing tag {}".format(version)) - repo.delete_tag(version) - print("create tag {}".format(version)) - tag = repo.create_tag(version, ref=release_commit, force=True) - return tag - - if __name__ == "__main__": main(sys.argv[1]) |