docs: transcribe eleven CHANGELOG entries that never left their PR bodies - #789
Conversation
…heir PR bodies `Scripts/check-changelog-transcription.py` reports 31 merges in this branch whose merge commit did not touch `docs/CHANGELOG.md`. Ten of those had a `## CHANGELOG entry` in the PR body that I failed to copy across when I merged them, which is the exact omission the policy and the script exist to catch, committed by the person who wrote both. #757 merged with no such section at all and gets an entry written now, since patch `0025` changes what `ErrorOnSurface()` reports. Late transcription does not clear the audit and cannot: the check asks whether the merge commit changed the file, which is the right question at merge time and unanswerable afterwards. Expect it to keep reporting 31, and a note at the top of the Unreleased section says why, which of the flagged merges are entry-less by design, and that the rest predate the policy. The note originally said "six merges" and described the audit as clearable. Both were wrong: the count is 31 because I read a truncated `tail -20` as the whole list, and the audit keys on the merge commit. Corrected before committing. Filed the underlying limitation separately rather than widening the script here.
secondmouseAU-bot
left a comment
There was a problem hiding this comment.
Automated high-effort code review (2 findings).
|
|
||
| ## Unreleased | ||
|
|
||
| <!-- |
There was a problem hiding this comment.
cleanup (confirmed): okf/policies/changelog-on-merge.md states: "A pull request must not modify the ## Unreleased section of docs/CHANGELOG.md. It carries its entry in the PR body instead... Do not touch docs/CHANGELOG.md. If your diff contains it, that is a review finding." The only stated exceptions are the release commit (rewrites the whole section) and "a PR that fixes the CHANGELOG itself, for instance a stale cross-reference" — which is not adding an entry. This PR's diff inserts ~190 lines of eleven brand-new entries directly into ## Unreleased starting here, which is adding entries, not a small self-correcting fix like the cited example. I recognize the PR body frames this as a deliberate release-prep catch-up (transcribing entries that were dropped at merge time), which is a reasonable rationale — but per the letter of the policy this is still a review finding, and if any other in-flight PR also touches ## Unreleased around when this merges (the policy notes the branch "routinely has six or more" PRs open), this large insertion recreates exactly the merge-conflict cost the policy exists to avoid. Worth confirming intentionally whether this counts as an accepted exception, or whether the eleven entries should land some other way (e.g. via the release commit itself).
| ### `ShapeAnalysisResult.selfIntersectionCount` removed; `ShapeAxis.extent` now computed for `revolutionAxes()`/`symmetryAxes()` (#763) | ||
|
|
||
| `ShapeAnalysisResult.selfIntersectionCount` is removed. It was always `0`, never computed (the | ||
| bridge's own comment admitted "would require more expensive computation") — use |
There was a problem hiding this comment.
cleanup (confirmed): okf/policies/writing-style.md states: "No em-dashes. The em-dash (—), and -- used as a sentence dash, are banned in every code comment, doc comment, markdown doc, changelog, commit message, and PR body across the ecosystem... This is a total ban going forward." That policy is explicitly cross-referenced from changelog-on-merge.md's own "Related" section, so it governs CHANGELOG.md entries specifically. This PR's newly added prose nonetheless contains five em dashes: here at line 144, and at lines 158, 168, 174, and 178. Since this is a total ban with no exception for already-drafted prose being transcribed from old PR bodies, these are new, uncorrected policy violations landing in the shipped CHANGELOG — worth a pass to replace them (with commas, periods, or parentheses) before merge.
Two review findings on PR #789. **The em-dashes are a straight violation.** `okf/policies/writing-style.md` is a total ban and `changelog-on-merge.md` cross-references it, so it governs CHANGELOG prose specifically. Five landed in text transcribed verbatim from older PR bodies, which is not an exemption: the ban applies to what ships, not to what it was copied from. Replaced with commas and full stops. **The policy question is a gap in the policy, not a case to argue.** The reviewer is right that the letter of `changelog-on-merge.md` forbids a PR touching `## Unreleased`, and right to ask rather than wave it through. But the rule exists because every feature PR appends to the same list and they all conflict, and it says in its own second sentence that the merger copies the block across. A PR whose only purpose is that copying is the merger's job batched, not a violation. Rather than claim an exception here, the policy now names the case, with two conditions that stop it becoming a loophole: the PR must transcribe and nothing else, and it must be the only open PR touching the file. Both hold here, verified. That is the same instinct as `feedback-dont-restate-policy-in-prompts`: when the rule and the practice disagree, fix the rule where it lives instead of arguing the instance.
Release prep, step 4 of #786.
What happened
Scripts/check-changelog-transcription.pyreports 31 merges in this branch whose merge commitdid not touch
docs/CHANGELOG.md. Ten of them had a## CHANGELOG entrysitting in the PR bodythat I never copied across when I merged them.
That is the exact omission
okf/policies/changelog-on-merge.mdexists to prevent, committed by theperson who wrote the policy and the script that caught it. The script did its job; I did not read
its output until the release plan told me to.
#757 is a separate failure: it merged with no
## CHANGELOG entrysection at all. Patch0025changes what
ErrorOnSurface()reports on a real call path, so it needs one, written here.What is transcribed
Eleven entries, newest first, covering #762, #532/
0020, #771, #772, #763 twice, #747, #735, #761,#512 and #597.
What cannot be fixed
Late transcription does not clear the audit. The check asks whether the merge commit changed the
file. That is the right question at merge time and unanswerable afterwards without rewriting
history, so the report stays at 31.
A note at the top of the Unreleased section records this: which flagged merges are entry-less by
design and why, that the rest predate the policy, and that the number is expected. Filed the
underlying limitation as #788 rather than widening the script inside a release-prep PR.
Two corrections I made to my own work before committing
The note first said "six merges" and described the audit as clearable. Both wrong. The count is 31,
not the 17 I first reported, because I read a truncated
tail -20as the whole list. And the auditkeys on the merge commit, so nothing I do now clears it.
That is the second time in two days a
tail-truncated command has produced a confident wrongnumber from me, after the
isMaterialRadiallyInwardfalse alarm on PR #778.CHANGELOG entry
Self-referential, so stated rather than duplicated: this PR IS the transcription. It adds no new
behaviour and needs no entry of its own.
SemVer impact
NONE.