Cross-language API reference builds
July 29, 2026 ยท View on GitHub
The repository builds API references with each language ecosystem's native documentation tool. CI treats warnings and broken links as failures. Generated HTML stays out of Git; source comments, docstrings, and configuration remain the reviewable contract.
Python: MkDocs and MkDocstrings
The strict Python reference build imports the configured modules through MkDocstrings and renders the complete module catalog.
mkdocs build --strict --site-dir /tmp/scpn-python-reference
This gate checks importability, internal links, navigation, and Python API rendering. It does not replace Ruff's NumPy-docstring gates.
Rust: Cargo doc and Rustdoc
CI runs Rustdoc with warnings denied and dependencies omitted for every documentable Cargo package:
RUSTDOCFLAGS="-D warnings" cargo doc --manifest-path scpn_quantum_engine/Cargo.toml --no-deps
RUSTDOCFLAGS="-D warnings" cargo doc --manifest-path scpn_quantum_engine/program_ad_replay/Cargo.toml --no-deps
RUSTDOCFLAGS="-D warnings" cargo doc --manifest-path scpn_quantum_engine/studio_program_ad_wasm/Cargo.toml --no-deps
RUSTDOCFLAGS="-D warnings" cargo doc --manifest-path scpn_quantum_engine/studio_wasm_kernel/Cargo.toml --no-deps
The cargo-fuzz manifest explicitly marks all fuzz binaries doc = false, so it
has no documentable target. Adding a Rust package requires adding its manifest
to the strict workflow in the same change.
TypeScript: TypeDoc
The Studio builds TypeDoc from exported non-test sources with link and export validation enabled:
pnpm --dir studio-web install --frozen-lockfile
pnpm --dir studio-web docs:api
TypeDoc writes build/api/typescript/. CI retains that directory as the
typedoc-reference artifact and retains every Rust output as
rustdoc-reference. Generated HTML is evidence, not committed source.
Other languages
This repository currently has no Go, JVM, Julia, or standalone C/C++ package manifest. Their generators are therefore not fabricated. A change that adds a new shipped language package must add its native reference generator and the corresponding strict CI job before merge.