Skip to content

ci: auto-move the vN major tag on release#19

Merged
jcschaff merged 2 commits into
mainfrom
ci/move-major-tag
Jul 3, 2026
Merged

ci: auto-move the vN major tag on release#19
jcschaff merged 2 commits into
mainfrom
ci/move-major-tag

Conversation

@jcschaff

@jcschaff jcschaff commented Jul 3, 2026

Copy link
Copy Markdown
Member

What

Adds .github/workflows/move-major-tag.yml — on every stable vX.Y.Z tag push, it force-moves the floating major tag (v1.7.0v1) to that release.

Why

The reusable workflows are consumed via uses: …@v1. That strategy only delivers minor/patch updates if v1 keeps getting force-moved to each new v1.x.y. Until now that's been manual (it's why v1 == v1.7.0 today). The failure mode is quiet and nasty: one missed move and every @v1 consumer silently freezes on old code while believing they're current — arguably worse than an explicit pin. This is the standard fix (how actions/checkout maintains v4).

Behavior

  • Triggers on push of tags matching v*.*.*.
  • Guards with ^v[0-9]+\.[0-9]+\.[0-9]+$, so prereleases (v1.2.3-rc1) and non-release tags are skipped — @vN never lands on an rc. Verified: v1.7.0/v1.7.10/v2.0.0 move; v1.7.0-rc1/v1.7/v1/latest skip.
  • contents: write permission to push the tag; concurrency group serializes release pushes.

Once merged, the manual git tag -f v1 … step drops out of the release ritual.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BZx7w9BexQc9wWU5JoHYaF

jcschaff and others added 2 commits July 3, 2026 07:12
The reusable workflows are consumed via `uses: …@vN`, which only delivers
minor/patch updates if the floating vN tag is force-moved to each new release.
That has been manual; a single missed move silently freezes every @vn consumer
on old code. This workflow moves the major tag automatically on every stable
vX.Y.Z tag push (mirrors how actions/checkout maintains v4), skipping
prereleases so @vn never lands on an rc.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BZx7w9BexQc9wWU5JoHYaF
Add a "Releasing" section stating that move-major-tag.yml auto-moves vN on each
stable vX.Y.Z tag, so releases are just tag+push with no manual force-move.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BZx7w9BexQc9wWU5JoHYaF
@jcschaff jcschaff merged commit 5305310 into main Jul 3, 2026
1 check passed
@jcschaff jcschaff deleted the ci/move-major-tag branch July 3, 2026 11:17
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