Skip to content

docs: document actual release-tagging contract#28

Merged
jeffwall-curlewlabs merged 2 commits into
mainfrom
docs/release-tagging-contract
Apr 16, 2026
Merged

docs: document actual release-tagging contract#28
jeffwall-curlewlabs merged 2 commits into
mainfrom
docs/release-tagging-contract

Conversation

@jeffwall-curlewlabs
Copy link
Copy Markdown
Contributor

@jeffwall-curlewlabs jeffwall-curlewlabs commented Apr 16, 2026

Problem

AGENTS.md said:

Tag releases as v2, v3, etc. (major only). Use floating major tags.

But every release since v1 has actually shipped both an immutable patch tag (v2.0.0, v2.0.1, …, v3.0.0, v3.0.1) AND a floating major tag (v2, v3) force-updated to the latest, plus a GitHub release for each immutable tag. The prior wording was correct about the floating tag but silent on the immutable tag and the GitHub release, so a new agent following the instruction literally would skip exactly the reproducibility mechanism downstream consumers rely on when pinning to an exact commit.

README.md had three related stale bits:

  1. "Limitations" section still referenced curlewlabs-com/local-cache/save@v2 — every other example in the README uses @v3.
  2. "Upgrading from v1" talked about "the first v2 restore" and "After upgrading to v2", wording that was current when v2 was the action version and that doubles as a reference to the on-disk marker format (which is still literally "v2"). Reads as a contradiction with the surrounding @v3 examples.
  3. "Releasing" section only described the floating-tag path. Contradicts the AGENTS.md contract and the actual release history.

Changed behavior

  • AGENTS.md: replace the bullet with the same contract local-mutex already documents in its own AGENTS.md — immutable patch tag that is never force-moved, floating major tag that is force-updated every release, plus a GitHub release — so both published-action repos describe the same release shape.
  • README.md (Limitations): save@v2save@v3.
  • README.md (Upgrading from v1): drop the stale v-number references from the upgrade narrative.
  • README.md (Releasing): describe both the immutable and floating tag commands plus the GitHub release, cross-linking AGENTS.md for the full rationale.

Invariants / risks

  • Docs-only change. No behavior change for the action itself.
  • Note: we intend to rev (v3.0.2) and force-update @v3 on merge so the floating major tag keeps tracking the exact main HEAD. A drifting v3 vs. main would undermine the invariant the new wording describes.

Verification

Comparison against local-mutex AGENTS.md shows the two repos now describe the same release contract. README sections no longer reference the pre-v3 action tag.

jeffwall-curlewlabs and others added 2 commits April 16, 2026 16:19
AGENTS.md said "Tag releases as v2, v3, etc. (major only). Use floating
major tags." but every release since v1 has actually shipped both an
immutable patch tag (v2.0.0, v2.0.1, …, v3.0.0, v3.0.1) AND a floating
major tag (v2, v3) force-updated to the latest, plus a GitHub release
for each immutable tag. The prior wording was correct about the floating
tag but silent on the immutable tag and the GitHub release, so a new
agent following the instruction literally would skip exactly the
reproducibility mechanism downstream consumers rely on when pinning to
an exact commit.

Replace the bullet with the same contract local-mutex already documents
in its own AGENTS.md — immutable patch tag that is never force-moved,
floating major tag that is force-updated every release, plus a GitHub
release — so both published-action repos describe the same release
shape and future agents cut tags the same way.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…on refs

Three small README fixes folded into the same docs PR:

1. The "Limitations" section said callers must invoke
   `curlewlabs-com/local-cache/save@v2` even though every other example
   in the README (and on the marketplace) uses `@v3`. Fix the stale
   tag.

2. The "Upgrading from v1" section referred to "the first v2 restore"
   and "After upgrading to v2". That wording was correct when v2 was
   the current action version and doubles as a reference to the
   on-disk marker format (which is still "v2"), but for readers
   landing on this page today it reads as a contradiction with the
   surrounding `@v3` examples. Drop the v-number from the upgrade
   narrative — the instruction is the same regardless of which
   major version users are moving to.

3. The "Releasing" section said "Users pin to @V3 (floating major
   tag)" and then showed only the floating-tag commands. The
   companion AGENTS.md bullet (updated in this same PR) describes
   the full contract: both an immutable `vMAJOR.MINOR.PATCH` tag
   and the floating `vMAJOR` tag ship on every release, matching
   what every release since v1 has actually done. Bring the README
   into sync with AGENTS.md so a reader gets the same instructions
   from either entry point.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jeffwall-curlewlabs jeffwall-curlewlabs merged commit 738de0b into main Apr 16, 2026
6 checks passed
@jeffwall-curlewlabs jeffwall-curlewlabs deleted the docs/release-tagging-contract branch April 16, 2026 23:27
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