Create release notes starting from the previous non-beta non-RC release
This commit is contained in:
@@ -83,11 +83,14 @@ def document_authors():
|
||||
f.write("{0} ({1})\n".format(n, c))
|
||||
|
||||
## Writes release note to ./doc/release-notes based on git shortlog when current version number is specified
|
||||
def generate_release_note(version, filename):
|
||||
def generate_release_note(version, filename, prev, clear):
|
||||
print "Automatically generating release notes for {0} from git shortlog. Should review {1} for accuracy.".format(version, filename)
|
||||
# fetches latest tags, so that latest_tag will be correct
|
||||
subprocess.Popen(['git fetch -t'], shell=True, stdout=subprocess.PIPE).communicate()[0]
|
||||
latest_tag = subprocess.Popen(['git describe --abbrev=0'], shell=True, stdout=subprocess.PIPE).communicate()[0].strip()
|
||||
if prev:
|
||||
latest_tag = prev
|
||||
else:
|
||||
# fetches latest tags, so that latest_tag will be correct
|
||||
subprocess.Popen(['git fetch -t'], shell=True, stdout=subprocess.PIPE).communicate()[0]
|
||||
latest_tag = subprocess.Popen(['git describe --abbrev=0'], shell=True, stdout=subprocess.PIPE).communicate()[0].strip()
|
||||
print "Previous release tag: ", latest_tag
|
||||
notes = subprocess.Popen(['git shortlog --no-merges {0}..HEAD'.format(latest_tag)], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
|
||||
lines = notes.split('\n')
|
||||
@@ -105,25 +108,32 @@ def generate_release_note(version, filename):
|
||||
f.writelines(notable_changes)
|
||||
f.writelines(RELEASE_NOTES_CHANGELOG_HEADING)
|
||||
f.writelines('\n'.join(lines))
|
||||
# Clear temporary release notes file
|
||||
with open(temp_release_note, 'w') as f:
|
||||
f.writelines(TEMP_RELEASE_NOTES_HEADER)
|
||||
if clear:
|
||||
# Clear temporary release notes file
|
||||
with open(temp_release_note, 'w') as f:
|
||||
f.writelines(TEMP_RELEASE_NOTES_HEADER)
|
||||
|
||||
def main(version, filename):
|
||||
def main(version, filename, prev, clear):
|
||||
if version != None:
|
||||
generate_release_note(version, filename)
|
||||
generate_release_note(version, filename, prev, clear)
|
||||
document_authors()
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--version')
|
||||
parser.add_argument('--version', help='Upcoming version, without leading v')
|
||||
parser.add_argument('--prev', help='Previous version, with leading v')
|
||||
parser.add_argument('--clear', help='Wipe doc/release-notes.md', action='store_true')
|
||||
args = parser.parse_args()
|
||||
|
||||
root_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
||||
doc_dir = os.path.join(root_dir, 'doc')
|
||||
version = None
|
||||
filename = None
|
||||
prev = None
|
||||
clear = False
|
||||
if args.version:
|
||||
version = args.version
|
||||
filename = 'release-notes-{0}.md'.format(version)
|
||||
main(version, filename)
|
||||
prev = args.prev
|
||||
clear = args.clear
|
||||
main(version, filename, prev, clear)
|
||||
|
||||
Reference in New Issue
Block a user