Skip to content

Adopt the standard npm release of the template - #3

Merged
mark1russell7 merged 3 commits into
mainfrom
release-standard
Oct 17, 2026
Merged

mark1russell7 merged 3 commits into
mainfrom
release-standard

Conversation

@mark1russell7

Copy link
Copy Markdown
Owner

Moves ireko onto the standard npm release of mark1russell7/template (RELEASING.md).

Trigger change. A pushed v* tag no longer starts the release. A version bump merged to main starts it (the paths filter is package.json and packages/*/package.json), and so does workflow_dispatch.

Core (from the template, unchanged): verify (ci.yml, which already has workflow_call) → build (pack all published packages with scripts/release/pack.mjs; only ireko is non-private) → publish. The publish job holds only id-token: write, runs no repository code, uses the npm CLI, and sets no registry-url and no environment. It skips versions already on npm and retries a 429.

Extra steps kept:

  • The build job keeps the CHANGELOG section check (from the old tag preflight, which is gone because the trigger is main), pnpm size, and the smoke test of the tarball.
  • github-release runs when the publish job's new published output contains ireko@<version>, or when the workflow is started by hand. It skips a release that exists, so a manual start finishes a half-done release. It now creates the tag v<version> itself (gh release create --target $GITHUB_SHA).

npm trust (action for the owner at the next release). The old publish job ran in environment: npm, so the trusted publisher of ireko probably names that environment. The standard names none. This repository has GitHub's immutable OIDC subject (repo:mark1russell7@39885340/ireko@1041854607), and npm refuses an environment-named trust for that subject (npm/cli#9969). 0.1.0 was a manual publish, so the trust was never validated and has probably expired (2-day window). At the next release, after the version bump is on main, the owner runs:

node scripts/release/npm-bootstrap.mjs --replace-trust --dispatch

Draft: merge it only after render's first release proves the standard workflow.

🤖 Generated with Claude Code

mark1russell7 and others added 3 commits October 17, 2026 13:00
- release.yml: a version bump merged to main (or workflow_dispatch) publishes each
  missing version with OIDC and provenance, from the template's verify/build/publish
  core. No environment, no registry-url, npm CLI only.
- The GitHub release job stays. It runs when the publish job published ireko (its
  "published" output), or on a manual start, and it now makes the tag v<version>.
- The CHANGELOG check moves from the old tag preflight into the build job, with
  pnpm size and the tarball smoke test.
- scripts/release/: pack, bootstrap and audit from the template (ignored by oxlint).
- RELEASING.md, CLAUDE.md and docs/REVIEW.md 10.1: the new release flow and the npm rules.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…plete-sanitization)

The same fix as mark1russell7/template#3: replaceAll in npm-audit.mjs and npm-bootstrap.mjs, and
${name//\//%2f} in release.yml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… pnpm

The same fix as mark1russell7/template#4: prepare/prepack output mixes into the stdout of
pnpm pack --json, so JSON.parse failed (cue release run 39053834123).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mark1russell7
mark1russell7 marked this pull request as ready for review October 17, 2026 17:58
@mark1russell7
mark1russell7 merged commit c2d26ec into main Oct 17, 2026
6 checks passed
@mark1russell7
mark1russell7 deleted the release-standard branch October 17, 2026 17:59
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