from itertools import islice
from operator import itemgetter
+TEMP_RELEASE_NOTES_HEADER = [
+ '(note: this is a temporary file, to be added-to by anybody, and moved to\n',
+ 'release-notes at release time)\n',
+ '\n',
+ 'Notable changes\n',
+ '===============\n',
+ '\n',
+]
+
+RELEASE_NOTES_CHANGELOG_HEADING = [
+ 'Changelog\n',
+ '=========\n',
+ '\n',
+]
+
author_aliases = {
'Simon': 'Simon Liu',
'bitcartel': 'Simon Liu',
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')
lines = [alias_authors_in_release_notes(line) for line in lines]
+ temp_release_note = os.path.join(doc_dir, 'release-notes.md')
+ with open(temp_release_note, 'r') as f:
+ notable_changes = f.readlines()
+ # Assumes that all notable changes are appended to the default header
+ if len(notable_changes) > 6:
+ notable_changes = notable_changes[3:] + ['\n']
+ else:
+ notable_changes = []
release_note = os.path.join(doc_dir, 'release-notes', 'release-notes-{0}.md'.format(version))
with open(release_note, 'w') as f:
+ 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)
def main(version, filename):
if version != None: