Thank you for your interest in contributing!
- Search existing issues before opening a new one
- Include steps to reproduce, expected behavior, and actual behavior
- For bugs, include your environment (Bun version, OS, etc.)
Note: Issues inactive for 60 days may be marked stale and closed after 7 days. Feel free to reopen if still relevant.
- Fork the repository
- Create a feature branch (
git checkout -b feat/my-feature) - Make your changes
- Run tests and linting:
mise run test mise run lint - Bump the
versionfield inpackage.json— required on every PR tomain; see Releasing - Commit with a descriptive message (Conventional Commits style is welcome, but nothing enforces it)
- Push and open a Pull Request
- Keep PRs focused on a single change
- Include tests for new functionality
- Ensure all checks pass before requesting review
Releases are cut from the version field in package.json: merging a PR that bumps it to a
not-yet-released X.Y.Z creates the matching GitHub Release and publishes to npm. See
RELEASE.md for the full flow.
Merging to main without a version bump fails the Release workflow. That is by design — the
failure reads "already released", and it is how a missing bump gets noticed instead of silently
shipping nothing.
This project uses ESLint and Prettier. Run mise run lint:fix to auto-fix issues.
See the Development section in the README for the available tasks.