Skip to content

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.0 is held to a minor rather than cutting 1.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.