Thanks for your interest in contributing.
This project is licensed under Business Source License 1.1. By submitting a pull request, you agree that your contributions will be licensed under the same terms. See LICENSE for details.
- Fork and clone the repo
- Install dependencies:
pip install -e ".[dev]" npm install - Create a branch for your work
- Make your changes
- Run tests before submitting:
pytest npm test - Open a pull request against
main
Python: We use ruff for linting and formatting, mypy for type checking.
TypeScript: We use eslint and strict TypeScript compiler options.
Open a GitHub issue. Include steps to reproduce, expected behavior, and actual behavior.
Publishing to npm requires a GitHub environment named npm with a configured NPM_TOKEN secret. This must be set up by a repo admin:
- Create an npm Granular Access Token at https://www.npmjs.com/settings/tokens
- Packages:
ancilisonly - Permissions: Read and write
- Packages:
- In GitHub → Settings → Environments → Create environment
npm- Add deployment protection rule: Required reviewers
- Add secret
NPM_TOKENwith the token from step 1
- The
id-token: writepermission in the workflow provides npm provenance (OIDC) — no additional secret needed for that.
The release workflow is artifact-bound: the verify job packs the tarball and uploads it as a GitHub Actions artifact, and the publish job downloads and publishes that exact tarball. Do not manually rebuild before publishing.
Both SDKs (package.json and pyproject.toml) must share the same version string. The release workflow enforces this and will fail if they diverge.