Context
Everything 0.3.0 carries has landed and sits under ## Unreleased in CHANGELOG.md, scoped across all four areas: the ClumL company mark replacing a product logo (#38), and the build provenance line on PDF covers (#33).
release.yml extracts release notes by grepping ^## \[$VERSION\]. A tag pushed against a bare ## Unreleased produces Release for version 0.3.0 as the entire release body — and that is what the Slack subscription posts. Cutting the heading is a prerequisite for tagging, not a tidy-up.
0.3.0 rather than 1.0.0, and MINOR rather than MAJOR, both follow the policy already in the README: brand.svg changes what it depicts, which is breaking for anything rendering it on a light background, and below 1.0.0 a breaking change bumps MINOR. The project stays on 0.x until a consumer has actually adopted the contract, which is the next piece of work.
Scope
Promote ## Unreleased in CHANGELOG.md to ## [0.3.0] with the release date, and add the matching link reference beside the existing [0.2.0] and [0.1.0] ones.
The entries are already written and scoped by area. Do not rewrite them.
Acceptance criteria
Constraints
- Do not edit the existing
Unreleased entries.
- Do not touch
README.md. The 0.x rule it needed was added for 0.2.0 and still applies.
- Do not create the tag. Tagging is a separate manual step.
Context
Everything
0.3.0carries has landed and sits under## UnreleasedinCHANGELOG.md, scoped across all four areas: the ClumL company mark replacing a product logo (#38), and the build provenance line on PDF covers (#33).release.ymlextracts release notes by grepping^## \[$VERSION\]. A tag pushed against a bare## UnreleasedproducesRelease for version 0.3.0as the entire release body — and that is what the Slack subscription posts. Cutting the heading is a prerequisite for tagging, not a tidy-up.0.3.0rather than1.0.0, and MINOR rather than MAJOR, both follow the policy already in the README:brand.svgchanges what it depicts, which is breaking for anything rendering it on a light background, and below1.0.0a breaking change bumps MINOR. The project stays on0.xuntil a consumer has actually adopted the contract, which is the next piece of work.Scope
Promote
## UnreleasedinCHANGELOG.mdto## [0.3.0]with the release date, and add the matching link reference beside the existing[0.2.0]and[0.1.0]ones.The entries are already written and scoped by area. Do not rewrite them.
Acceptance criteria
CHANGELOG.mdhas a## [0.3.0]heading thatrelease.ymlcan extract, and no empty## Unreleasedsection is left behind.[0.3.0]link reference exists alongside[0.2.0]and[0.1.0].release.yml's extraction logic against the new heading yields the scoped entries rather than the one-line fallback.scripts/check-release-surface.shaccepts the change: the release surface differs from0.2.0, so the guard has something to release.markdownlint-cli2passes and the file stays within the 80-column limit MD013 enforces.Constraints
Unreleasedentries.README.md. The0.xrule it needed was added for0.2.0and still applies.