Polyglot Tooling
The Python package is the reference implementation, but the project now ships release contracts for several language bindings. This page records the developer-facing expectations that keep those bindings aligned.
Tooling parity
Section titled “Tooling parity”The Python reference package keeps language-specific tools with a clear local benefit:
scalenefor Python-only profilingmutmutfor Python-only mutation testingpytest-benchmarkfor Python performance regression checksruffandtyfor Python lint and type gates
Those tools are not forced onto non-Python bindings. The equivalent gates per ecosystem are:
- Rust:
cargo fmt,cargo clippy,cargo test,cargo package - Julia:
Pkg.test - R:
R CMD buildandR CMD check --as-cran
Versioning contract
Section titled “Versioning contract”Each binding follows the release conventions of its own ecosystem:
- Python:
v*tags, PyPI/TestPyPI publication, conda-forge via feedstock - Rust:
rust-v*tags, GitHub Releases for the internal workspace; no crates.io package is currently claimed - Julia:
julia-v*tags with TagBot sync and General registry - R:
r-v*tags, GitHub Releases with CRAN/r-universe handled externally
Logging policy
Section titled “Logging policy”Library code should stay quiet by default. The CLI is the only surface expected to emit user-facing status output.
--quietsuppresses status chatter--format jsonand--format csvare the machine-readable output modes- Debug or verbose detail must remain opt-in and must not change stdout payloads