Thanks for contributing.
- Bun
1.3.5+ - Node.js
18+ - Git
bun install
bun run typecheck
bun run build
bun test
npm run smoke:npx
bun run smoke:bunx
bun run audit:history- Create a branch from
master - Make focused changes with tests
- Run local quality gates:
bun run typecheckbun run buildbun test
- Open a PR using the template
Use Conventional Commits:
feat: ...fix: ...docs: ...refactor: ...test: ...chore: ...
PR commit messages are linted in CI.
This project uses mandatory date/release versioning:
-
First release of day:
YYYY.M.D -
Subsequent releases that day:
YYYY.M.D-N -
No zero-padding (
2026.3.4, not2026.03.04) -
Nis the release count for that date (tags/releases, not commit count) -
Run
bun run version:setbefore release/version commits -
Run
bun run version:checkto verify correctness -
Run
bun run audit:version-historybefore first public release/history rewrites
- Never commit real API keys, JWTs,
.envsecrets, or private host URLs - Run
bun dist/index.js --json auditbefore pushing release-related changes - Run
bun run audit:historybefore release PRs
- Prepare (no publish): GitHub Action
Prepare Release - Publish (manual, guarded): GitHub Action
Publish Release
The publish workflow requires:
dry_run=falseconfirm=PUBLISHNPM_TOKENconfigured in the GitHubreleaseenvironment
Run this locally before opening a release PR:
bun run verify:release