From bc0344155016d713587db564a39800899f6be04c Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Fri, 27 Apr 2018 18:36:48 -0700 Subject: [PATCH 1/3] Automatically detect pickable PRs for patch releases Signed-off-by: Joffrey F --- script/release/release.py | 9 +++++++++ script/release/release/repository.py | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/script/release/release.py b/script/release/release.py index d0545a7e6..e9a52c4aa 100755 --- a/script/release/release.py +++ b/script/release/release.py @@ -34,6 +34,15 @@ def create_initial_branch(repository, args): release_branch = repository.create_release_branch(args.release, args.base) if args.base and args.cherries: print('Detected patch version.') + auto_prs = repository.get_prs_in_milestone(args.release) + if auto_prs: + print( + 'Found the following PRs in this release\'s milestone: {}'.format(', '.join(auto_prs)) + ) + proceed = yesno('Automatically cherry-pick detected PRs? Y/n', default=True) + if proceed: + repository.cherry_pick_prs(release_branch, auto_prs) + cherries = input('Indicate (space-separated) PR numbers to cherry-pick then press Enter:\n') repository.cherry_pick_prs(release_branch, cherries.split()) diff --git a/script/release/release/repository.py b/script/release/release/repository.py index d4d1c7201..9a5d432c0 100644 --- a/script/release/release/repository.py +++ b/script/release/release/repository.py @@ -196,6 +196,24 @@ class Repository(object): f.flush() self.git_repo.git.am('--3way', f.name) + def get_prs_in_milestone(self, version): + milestones = self.gh_repo.get_milestones(state='open') + milestone = None + for ms in milestones: + if ms.title == version: + milestone = ms + break + if not milestone: + print('Didn\'t find a milestone matching "{}"'.format(version)) + return None + + issues = self.gh_repo.get_issues(milestone=milestone, state='all') + prs = [] + for issue in issues: + if issue.pull_request is not None: + prs.append(issue.number) + return sorted(prs) + def get_contributors(pr_data): commits = pr_data.get_commits() From 5eb3f4b32f04c4471b2d537a8bb52480d6eae1c0 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Fri, 27 Apr 2018 18:43:05 -0700 Subject: [PATCH 2/3] Typo fix Signed-off-by: Joffrey F --- script/release/release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/release/release.sh b/script/release/release.sh index f592365d3..affbce37b 100755 --- a/script/release/release.sh +++ b/script/release/release.sh @@ -19,7 +19,7 @@ docker run -e GITHUB_TOKEN=$GITHUB_TOKEN -e BINTRAY_TOKEN=$BINTRAY_TOKEN -it \ --mount type=bind,source=$(pwd),target=/src \ --mount type=bind,source=$(pwd)/.git,target=/src/.git \ --mount type=bind,source=$HOME/.docker,target=/root/.docker \ - --mount type=bind,source=$HOME/.gitconfig,target=/root/.gitconfig + --mount type=bind,source=$HOME/.gitconfig,target=/root/.gitconfig \ --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \ --mount type=bind,source=$HOME/.ssh,target=/root/.ssh \ -v $HOME/.pypirc:/root/.pypirc \ From e6aedb1ce0837918b53d20d3501b740b47a4b920 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Fri, 27 Apr 2018 18:48:30 -0700 Subject: [PATCH 3/3] Partial revert bc034415501 Signed-off-by: Joffrey F --- script/release/release.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/script/release/release.py b/script/release/release.py index e9a52c4aa..d0545a7e6 100755 --- a/script/release/release.py +++ b/script/release/release.py @@ -34,15 +34,6 @@ def create_initial_branch(repository, args): release_branch = repository.create_release_branch(args.release, args.base) if args.base and args.cherries: print('Detected patch version.') - auto_prs = repository.get_prs_in_milestone(args.release) - if auto_prs: - print( - 'Found the following PRs in this release\'s milestone: {}'.format(', '.join(auto_prs)) - ) - proceed = yesno('Automatically cherry-pick detected PRs? Y/n', default=True) - if proceed: - repository.cherry_pick_prs(release_branch, auto_prs) - cherries = input('Indicate (space-separated) PR numbers to cherry-pick then press Enter:\n') repository.cherry_pick_prs(release_branch, cherries.split())