Thanks for your interest in improving Pangaea. This document explains how to set up the project, make changes, and get them merged.
By participating in this project, you agree to follow our Code of Conduct.
- Node.js 22+ (see
.node-version/.nvmrc) - Yarn 4 via Corepack — enabled automatically through
.yarnrc.yml
git clone https://github.com/docusign/pangaea.git
cd pangaea
yarn install
yarn buildThis is a Turborepo monorepo with packages under packages/*. See the
README for the package layout.
- Create a branch off
main(e.g.yourname/short-description). - Make your change in the relevant package(s).
- Add tests covering the change and keep existing tests green.
- Add a changeset if your change affects a published package (see below).
- Open a pull request against
mainand fill out the PR template.
yarn build # Build all packages
yarn test # Run all unit tests
yarn test:coverage # Run tests with coverage
yarn lint # Lint all packages
yarn lint:fix # Lint and auto-fix
yarn format # Auto-format all files
yarn format:check # Check formatting without writing
yarn check-types # TypeScript type-check all packagesgit commit runs lint-staged via a Husky pre-commit hook, which lints and formats staged files
automatically.
Follow Conventional Commits:
<type>(<optional scope>): <summary>
Common types: feat, fix, chore, docs, test, refactor, ci.
Example:
feat(ime): detect missing isComposing check on React onChange handlers
Publishable packages are versioned with Changesets. If your change should ship in a release, add one:
yarn changesetPick the affected packages and the appropriate semver bump (patch / minor / major), and write a
short human-readable summary. Commit the generated file in .changeset/ with your PR. Changes that
touch only tests, docs, or tooling generally do not need a changeset.
- Keep PRs focused; smaller PRs are reviewed faster.
- Ensure
yarn lint,yarn check-types, andyarn testall pass locally. - Fill out the PR template, linking any related issue where applicable.
- PRs require review from a CODEOWNER before merging.
Open a GitHub issue with a clear description and, for bugs, minimal reproduction steps.
By contributing, you agree that your contributions will be licensed under the MIT License.