We use Bun as our package manager and runtime.
- Install Bun: Make sure Bun is installed (version matching the
packageManagerofpackage.jsonis recommended). - Install Dependencies:
bun installHere are the some commands to check your changes comply with our standards:
bun run lint # Checks for issues
bun run lint:fix # Fixes auto-fixable issuesbun run typecheckbun run testbun run buildWhen you submit a Pull Request, GitHub Actions will automatically do:
- Linting and code formatting check (
lint) - Type validity check (
typecheck) - Unit tests (
test)
- Bug fixes: Please provide a minimal reproduction first, then submit a PR with a fix.
- New Features: Ideally, open an issue to discuss it before implementing. When implementing, please make sure to cover it with tests and update relevant documentation.
- Clearer documentation: If you find any a section confusing or incomplete, please submit improvements.
- Tests: Adding tests for cases you ran into or for new features is highly appreciated.
- External dependencies: We aim to keep the library secure. PR's introducing new dependencies will be rejected.
- Breaking changes without discussion: Changes that break backward compatibility must be discussed and approved first. Those will only be merged in major releases.
- Code style changes: Please adhere to the existing code style. Large-scale reformatting or refactoring without functional changes will not be accepted.
- AI-generated code: We do not accept functional contributions that are primarily generated by agents. Yet you may use AI tools to assist with writing tests and documentation.
We're are always interested in improving our development workflow and pipelines.
If you would like to suggest using a new tool, please open a separate issue for discussion. Please avoid mixing changes to tooling with other contributions (you will likely be asked to separate them).