Actions
HOWTO write the release notes » History » Revision 4
« Previous |
Revision 4/58
(diff)
| Next »
Loïc Dachary, 04/27/2015 07:43 AM
- git clone -b release (for instance git clone -b dumpling http://github.com/ceph/ceph)
- run the following to get a base to work on
#!/usr/bin/env python # First published by Abhishek Lekshmanan at https://gist.github.com/theanalyst/a0932d863a8f4b0d1b98 # Originally borrowed from A. Israel's https://gist.github.com/aisrael/b2b78d9dfdd176a232b9 from __future__ import print_function import re import github from git import Repo gh = github.GitHub( access_token="somesecret") merge_re = re.compile("Merge pull request #(\d+).*") fixes_re = re.compile("Fixes (#\d+)") tracker_re = re.compile("http://tracker.ceph.com/issues/(\d+)") signed_off_re = re.compile("Signed-off-by: (.+) <") def make_release_notes(repo, ref): for commit in repo.iter_commits(ref): merge = merge_re.match(commit.summary) if merge: pr = {} issue = '' pr = gh.repos("ceph")("ceph").pulls(merge.group(1)).get() # We are not handling multiple issues here yet if pr['body']: fixes = fixes_re.findall(pr['body']) tracker = tracker_re.findall(pr['body']) if tracker: issue = ','.join(tracker) elif fixes: issue = ','.join(fixes) title = pr['title'] # Big assumption, do a sanity check in the end, we are # getting the author of final merge commit author = commit.parents[-1].author.name if issue: print ("{0}(#{1}, {2})".format(title,issue,author)) elif author: print ("{0}({1})".format(title,author)) else: print (title) if __name__ == "__main__": make_release_notes(Repo("."),"tags/v0.87.1..giant")
- manual edit the list of commits
- add a section in http://docs.ceph.com/docs/master/release-notes/ in the master branch of ceph in the release-notes.rst file with the list of commits
- backport the release notes to the release branch when they are final. Ideally this is done before the point release is published. If not it can be backported shortly afterwards.
- add the release to the timeline
- the release notes come with an introduction that is prepared in a separate file . It can be edited if something significant must not be forgotten and it does not need to well written because it is a draft.
Updated by Loïc Dachary about 9 years ago · 4 revisions