Contributing
Thank you for your interest in contributing to Atemporal!
Maintainer setup
Repository development uses the pinned pnpm version through Corepack:
corepack enable
pnpm install --frozen-lockfile
pnpm run testPublished consumers can continue to use either npm install atemporal or pnpm add atemporal. Releases are published by release.yml through npm trusted publishing, never through a stored npm token.
How to Contribute
- Report Bugs: Use GitHub Issues to report bugs.
- Submit Pull Requests: Ensure your code follows the existing style and includes tests.
- Improve Documentation: We welcome improvements to this documentation.
Validation and release integrity
Compatibility guaranteed: every pull request continuously tests installation, native imports, TypeScript resolution, core operations, formatting, and official plugin loading from the packed npm artifact.
Compatibility additionally validated: scheduled and release fixtures verify production Vite, Webpack, and Next.js SSR builds.
Pull requests enforce coverage thresholds of 95% statements, 95% lines, 90% branches, and 90% functions. They also block on the contractual core-distribution and canonical application-bundle budgets. Packed-tarball and other application-bundle values in the size report are diagnostic measurements, not additional release budgets.
The weekly Ubuntu 24.04/x64 Node 24.12.0 validation job runs the performance gate. When a maintainer needs a new baseline, the manual hosted-baseline-capture.yml workflow creates and uploads a proposed schema baseline on that same host for human review. No workflow automatically writes or commits benchmarks/baseline.json; missing per-path medians deliberately make the scheduled and release gates fail until that reviewed baseline is committed.
Release validation repeats the contract, extended-fixture, size, and performance gates and retains its evidence for the highest supported artifact retention period. The publish job downloads and publishes that validated tarball exactly; it does not build or pack a replacement.
Code of Conduct
As a contributor, you are expected to follow our Code of Conduct.