Releases #
@nibling/typestrip is published to npm.
Record a change #
Add a changeset with any change that users will notice:
pnpm changeset
This writes a Markdown file here. It names the package, its semver bump, and a one-line CHANGELOG entry. Commit it with the change.
Release #
Tangled spindles can't push commits or open pull requests, so a maintainer versions the package locally:
- On an up-to-date
main, runpnpm release:version. It applies the pending changesets, bumps the version, writesCHANGELOG.md, and updates the lockfile. - Review the diff, then commit it as
Version packages. - Run
pnpm changeset tagto tag the new version (for example,v0.1.0). - Run
git push --follow-tags. On that push,.tangled/workflows/release.ymlrunsscripts/stage-release.mjs, which stages the version if it is neither on npm nor already staged. Only then does it build the Zena compiler (scripts/zena.sh, several minutes) forprepackto build the engines. A push that bumped nothing stages nothing, so a failed run can be retried from the pipelines page. - Approve the staged version with 2FA, on npmjs.com under Staged Packages or with
npm stage approve <id>(npm 11.15 or later;npm stage listshows the ids).
CI never publishes directly. npm's trusted publishing has no Tangled provider, and tokens that bypass 2FA lose direct publishing in 2027. The NPM_TOKEN secret does not bypass 2FA, so it can stage and nothing more. The package's first staging publishes a 0.0.0-stage placeholder until its first approval.
To check what a release would contain without staging it, run pnpm release:stage --dry-run. It needs zena-cli, like pnpm build.