Release notes people actually read
Most release notes are either a wall of commit messages or a single vague line that says “bug fixes and improvements.” Good notes sit in between: grouped, scannable, and written for the person on the other side of the update. This builder takes your raw list of changes and formats them into clean release notes following the widely used “Keep a Changelog” structure — in Markdown or plain text.
How it works
You enter the version and date, then drop your changes into labeled buckets: new features, improvements, bug fixes, deprecations, known issues, and upgrade notes. The tool renders each non-empty section with a heading and bullet list, skipping any section you leave blank so the output stays tight.
It also validates the version against semantic versioning (MAJOR.MINOR.PATCH). If you type something that is not valid semver — like v2 or 2.4 — it flags it, because consistent version numbers are what let users and tools reason about the size of a change.
Tips and example
- Lead each bullet with what changed for the user, not the implementation detail. “Projects now load 2× faster” beats “Refactored the project loader.”
- Always surface known issues — users trust a changelog that admits what is still broken far more than one that pretends everything is perfect.
- Put migration steps in upgrade notes, e.g.
Run \acme migrate` after upgrading`. Anything a user must do belongs here, not buried in features. - Bump the version correctly: a breaking change is a MAJOR bump even if it feels small.