From 061cdcef4a52787447f804a44188519a6738400d Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Tue, 21 Jul 2015 09:51:17 +0100 Subject: [PATCH 1/5] Fix instructions on how to install the `jira-python` library Adapted from https://github.com/apache/spark/commit/a4df0f2d84ff24318b139db534521141d9d4d593 --- kafka-merge-pr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kafka-merge-pr.py b/kafka-merge-pr.py index c6ef3df39b3fa..87871536d2553 100644 --- a/kafka-merge-pr.py +++ b/kafka-merge-pr.py @@ -435,7 +435,7 @@ def main(): print "JIRA_USERNAME and JIRA_PASSWORD not set" print "Exiting without trying to close the associated JIRA." else: - print "Could not find jira-python library. Run 'sudo pip install jira-python' to install." + print "Could not find jira-python library. Run 'sudo pip install jira' to install." print "Exiting without trying to close the associated JIRA." if __name__ == "__main__": From 0c69a640f8996ded9bc2dfaf01a26346f69ae85d Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Tue, 21 Jul 2015 09:53:17 +0100 Subject: [PATCH 2/5] Check return value of doctest.testmod() Adapted from https://github.com/apache/spark/commit/41afa16500e682475eaa80e31c0434b7ab66abcb --- kafka-merge-pr.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kafka-merge-pr.py b/kafka-merge-pr.py index 87871536d2553..1d3398d010185 100644 --- a/kafka-merge-pr.py +++ b/kafka-merge-pr.py @@ -440,6 +440,8 @@ def main(): if __name__ == "__main__": import doctest - doctest.testmod() + (failure_count, test_count) = doctest.testmod() + if (failure_count): + exit(-1) main() From b30982985eee87d948146acdeeccf46177c2f501 Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Tue, 21 Jul 2015 09:55:59 +0100 Subject: [PATCH 3/5] Set JIRA resolution to "Fixed" instead of relying on default transition Adapted from: * https://github.com/apache/spark/commit/1b9e434b6c19f23a01e9875a3c1966cd03ce8e2d * https://github.com/apache/spark/commit/32e27df412706b30daf41f9d46c5572bb9a41bdb --- kafka-merge-pr.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kafka-merge-pr.py b/kafka-merge-pr.py index 1d3398d010185..c5499f74ae083 100644 --- a/kafka-merge-pr.py +++ b/kafka-merge-pr.py @@ -278,7 +278,10 @@ def get_version_json(version_str): jira_fix_versions = map(lambda v: get_version_json(v), fix_versions) resolve = filter(lambda a: a['name'] == "Resolve Issue", asf_jira.transitions(jira_id))[0] - asf_jira.transition_issue(jira_id, resolve["id"], fixVersions=jira_fix_versions, comment=comment) + resolution = filter(lambda r: r.raw['name'] == "Fixed", asf_jira.resolutions())[0] + asf_jira.transition_issue( + jira_id, resolve["id"], fixVersions = jira_fix_versions, + comment = comment, resolution = {'id': resolution.raw['id']}) print "Successfully resolved %s with fixVersions=%s!" % (jira_id, fix_versions) From ac06347e042b30f1797c425a0d612452e02701fa Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Tue, 21 Jul 2015 10:12:13 +0100 Subject: [PATCH 4/5] Allow primary author to be overridden during merge This is useful when multiple people work on a feature and the automatically chosen default is not the most appropriate one. Adapted from: https://github.com/apache/spark/commit/bc24289f5d54e4ff61cd75a5941338c9d946ff73 https://github.com/apache/spark/commit/228ab65a4eeef8a42eb4713edf72b50590f63176 --- kafka-merge-pr.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kafka-merge-pr.py b/kafka-merge-pr.py index c5499f74ae083..08b3373b479ed 100644 --- a/kafka-merge-pr.py +++ b/kafka-merge-pr.py @@ -130,7 +130,12 @@ def merge_pr(pr_num, target_ref, title, body, pr_repo_desc): '--pretty=format:%an <%ae>']).split("\n") distinct_authors = sorted(set(commit_authors), key=lambda x: commit_authors.count(x), reverse=True) - primary_author = distinct_authors[0] + primary_author = raw_input( + "Enter primary author in the format of \"name \" [%s]: " % + distinct_authors[0]) + if primary_author == "": + primary_author = distinct_authors[0] + commits = run_cmd(['git', 'log', 'HEAD..%s' % pr_branch_name, '--pretty=format:%h [%an] %s']).split("\n\n") From 900c371703638e294b1ad9867bf0a5cc68eb9e7e Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Tue, 21 Jul 2015 10:28:41 +0100 Subject: [PATCH 5/5] Allow reviewers to be entered during merge --- kafka-merge-pr.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kafka-merge-pr.py b/kafka-merge-pr.py index 08b3373b479ed..876f5303e5c20 100644 --- a/kafka-merge-pr.py +++ b/kafka-merge-pr.py @@ -136,6 +136,9 @@ def merge_pr(pr_num, target_ref, title, body, pr_repo_desc): if primary_author == "": primary_author = distinct_authors[0] + reviewers = raw_input( + "Enter reviewers in the format of \"name1 , name2 \": ").strip() + commits = run_cmd(['git', 'log', 'HEAD..%s' % pr_branch_name, '--pretty=format:%h [%an] %s']).split("\n\n") @@ -151,6 +154,9 @@ def merge_pr(pr_num, target_ref, title, body, pr_repo_desc): merge_message_flags += ["-m", authors] + if (reviewers != ""): + merge_message_flags += ["-m", "Reviewers: %s" % reviewers] + if had_conflicts: committer_name = run_cmd("git config --get user.name").strip() committer_email = run_cmd("git config --get user.email").strip()