fix(ci): scope nightly release notes to commits since last release - #110
Merged
Conversation
The nightly prerelease published with `generate_release_notes: true` on the non-semver `nightly` tag. GitHub's auto base-selection can't order `nightly` against the tag soup (v0.1..v2.0.0 + legacy OpenXcomCoop_*), so it diffs from ~repo start and the notes accumulate every commit ever made, growing without bound. Pin the diff base to the last official release instead: - meta job exports `lastTag` = git describe --match "v[0-9]*" (v2.0.0 today; skips legacy junk tags; empty on a tagless repo). - Publish with generate_release_notes: false (release still uses the curated CHANGELOG body; nightly is published body-less). - The notes step now generates the list via `gh api .../releases/generate-notes -f previous_tag_name=$lastTag`, then runs the existing New-Contributors + `by @author` strip. Falls back to GitHub's default base when lastTag is empty. Net: nightly notes span <last v* release>..HEAD and reset at the next official release tag. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
NonPolynomialTim
enabled auto-merge (squash)
July 31, 2026 03:39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The rolling nightly prerelease notes grow without bound — every nightly re-lists the entire commit history rather than just what's new.
Root cause:
publishusedgenerate_release_notes: trueon the non-semvernightlytag. GitHub's automatic base-selection can't ordernightlyagainst the repo's tag soup (v0.1…v2.0.0plus legacyOpenXcomCoop_*), so it diffs from ~repo start. Deleting/recreating the nightly release each run didn't help — GitHub regenerated the same unbounded list.Fix
Pin the release-notes diff base to the last official release instead of relying on GitHub's auto base-picker:
metajob exports a newlastTagoutput =git describe --tags --abbrev=0 --match "v[0-9]*"→v2.0.0today. Matchesv<digit>to skip legacy junk tags; empty on a tagless repo.generate_release_notes: false. Releases still use the curatedCHANGELOG.mdbody; nightly is published body-less.gh api …/releases/generate-notes -f previous_tag_name=$lastTag, then runs the existing "New Contributors" +by @authorstrip. Falls back to GitHub's default base whenlastTagis empty.Net: nightly notes span
<last v* release>..HEADand reset at the next official release tag — i.e. "everything since the last release."Notes
workflow_dispatch(non-tag ref → nightly channel → would move the livenightlytag). Exercised on the next push tomain. The existingif not "## What's Changed"guard still aborts on malformed notes.🤖 Generated with Claude Code