in tools/changelog.py [0:0]
def write_changelog(releases, links, rel_changes, release_as, release_to,
release_from, filename='CHANGELOG.md'):
'Inject the pull request data and write changelog to file.'
rel_buffer, link_buffer = [], []
release_to = _strip_relname(release_to)
sorted_releases = sorted(releases.values(), reverse=True,
key=lambda r: r.published)
if release_as:
# inject an empty 'Unreleased' block as the current one will be replaced
rel_buffer.append('## Unreleased\n')
rel_link = CHANGE_URL.format(name='Unreleased', release_from=release_as,
release_to='HEAD')
link_buffer.append(rel_link)
for rel in sorted_releases:
rel_link = links.get(rel.name)
if rel_link is None:
raise Error(f"no link found for {rel.name}")
if rel.name == release_to:
rel_buffer.append(rel_changes)
if release_as:
rel_link = CHANGE_URL.format(name=release_as, release_from=release_from,
release_to=release_as)
else:
rel_buffer.append('\n'.join(rel.content))
link_buffer.append(rel_link)
open(filename, 'w').write(
'\n'.join([HEADING] + rel_buffer +
['<!-- markdown-link-check-disable -->'] + link_buffer))