"""
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.")

"""
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("# "):
        # Skip the first section (normally # Releases).
        pass
    elif line.startswith("## "):
        # First second-level section, note it and skip the text,
        # as we are only interested in the individual release items.
        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.")

Fix gen-release-notes script