File tree Expand file tree Collapse file tree 3 files changed +38
-2
lines changed Expand file tree Collapse file tree 3 files changed +38
-2
lines changed Original file line number Diff line number Diff line change 2222 run : uv python install
2323 - name : Install dependencies
2424 run : uv sync --all-extras --dev
25- - name : Generate API reference docs
25+ - name : Auto-generate docs
2626 run : |
2727 uv run python scripts/mkdocs_generate_reference.py
28+ uv run python scripts/mkdocs_generate_release_notes.py
2829 - name : Deploy to GitHub Pages
2930 run : uv run mkdocs gh-deploy --force
Original file line number Diff line number Diff line change 1- # mkdocs
1+ # mkdocs build
22site /
3+
4+ # auto-generated docs
35docs /reference
6+ docs /release-notes.md
47
58# uv/pyenv
69.python-version
Original file line number Diff line number Diff line change 1+ #!/usr/bin/env -S uv run
2+ from pathlib import Path
3+
4+ REPO_ROOT = Path (__file__ ).parent .parent
5+ CHANGELOG_MD = REPO_ROOT / "CHANGELOG.md"
6+ RELEASE_NOTES_MD = REPO_ROOT / "docs" / "release-notes.md"
7+
8+
9+ def get_releases () -> str :
10+ with CHANGELOG_MD .open () as f :
11+ changelog_md = f .read ()
12+
13+ sections = changelog_md .split ("\n ## " )[1 :]
14+ unreleased = sections .pop (0 )
15+ # small sanity check
16+ if not unreleased .startswith ("[Unreleased]" ):
17+ raise ValueError ("Unexpected CHANGELOG.md format, aborting!" )
18+
19+ return "\n \n " .join (f"## { section .strip ()} " for section in sections )
20+
21+
22+ def main () -> None :
23+ releases = get_releases ()
24+
25+ release_notes_md = f"# Release Notes\n \n { releases } \n "
26+
27+ with RELEASE_NOTES_MD .open ("w" ) as f :
28+ f .write (release_notes_md )
29+
30+
31+ if __name__ == "__main__" :
32+ main ()
You can’t perform that action at this time.
0 commit comments