Releasing dev-browser
September 4, 2026 ยท View on GitHub
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.
Prepare and validate
- 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 --version
For 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.
Resolve the historical v1.0.0 tag
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.0
Deleting the public tag is intentionally a manual maintainer action. Confirm the archive tag exists remotely first.
Publish
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.0
The 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 --help
Do not reuse a version if npm accepted it before a later release step failed.