Skip to content

fix(release): baseline preview changelogs from the prior stable - #1041

Merged
Wibias merged 1 commit into
devfrom
codex/release-notes-stable-baseline
Aug 5, 2026
Merged

fix(release): baseline preview changelogs from the prior stable#1041
Wibias merged 1 commit into
devfrom
codex/release-notes-stable-baseline

Conversation

@Wibias

@Wibias Wibias commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Problem

Preview release changelogs compare against the previous preview instead of the prior stable:

  • v2.10.0-preview.20260802 release notes show Full Changelog: …/compare/v2.9.1-preview.20260802...v2.10.0-preview.20260802
  • expected: …/compare/v2.9.1...v2.10.0-preview.20260802 (the stable release already shows the correct v2.9.1...v2.10.0)

Root cause

.github/workflows/release.yml computed the notes previous tag from git tag --merged HEAD. Stable tags live on main's lineage, which the preview branch does not carry (v2.9.1 is not an ancestor of v2.10.0-preview.20260802), so v2.9.1 never entered the candidate list. The trailing same-core preview v2.9.1-preview.20260802 (shipped 15s after the stable) became the newest prior tag. The helper's semver ordering was already correct — the tag source was the bug.

Fix

  • The notes baseline in the Create GitHub release step now reads the full tag set (git tag --list 'v[0-9]*'). The helper's semver ordering ranks the stable above its own trailing preview, so the range resolves to v2.9.1 → v2.10.0-preview.
  • The service-lifecycle changed-files gate in the Require successful Cross-platform CI step keeps git tag --merged HEAD: that comparison is deliberately lineage-relative, and the comment now says why the two baselines differ.
  • scripts/release-notes.ts documents the full-set contract on previousReleaseNotesTag.

Verification

Summary by CodeRabbit

  • Bug Fixes

    • Improved preview release note generation to consistently compare changes against the correct stable release.
    • Preview releases now account for relevant stable versions even when those versions are not part of the current branch history.
    • Prevented same-version preview tags from being incorrectly selected as the release baseline.
  • Documentation

    • Clarified release baseline selection requirements and expected stable-tag behavior.
  • Tests

    • Added regression coverage for stable-to-preview release note generation and CI release checks.

The release-notes previous-tag was computed from \git tag --merged HEAD\,
which hides stable tags on main's lineage from the preview branch. A trailing
same-core preview (vX.Y.Z-preview.* shipped after vX.Y.Z) therefore became the
newest prior tag, so 2.10.0-preview notes compared v2.9.1-preview...v2.10.0-preview
instead of v2.9.1...v2.10.0-preview.

The notes baseline now reads the full tag set (\git tag --list 'v[0-9]*'\); the
helper's semver ordering already ranks the stable above its own trailing preview.
The service-lifecycle changed-files gate keeps the merged-only baseline because it
is deliberately lineage-relative.

Regression tests lock the full-set contract in the workflow and the
trailing-preview case in the helper.
@github-actions github-actions Bot added the bug Something isn't working label Aug 5, 2026
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 52b622c0-3d2a-4471-b859-7a68865003bc

📥 Commits

Reviewing files that changed from the base of the PR and between 088194a and 6bca807.

📒 Files selected for processing (4)
  • .github/workflows/release.yml
  • scripts/release-notes.ts
  • tests/ci-workflows.test.ts
  • tests/release-notes.test.ts

📝 Walkthrough

Walkthrough

The release workflow now uses all repository tags for release-note baseline selection, while the CI service gate still uses tags merged into HEAD. Documentation and regression tests cover cross-lineage preview releases and trailing preview tags.

Changes

Release baseline selection

Layer / File(s) Summary
Separate release-note and service tag sources
.github/workflows/release.yml, scripts/release-notes.ts
Release-note lookup now reads all repository tags. The CI service gate continues to use tags merged into HEAD. Comments document the full-tag requirement and preview-tag ordering case.
Validate preview baseline selection
tests/ci-workflows.test.ts, tests/release-notes.test.ts
Tests verify the workflow tag sources and confirm that v2.9.1 is selected as the baseline for v2.10.0-preview.20260802.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: ingwannu, lidge-jun

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/release-notes-stable-baseline

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

@Wibias
Wibias merged commit 8608b18 into dev Aug 5, 2026
16 of 17 checks passed
@Wibias
Wibias deleted the codex/release-notes-stable-baseline branch August 5, 2026 04:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant