Thanks for your interest in mado!
The toolchain is pinned by rust-toolchain.toml, so a rustup installation picks
up the right version on its own. just runs the
same checks CI does:
just # fmt, test and lint
just test
just lintCHANGELOG.md follows Keep a Changelog.
A pull request that changes something a user can observe adds its entry under
## [Unreleased] in the same pull request, under Added, Changed, Fixed,
Deprecated, Removed or Security.
Observable means one of:
- what
mado checkreports — a new rule, a fixed false positive or negative, a changed default - the command line or the configuration file
- how mado is installed or distributed
- the Markdown parser (
comrak) version, which decides how documents are parsed and therefore what gets reported
Everything else is left to the commit history: dependency updates, CI, packaging internals, refactors and tests. If a change has no entry, that is the answer to "was this observable?", not an omission.
Write entries for someone reading the release notes, not for someone reading the diff. Name the rule, say what changed about its behaviour, and reference the pull request:
- MD007: measure indentation from the end of the blockquote prefix instead of
the start of the line (#369)Mark a breaking change with a **Breaking:** prefix under Changed.
- Rename
## [Unreleased]to## [x.y.z] - YYYY-MM-DD, add a fresh empty## [Unreleased]above it, and update the link definitions at the bottom of the file. - Bump
versioninCargo.tomlandversion/prev_versionin thejustfile, then refresh the package manifests withjust update-homebrew,just update-scoop,just update-wingetandjust update-flake. - Tag the merged commit
vx.y.zand push the tag.
CD then builds the binaries and opens a draft release whose body is that
version's changelog section, extracted by
scripts/release/extract-changelog.sh. Review the draft and publish it.
CI checks that the section for the version in Cargo.toml exists, so a bump
without a changelog section fails before it reaches the tag.