GitHub Actions publishes the npm package through npm trusted publishing (OIDC); no NPM_TOKEN is required. The trusted
publisher must name the SawyerHood/dev-browser repository and .github/workflows/release.yml workflow.
- Start from a clean, current
mainbranch. - Update
package.json,.claude-plugin/marketplace.json, andCHANGELOG.mdto the intended version. - Run:
bun install --frozen-lockfile
bun x tsc --noEmit
bun run build
bun run test
npm pack --dry-run
dist/dev-browser --versionFor a release candidate, use a version such as 1.0.0-rc.1; the workflow publishes prereleases under npm's next
tag. Install and exercise that candidate on macOS Intel/ARM and glibc Linux x64/ARM, including clean installs, upgrades
from 0.2.9, an existing ~/.dev-browser directory, and migrate-from-doobie.
The repository has an old v1.0.0 tag on commit b549fb0 with no GitHub release or npm version. Before publishing the
real 1.0.0, preserve that reference under a non-release tag and remove the stale release tag:
git tag archive/browser-skill-v1.0.0 b549fb0
git push origin archive/browser-skill-v1.0.0
git push origin :refs/tags/v1.0.0
git tag -d v1.0.0Deleting the public tag is intentionally a manual maintainer action. Confirm the archive tag exists remotely first.
After the release commit is merged and main CI is green:
git switch main
git pull --ff-only origin main
git tag v1.0.0
git push origin v1.0.0The workflow verifies the tag matches package.json, builds and checksums four binaries, smoke-tests Linux x64, checks
the npm tarball, creates the GitHub release, and publishes npm with provenance. Verify afterward:
gh run list --workflow release.yml --limit 1
npm view dev-browser version dist-tags
npm install -g dev-browser@1.0.0
dev-browser --version
dev-browser --helpDo not reuse a version if npm accepted it before a later release step failed.