Contributing
Engineering standards for contributions to Tango live here. For environment setup and release workflow, use the Contributor documentation alongside this guide.
Engineering guidelines
Contributors should keep these standards in mind while working in the repository:
- prefer explicit contracts over implicit behavior
- keep
index.tsfiles focused on contract management rather than implementation bodies - place tightly coupled types near the primary symbol they describe
- preserve the dual export style of curated root imports and namespaced subdomain imports
- keep package dependency boundaries and
exportsmaps deliberate - avoid explicit
anyin source and tests - maintain the existing typecheck and coverage expectations
Pull request gates
Before opening a pull request, run:
pnpm typecheck
pnpm lint
pnpm test
pnpm build
pnpm test:integration:allThose commands are part of the expected contribution workflow, not an optional polishing step.
Documentation policy
Any change to public behavior or public API should update documentation in the same pull request. Depending on the scope of the change, that usually includes:
- user-facing docs under
guide,topics,how-to, orreference - contributor docs when workflow or maintainer contracts change
- the relevant package README
Documentation and contract updates
Tango treats docs as part of the public contract. If behavior changes, update docs in the same pull request:
- user docs in
docs/guide,docs/topics,docs/how-to, ordocs/reference - contributor docs when maintainer workflow changes
- the relevant package README
If your work adds a new database dialect to the integration harness, follow Onboard a new database dialect.
If you create a feature branch, we recommend semantic branch names in the style (feat|fix|chore)/kebab-case-description-of-goal.
Validate database integration paths
Most feature work can begin with SQLite-backed tests for speed, but changes in migrations, adapters, SQL behavior, or dialect-specific features must be validated against the full dialect integration suite.
pnpm test:integration:sqlite
pnpm test:integration:postgres
pnpm test:integration:all