Thank you for your interest in contributing to this project!
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/errors.git - Install dependencies:
pnpm install - Create a feature branch:
git checkout -b feature/your-feature-name
- Make your changes
- Ensure all tests pass:
pnpm test - Run linting:
pnpm lint - Run type checking:
pnpm turbo type-check - Build the project:
pnpm build - Commit your changes
- Open a pull request
This project uses a staging-first branching model:
stagingis the integration branch. Developers open their feature/fix/chore PRs targetingstaging. Every PR tostagingmust include a.changeset/*.mdfile (enforced by the CI lint).mainis the release branch. The release engineer cherry-picks curated batches fromstaginginto arelease/*branch, opens a release PR targetingmain, and merges. Merging a release PR tomaintriggers the release workflow. No label is required — every merge tomainwith at least one.changeset/*.mdin the diff produces a release.devis deprecated and archived.
- Target
stagingfor any feature, fix, refactor, or chore that should ship in a future release. - Include a Changeset in your PR:
pnpm changesetand commit the generated.changeset/*.mdfile. The CI lint blocks PRs that don't include one. - Allowed exemptions to the changeset requirement:
docs:only changes,chore:only changes, CI/workflow changes under.github/, and PRs labeledno-changeset-requiredby a maintainer.
For urgent fixes that must skip the staging queue: branch from main as release/hotfix-<slug>, open a PR directly to main with a Changeset and the [hotfix] label, and merge. The release workflow runs on merge as for any other merge to main.
Releases are managed by a single release engineer. The release engineer is the only person who cherry-picks commits from staging to main and applies the version bump label. There is no rotation. If the release engineer is unavailable, the team waits; bypassing the workflow is not a recommended escape hatch.
Use conventional commits:
feat: add new featurefix: resolve bugdocs: update documentationrefactor: improve code structuretest: add or update testschore: maintenance tasks
- Use 2 spaces for indentation
- Use single quotes for strings
- Add semicolons
- Run Prettier before committing:
pnpm format
Run tests before submitting a PR:
pnpm test # Run all tests (watch mode)
pnpm test:run # Run all tests once
pnpm turbo test # Run tests across all packages- Update documentation if needed
- Add tests for new functionality
- Ensure all CI checks pass
- Request review from maintainers
Open an issue or reach out to us at support@nesalia.com.