Hive Hive
Sign in

fix(cli): base canary changelog on the previous canary

GitHub issue · Closed

Metadata
Source
tuist/tuist #11479
Updated
Jun 24, 2026
Domains
Distribution
Details

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 — matches X.Y.0-canary.N and sort -V | tail -n1 to 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

Comments

No GitHub comments yet.