Testing and Documentation#
This page describes the validation and documentation checks expected for repository changes.
Testing Rule#
Run tests for every language affected by your change. If you touch the core runtime, the expectation is broader because the bindings sit on top of the same behavior.
Run the affected targets directly:
just test-rust
# Run Rust tests with code coverage reporting, requires installing cargo-llvm-cov with `cargo install cargo-llvm-cov`
just ci=true test-rust
just test-python
just test-go
just test-node
just test-wasm
Use the matching build recipes when you need explicit build-only passes:
just build-rust
just build-python
just build-go
just build-node
just build-wasm
Common Commands#
These commands cover the most common language-specific validation loops.
Rust#
Run the Rust validation loop when a change touches the core runtime or Rust-facing API surface.
cargo test --workspace
Python#
Run the Python validation loop when a change touches the wrapper package, tests, or docs tooling.
uv sync
uv run pytest
Node.js#
Run the Node.js validation loop when a change touches the NAPI binding or JavaScript package surface.
cd crates/node
npm install --ignore-scripts
npm test
Documentation Checklist#
If your change affects public behavior, bindings, examples, or workspace structure, update the corresponding docs in the same branch.
Before opening a PR, confirm:
README.mdstill matches the repo structureRelevant reference docs are updated for public API changes.
Relevant package or crate READMEs are updated when needed.
Examples and snippets stay aligned with supported bindings.
Docs build cleanly.
Docs Verification#
Use these commands to build and check the documentation site after docs changes.
just docs
just docs-linkcheck
Licensing and Headers#
All source files must include SPDX headers and remain under Apache 2.0 expectations. Reviewers check this during normal review even when hooks do not enforce it automatically.