Welcome! This document provides instructions for contributing to the project. It covers setup, development workflows, testing, linting, formatting, and more.
This project uses pnpm as its package manager.
Enable and install pnpm via Corepack:
corepack enable pnpm
pnpm installStart all packages (tests, examples, and xstate) in development mode:
pnpm devRun all tests once:
pnpm testWatch tests during development:
pnpm test:watchCompile all packages:
pnpm buildRun all checks (formatting, build, tests, lint):
pnpm verifyLint all packages:
pnpm lintFormat code:
pnpm formatCheck formatting:
pnpm format-checkThis project uses Changesets for versioning and changelogs.
To create a new changeset (ideally in any PR):
pnpm changesetFollow the interactive prompt to describe your changes.
To create a new release:
pnpm changeset versionand raise a PR. The new package will be automatically published after merge.
To run the examples package in dev mode:
pnpm examples- This is a monorepo managed by
pnpm workspaces. - Shared scripts are run recursively using
pnpm -r. - For focused work, use filters:
pnpm --filter <package-name> <command>