Hive
fix(cli): base canary changelog on the previous canary
GitHub issue · Closed
Problem
Canary release notes list every commit back to the last stable tag instead of just what landed since the previous canary. For example, 4.201.0-canary.19 re-lists the whole backlog since the last stable rather than the delta since 4.201.0-canary.18.
The cause is in mise/tasks/cli/release/channel-version.sh, which unconditionally emitted the changelog base as the latest stable tag for every channel:
emit changelog_from "$(latest_stable_tag)"
changelog_from is consumed by cli-build-publish.yml as the lower bound of git cliff ... -- ${changelog_from}..HEAD, so the canary changelog spanned everything since the last stable.
Fix
The canary channel now bases its changelog on the latest canary tag:
- New
latest_canary_tag()helper — matchesX.Y.0-canary.Nandsort -V | tail -n1to get the chronologically newest canary (the minor dominates the sort, so it stays correct even right after a line cut bumps canary to the next minor). - Falls back to the latest stable only when no canary exists yet.
- RC / promote are unchanged — they keep the full since-stable changelog, since those are the release notes for the upcoming
X.Y.0.
Verification
Against the live tag set, the canary path now emits changelog_from=4.201.0-canary.19 (was 4.200.5). bash -n passes.
Note
This is a forward fix — it changes how future canary changelogs are generated and does not retroactively edit already-published release notes.
🤖 Generated with Claude Code
No GitHub comments yet.