signed_off_re = re.compile("Signed-off-by: (.+) <")
tracker_re = re.compile("http://tracker.ceph.com/issues/(\d+)")
rst_link_re = re.compile(r"([a-zA-Z0-9])_(\W)")
-release_re = re.compile(r"^(nautilus|octopus|pacific|quincy):\s*")
+release_re = re.compile(r"^(nautilus|octopus|pacific|Pacific|quincy|Quincy|reef|Reef):\s*")
tracker_uri = "http://tracker.ceph.com/issues/{0}.json"
message = " " + "\n ".join(lines)
return (title, message)
-def make_release_notes(gh, repo, ref, plaintext, html, markdown, verbose, strict, use_tags, include_pr_messages):
+def make_release_notes(gh, repo, ref, cherry_picks, plaintext, html, markdown, verbose, strict, use_tags, include_pr_messages):
issue2prs = {}
pr2issues = {}
pr2info = {}
+ merges = []
for commit in repo.iter_commits(ref, merges=True):
merge = merge_re.match(commit.summary)
if not merge:
continue
- number = merge.group(2)
+ PR = merge.group(2)
+ merges.append(PR)
+ if cherry_picks:
+ for PR in cherry_picks.split(','):
+ merges.append(PR)
+
+ for number in merges:
print ("Considering PR#" + number)
# do not pick up ceph/ceph-qa-suite.git PRs
if int(number) < 1311:
parser.add_argument("--rev", "-r",
help="git revision range for creating release notes")
+ parser.add_argument("--cherry_picks", "-c",
+ help="PRs associated with any last-minute cherry-picks. Provide PR numbers as a string separated by commas, i.e. '50575,50625'")
parser.add_argument("--text", "-t",
action='store_true', default=None,
help="output plain text only, no links")
gh,
Repo(args.repo),
args.rev,
+ args.cherry_picks,
args.text,
args.html,
args.markdown,