Skip to content

ci(release): start a stable release's notes at the previous stable tag - #418

Merged
hyperb1iss merged 1 commit into
mainfrom
nova/release-notes-from-stable
Oct 13, 2026
Merged

hyperb1iss merged 1 commit into
mainfrom
nova/release-notes-from-stable

Conversation

@hyperb1iss

Copy link
Copy Markdown
Owner

Promoting a release candidate to stable would ship near-empty release notes. The release workflow generates the changelog entry and release notes from the highest existing tag, and once v0.7.0-rc.1 exists, that tag is the candidate itself. Cutting 0.7.0 would diff the release commit against v0.7.0-rc.1, a range of zero commits, and git-iris fails on empty notes before anything is pushed. This is the first time the repo has tagged a candidate, so the path had never run.

A stable version now starts its notes at the previous stable tag (v0.6.3 for 0.7.0), covering everything since then, its candidates included. Prereleases keep starting at the latest tag, and a first stable release with only candidates before it falls back to the latest candidate.

🧪 Validation

Check Result
node --test scripts/tests/release-workflow.test.mjs 9 of 9 pass. The test now returns the step's outputs and pins all three cases
Negative control On the previous workflow, the stable-release case fails (8 of 9)
The real step against this repo's tags 0.7.0 starts at v0.6.3; 0.7.0-rc.2 would start at v0.7.0-rc.1
actionlint .github/workflows/release.yml Clean

Once this merges, the 0.7.0 cut runs a dry run first so the generated notes can be checked before anything is pushed.

🤖 Generated with Claude Code

The release workflow generated the changelog entry and release notes
from the highest existing tag. Once a release candidate is tagged, that
is the candidate, so promoting it to stable diffed the release commit
against its own candidate: v0.7.0 would have covered zero commits, and
git-iris fails on empty notes. A stable version now starts from the
previous stable tag, so its notes cover everything since then, its
candidates included. Prereleases keep starting from the latest tag, and
a first stable release with only candidates before it still falls back
to the latest candidate.

The workflow test returns the step's outputs and pins all three cases;
on the previous workflow the stable case fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hyperb1iss hyperb1iss added this to the 0.7.0 milestone Oct 13, 2026
@coderabbitai

coderabbitai Bot commented Oct 13, 2026

Copy link
Copy Markdown

Warning

Review limit reached

  • Run on-demand review

This review includes 2 billable files and costs up to $0.50.

Or wait 25 minutes for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d2b95ec1-5d47-4d9f-ba07-f4c53e2cd504
📥 Commits

Reviewing files that changed from the base of the PR and between 96c8cd2 and 01afe52.

📒 Files selected for processing (2)
  • .github/workflows/release.yml
  • scripts/tests/release-workflow.test.mjs
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@hyperb1iss
hyperb1iss merged commit 5bbbe24 into main Oct 13, 2026
38 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant