Release notes should be a list, not an essay: the reasoning belongs in the issue #254
Labels
No labels
accessibility
authentication
breaking change
bug
documentation
enhancement
interface
internationalisation
observability
security
tier
1
tier
2
tier
3
tier/4
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Postulo/postulo#254
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The 0.3.0 release notes are 47,562 words. That is four hours of reading, published as
the answer to "what changed?", and it is not a slip — it is what the convention asks for.
CHANGELOG.mdis 58,734 words and 0.3.0 is 81% of it. One hundred and fifty-four entries,averaging around three hundred words each, several running past a thousand. The release
workflow "creates the Forgejo release with the changelog section as its notes"
(
CONTRIBUTING.md), so the section is the release page, verbatim, and nobody arriving ata new version can find out in under a minute whether it affects them.
How it got that way
CLAUDE.mdsays an entry "says why, not what", and ends "with the issue it closes". Thefirst half of that rule was followed and the second half wasted. Every entry explains the
threat model, the alternative that was rejected and the thing that broke — and then names
the issue where all of that already is, in more detail, with the code beside it.
The rule is right about entries in the repository's history, which is where the phrase
comes from. It is wrong about release notes, and nothing distinguished the two because
they are the same text.
What the convention should be
A release note is one line: what changed, who it affects, and the issue number. The
issue carries the reasoning, the rejected alternatives and the detail. That is what issues
are for, they are already written, and every entry already links to one.
hurry — but the analysis stays in the issue and, where there is one, the advisory.
not an explanation.
- Companies can be filtered by column. (#173)Roughly: a hundred and fifty lines somebody can scan in two minutes, in place of forty-
seven thousand words nobody will read.
What to change
CLAUDE.md— the paragraph at the feature-ships-with rule. Say the length: one line,ending in its issue; say why, not what, belongs in the issue and the commit message.
CONTRIBUTING.md— the release steps, same rule, so a human contributor reads it too.tests/test_changelog.py— it already guards the shape of the file (sections, marks,dates, that the notes tool can still slice a section out). It could guard this: every
entry ends with
(#N), and no entry exceeds a stated length. A convention nobody checksis the habit that produced 0.3.0.
What about what is already written
0.3.0 is published and the words are not wrong, only misplaced — leaving it is defensible.
The alternative is to condense 0.3.0 to its lines and keep the prose somewhere it belongs,
which is a day's work and worth doing only if the long-form text is wanted as a release
announcement or a wiki page. Unreleased should follow the new rule from the first entry
after this lands, whichever way that goes.
docs/PLAN.mdhas not been revised since before 0.3.0 and now says untrue things #255