From 86845340dcdcb80b069999dc9b8066be05a0642f Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Tue, 9 Jun 2026 09:17:00 -0400 Subject: [PATCH] chore(#930): remove self-masking next dist-tag repoint from release finalize (#931) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(#930): remove self-masking next dist-tag repoint from release finalize The "Clean up next dist-tag" step silently failed under OIDC trusted publishing (which can't write dist-tags) while unconditionally reporting success via || true + an echo. It also violated the release model by trying to repoint @next→stable; @next is managed exclusively by the rc job's --tag next publish. Closes #930 Co-Authored-By: Claude Sonnet 4.6 * docs: update ADR-660 to reflect removal of next dist-tag repoint The finalize job no longer runs `npm dist-tag add … next`; update the ADR-660 description of step 4 to match the new behavior — @next is managed exclusively by the rc job. Co-Authored-By: Claude Sonnet 4.6 --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 --- .github/workflows/release.yml | 10 ---------- docs/adr/660-release-from-next-head.md | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 19867304a..4a0c6de93 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -642,16 +642,6 @@ jobs: --post \ --allow-missing-webhook - - name: Clean up next dist-tag - if: ${{ !inputs.dry_run }} - env: - VERSION: ${{ inputs.version }} - run: | - # Point next to the stable release so @next never returns something - # older than @latest. This prevents stale pre-release installs. - npm dist-tag add "@opengsd/gsd-core@${VERSION}" next 2>/dev/null || true - echo "✓ next dist-tag updated to v${VERSION}" - - name: Verify publish if: ${{ !inputs.dry_run }} env: diff --git a/docs/adr/660-release-from-next-head.md b/docs/adr/660-release-from-next-head.md index 9100940b0..ea531257c 100644 --- a/docs/adr/660-release-from-next-head.md +++ b/docs/adr/660-release-from-next-head.md @@ -79,7 +79,7 @@ or a movable tag — as the RC surface.** Concretely: 4. **RC = the `@next` dist-tag, full stop.** Testers run `npm i -g @opengsd/gsd-core@next`. Because each `rc` run is cut from `next` HEAD, every rc.N already includes all prior fixes. No long-lived branch, no tag movement. `finalize` promotes the released version to `@latest` - (and keeps the existing `npm dist-tag add … next` so `@next` never trails `@latest`). + (`@next` remains the prerelease channel managed exclusively by the `rc` job; `finalize` does not repoint it). 5. **Everything else stays:** custom changesets + CHANGELOG render, release-notes formatter, smoke-test gates, provenance, `main`/`next`, `auto-backmerge` (main→next).