Contributor testing matrix¶
Which tests to run — and how long they usually take — by change type.
Docs-only PRs:
./scripts/check-doc-versions.shonly (~seconds). No Rust/Node required.
Quick reference¶
| Change type | Minimum commands | Typical time (warm cache) | Typical time (cold) |
|---|---|---|---|
| Docs only | ./scripts/check-doc-versions.sh | < 1 min | < 1 min |
| Single Rust crate | cargo test -p <crate> + cargo fmt --all --check | 1–5 min | 10–30 min |
| LSP / handlers | cargo test -p ontocore-lsp + cargo build -p ontocore-lsp --bins | 2–8 min | 15–40 min |
| CLI | cargo test -p ontocore-cli + integration tests touching CLI | 3–10 min | 20–45 min |
| Extension host | cd extension && npm ci && ONTOCORE_LSP_BIN=../target/debug/ontocore-lsp npm test | 2–5 min | 5–15 min |
| Webview UI | cd extension/webview-ui && npm ci && npm test | 1–3 min | 3–8 min |
| Release / wide refactor | ./scripts/run-ci-local.sh | 15–30 min | 30–60+ min |
Cold times include first cargo build on a machine without a populated target/ directory.
By subsystem¶
Rust engine (crates/ontocore-*)¶
cargo fmt --all --check
cargo clippy -p ontocore-<crate> --all-targets -- -D warnings
cargo test -p ontocore-<crate>
Workspace-wide before merge:
cargo test --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
Language server¶
cargo build -p ontocore-lsp --bins
cargo test -p ontocore-lsp
# Optional smoke: tests/lsp_smoke.rs via full workspace tests
Build the LSP binary before extension tests: ONTOCORE_LSP_BIN=../target/debug/ontocore-lsp.
VS Code extension¶
cargo build -p ontocore-lsp --bins
cd extension && npm ci
ONTOCORE_LSP_BIN=../target/debug/ontocore-lsp npm run compile && npm test
F5 debugging: Extension development · Debugging.
Webview UI¶
cd extension/webview-ui && npm ci && npm test
Plugins¶
cargo test -p ontocore-plugin -p ontocore-plugin-naming
./scripts/run-ci-local.sh # when touching host + reference plugins
Documentation¶
./scripts/check-doc-versions.sh
pip install -r docs/requirements.txt && ./scripts/build-docs.sh # optional strict build
Optional dependencies¶
| Tool | When required |
|---|---|
Java + robot on PATH | ROBOT integration tests, ontocore robot manual checks |
| Node 20 | Extension and webview changes |
| Git repo | ontocore diff integration tests |
Full CI parity¶
./scripts/run-ci-local.sh
Matches GitHub Actions — use before release-impacting PRs. See CONTRIBUTING.md.