Packages in this repo publish to the public npm registry under the @monad-inc scope,
with npm provenance via GitHub
Actions OIDC trusted publishing (no long-lived NPM_TOKEN).
- In your PR, run
pnpm changeset, pick the affected package(s) + bump, write a summary, and commit the generated.changeset/*.md. - On merge to
main, the Release workflow opens/updates a Version Packages PR. - Merge that PR → the workflow runs
changeset publish, which publishes the changed packages with provenance and pushes git tags. Fully tokenless.
npm's trusted publisher can only be attached to a package that already exists, so the very
first publish of @monad-inc/embed is done by hand. Requires npm ≥ 11.5 and an npm
account in the monad-inc org with publish rights.
npm install -g npm@latest(local npm is 10.x; provenance needs ≥ 11.5).npm login.- Publish once to create the package. Two options:
- Preferred — provenance from commit one: temporarily give the
Releaseworkflow anNPM_TOKENsecret (automation token) and let it publish via the existingrelease.yml(it already hasid-token: write, so provenance attaches). Delete the token immediately after. - Fallback — laptop publish (no provenance on first version): from
packages/embed/,npm publish --access public. Provenance only attaches on subsequent CI publishes.
- Preferred — provenance from commit one: temporarily give the
- On npmjs.com:
@monad-inc/embed→ Settings → Trusted Publisher → GitHub Actions, set orgmonad-inc, repoembed, workflowrelease.yml. Then delete any temporaryNPM_TOKEN. All future releases are tokenless.
# in a scratch dir with NO .npmrc auth / NO NPM_TOKEN:
npm view @monad-inc/embed # shows the version
npm install @monad-inc/embed # succeeds anonymously => access:public worked
npm audit signatures # confirms provenance attestationThe npmjs.com package page should show the "Built and signed on GitHub Actions"
provenance badge linking back to the release.yml run.