Skip to content

feat: also maintain a moving major tag for action pinning#128

Merged
titouanmathis merged 2 commits into
mainfrom
feat/moving-major-tag
Jul 16, 2026
Merged

feat: also maintain a moving major tag for action pinning#128
titouanmathis merged 2 commits into
mainfrom
feat/moving-major-tag

Conversation

@titouanmathis

Copy link
Copy Markdown
Contributor

Follow-up to #127. Extends the publish step to also force-move the MAJOR tag (e.g. 0) on each stable release, so consumers can pin @0.

What

  • publish.yml: the tag-move step now updates both MAJOR (0) and MAJOR.MINOR (0.8) via a loop.
  • README: the "Pinning the ref" note now documents both @0.8 and @0, with the pre-1.0 caveat.

Semantics caveat (important)

Under the project's 0.x rule, a minor bump = breaking change. So the two tags are not equivalent while pre-1.0:

  • @0.8 — non-breaking patch channel (recommended pin today).
  • @0 — latest stable release, may advance across breaking 0.8 → 0.9. It becomes a true semver compatibility boundary only at 1.0 (where breaking → major). Documented as such rather than implying it's a safe compat pin.

Safety

  • Both tags have fewer than two dots, so neither matches the *.*.* publish trigger — no re-run loop.
  • Prereleases skipped (if: env.IS_PRERELEASE == 'false').

The 0 tag pointing at 0.8.3 will be created immediately after merge so @0 works today; the workflow keeps it current from the next release on.

🤖 Generated with Claude Code

titouanmathis and others added 2 commits July 16, 2026 13:59
Extend the publish step to force-move the MAJOR tag (e.g. 0) alongside the
MAJOR.MINOR tag on each stable release, so consumers can pin `@0` for the
latest stable release.

Semantics differ pre-1.0: since a 0.x minor bump marks a breaking change,
`@0` tracks the latest stable release including breaking changes, while
`@0.8` stays the non-breaking patch channel. The README pin note documents
the caveat. At 1.0, `@1` becomes a proper semver compatibility boundary.

Both tags have fewer than two dots, so neither matches the `*.*.*` publish
trigger; prereleases are skipped.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Code Review

Risk: Low — No blocking defects are evident in this diff; the workflow and documentation changes look safe to merge as written.

This MR updates the publish workflow so stable releases now force-move both the major tag (0) and the major.minor tag (0.8), while continuing to skip prereleases. It also updates the README and changelog to explain the different pre-1.0 semantics of @0 versus @0.8. I did not find any code issues in the changes shown.

Notes:

  • The intent mentions creating the initial 0 tag immediately after merge so @0 works before the next release; that bootstrap step is not implemented in this diff and still appears to require a separate/manual tag creation.

Review usage: 16,408 in (11,264 cached) / 1,067 out tokens — $0.0317 (cloudflare-ai-gateway/gpt-5.4, thinking: medium)

Reviewed by @weareikko/code-review v0.8.3 for commit 2f3530e.

@titouanmathis titouanmathis merged commit 3d60b71 into main Jul 16, 2026
6 checks passed
@titouanmathis titouanmathis deleted the feat/moving-major-tag branch July 16, 2026 12:01
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