Repository navigation
feat(release-notes): format-2 release pages and a release-note check - #880
Conversation
Review of
|
| Check | Tree | Result |
|---|---|---|
python3 scripts/test_release_notes.py |
head | 94 tests OK |
python3 scripts/check-pr-title.py --self-test |
head | 25/25 |
python3 scripts/check-docs.py |
head | OK |
release_notes.py body --tag v0.12.0 --target v0.12.0 | sha256sum |
head code; PR-base code | both 60f73177…db752 |
git merge --no-commit ede1fb70 |
main | conflicts: docs/dev/ci.md, scripts/check-pr-title.py (add/add) |
check-docs.py; release_notes.py preview --target HEAD |
main | OK; exit 0 |
| the same two commands | main + this PR's release_notes.py and test file (these merge cleanly) |
FAIL: changelog.d/aggregate-comparison.added.md: 382 characters, over the 200-character limit; exit 1 |
| caps over pending notes | same | 83 of 86 v0.14.0 notes refused |
test_release_notes.py |
same | 1 error: test_release_note_gate_matches_the_composer_note_names loads main's check-pr-title.py |
body --tag v0.13.0 | sha256sum |
main; main + PR | both 81c11247…95530 |
| 5 disputed titles | this gate vs main's PR Title |
5 of 5 disagree |
fixture format-2 page through edge_release.compose |
main + PR | intro dropped; highlights flattened |
| PR-link lookup on real history | main + PR | 86 of 86 notes linked; about 0.3 s added per select |
Before/after proof. This PR is a feature, not a bug fix, so there is no defect to reproduce. For its compatibility claims, I ran the old and new code on the same input: the v0.12.0 and v0.13.0 bodies are identical. For B2, the same tree passes check-docs with main's code and fails with this PR's code. GQT does not apply, because this is Python release tooling with no query behavior. The test owners are scripts/test_release_notes.py, scripts/test_check_pr_title.py and scripts/test_edge_release.py.
CI and limits. All checks pass at ede1fb70, but on the October 5 base. I did not run the gate workflow on GitHub; pull_request_target runs the base copy, so it cannot run on this PR. I did not re-render the linked v0.12.0 gist, and I did not attempt a full conflict resolution.
Recommendation: request changes. Rebase on main and fix B1–B3. Then re-run check-docs and preview on the rebased tree.
ede1fb7 to
867bde3
Compare
|
Thanks for the review. I rebased on B1 (duplicate title check): fixed.
B2 (format chosen by a version literal): fixed as you proposed.
B3 (missing note): added. O1 (edge release text): partly done.
O2 (why section without breaking notes): done. A why section with no breaking note is now refused, and the empty "Upgrade actions" heading can no longer occur. Also since the review:
I kept the fixtures on v0.13.0 rather than moving them to v0.15.0. With the format coming from the config, the version in a fixture no longer picks it. |
769ebad to
3e35b24
Compare
3e35b24 to
d4b8d89
Compare
|
@aaltshuler can we merge this? |
The v0.13.0 release page was 113K characters: every
changelog.dnote pasted in order, with no summary, no upgrade actions up front and no link to the pull request behind each note. Notes written early in the cycle described behaviour that later pull requests had changed, and nothing asked a feature or fix to carry a note at all.This PR adds a second page format in `scripts/release_notes.py: