Contributions are welcome! Even if you’re new to open source, we’d love if you opened an issue or Pull Request. Please see GitHub’s guide to contributing if you’ve never done this before.
This document is meant to be a quick reference for tips and recommendations to increase the chance your contribution is suggested.
Opening issues are always welcome. Issues are great ways to contribute! Please be sure to fill out the template.
Opening PRs are welcome.
Bugfixes are always accepted! Please link to the relevant open issue, if any. PRs that fix bugs directly will be accepted even if there is no open issue, provided it doesn’t cause any other regressions or breaking changes. If that’s the case, please open an issue first to discuss.
PRs adding features or making behavior changes will only be accepted with a corresponding feature issue that has been approved. Features are always welcome, but please open an issue first so we all agree on the approach.
We use Changesets to manage versions. When you open a Pull Request, you’ll see a comment with instructions. But it involves running the following command:
pnpm exec changeset
Which will start an interactive prompt to describe your change in plain language that will go into a changelog. This project follows standard semver, with the following additions for 0.x:
patch
: used for bugfixes and featuresminor
: only used for breaking changes
This project uses GitHub Actions that runs lint, test, and more.
![WARNING]
When opening a PR, make sure all checks pass! Your PR won’t be accepted with failing tests or lint checks.
If contributing locally, you’ll need to set up this repo locally. Fork and clone the repo first.
Next, install Node (fnm is highly recommended as it lets you have multiple versions of Node.js locally) and pnpm. Then, in the project folder, run in a terminal:
pnpm i
Linting and formatting is handled with Biome, a modern linter/formatter for TypeScript. To run the linter, run:
pnpm run lint
Tests are written for Vitest and can be run with:
pnpm test