Concepts¶
The ideas colophon is built on.
- How the version is decided — the type-to-bump
mapping, why the decision is a pure function with no I/O in it, and why a
breaking change below
1.0.0is held to a minor rather than cutting1.0.0. - Tagging what actually landed — why a merge request cannot be trusted to say which commit merged, why the version comes from the changelog at that commit, and why publish must run before propose.
- Why release notes come from commits — why the merge request description is unreadable under a fast-forward merge, and what colophon reads instead.
- Why a release is published complete — why the release object is created last rather than first, and why counting a release's assets is no longer the check worth making.
- Why announcing is different — the one verb colophon cannot make idempotent, why keeping a record would be worse than the duplicate message it prevents, and why an adapter that can tell says so.
For how the code is laid out, see Components.