32 lines
902 B
Python
32 lines
902 B
Python
|
"""
|
||
|
Generates the release notes for the latest release, in Markdown.
|
||
|
|
||
|
Convert CHANGELOG.rst to Markdown, and extracts just the latest release.
|
||
|
|
||
|
Writes to ``scripts/latest-release-notes.md``, which can be
|
||
|
used with https://github.com/softprops/action-gh-release.
|
||
|
"""
|
||
|
from pathlib import Path
|
||
|
|
||
|
import pypandoc
|
||
|
|
||
|
this_dir = Path(__file__).parent
|
||
|
rst_text = (this_dir.parent / "CHANGELOG.rst").read_text(encoding="UTF-8")
|
||
|
md_text = pypandoc.convert_text(
|
||
|
rst_text, "md", format="rst", extra_args=["--wrap=preserve"]
|
||
|
)
|
||
|
|
||
|
output_lines = []
|
||
|
first_heading_found = False
|
||
|
for line in md_text.splitlines():
|
||
|
if line.startswith("# "):
|
||
|
if first_heading_found:
|
||
|
break
|
||
|
first_heading_found = True
|
||
|
else:
|
||
|
output_lines.append(line)
|
||
|
|
||
|
output_fn = this_dir / "latest-release-notes.md"
|
||
|
output_fn.write_text("\n".join(output_lines), encoding="UTF-8")
|
||
|
print(output_fn, "generated.")
|