Thanks for being willing to contribute! 🙏
Working on your first Pull Request (PR)? Egghead has a great free video introduction.
Please check out the the open issues. Issues labelled Help Wanted and Good First Issue are especially good to help with.
Contributing doesn’t have to be in code! Simply answering questions in open issues, or providing workarounds, is just as important a contribution as making pull requests.
Pull requests are welcome for this repo! Bugfixes will always be accepted, though in some cases some small changes may be requested.
However, if adding a feature or breaking change, please open an issue first to discuss. This ensures no time or work is wasted writing code that won’t be accepted to the project (see Project Goals). Undiscussed feature work may be rejected at the discretion of the maintainers.
- Install pnpm
- Fork this repo and clone your copy locally
- Run
pnpm i
to install dependencies
Create a new branch for your PR with git checkout -b your-branch-name
. Add the relevant code as well as docs and tests. When you push everything up (git push
), navigate back to your repo GitHub and you should see a prompt to open a new PR.
While best practices for commit messages are encouraged (e.g. start with an imperative verb, keep it short, use the body if needed), this repo doesn’t follow any specific guidelines like Conventional Commits. Clarity is favored over strict rules. Changelogs are generated separately from git (see the Changelogs section
Please fill out the template! It’s a very lightweight template 🙂.
The changelog is generated via changesets, and is separate from Git commit messages and pull request titles. To write a human-readable changelog for your changes, run:
npx changeset
This will ask if it’s a patch
, minor
, or major
change (semver), along with a plain description of what you did. Commit this new file along with the rest of your PR, and during the next release this will go into the official changelog!
All PRs must fix lint errors, and all tests must pass. PRs will not be merged until all CI checks are “green” (✅).
This library uses Vitest for testing. There’s a great VS Code extension you can optionally use if you’d like in-editor debugging tools.
To run the entire test suite, run:
npm test
To run an individual test:
npm test -- [partial filename]
To start the entire test suite in watch mode:
npx vitest