Skip to content

Latest commit

 

History

History
68 lines (40 loc) · 2.74 KB

CONTRIBUTING.md

File metadata and controls

68 lines (40 loc) · 2.74 KB

Contributing

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.

Issues

Opening issues are always welcome. Issues are great ways to contribute! Please be sure to fill out the template.

Pull Requests

Opening PRs are welcome.

Bugfixes

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.

Features

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.

Changesets

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 features
  • minor: only used for breaking changes

CI

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.

Setup

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

Linting and formatting is handled with Biome, a modern linter/formatter for TypeScript. To run the linter, run:

pnpm run lint

Testing

Tests are written for Vitest and can be run with:

pnpm test