Read and follow CONTRIBUTING.md for development guidelines, coding conventions, and telemetry/logging rules.
All commands below assume the working directory is the repository root
(the directory containing the top-level Makefile and go/, rust/, proto/
directories).
- After editing Markdown files, run markdownlint on the changed files (requires Node.js/npx to be installed):
npx markdownlint-cli <file1.md> <file2.md>After modifying any Markdown, YAML, or Python file, run:
python3 tools/sanitycheck.pyFix any errors before committing.
After modifying any Rust file, run a quick compile check on the affected crate:
cd rust/otap-dataflow && cargo check -p <crate_name>For broader iterative validation while you are still working, you can also run:
cd rust/otap-dataflow && cargo xtask quick-checkThis is an iterative subset only:
- it runs structure checks,
cargo fmt --all, and clippy on--workspace --lib --bins --tests - it only compiles test targets with
cargo test --workspace --lib --bins --tests --no-run - it does not replace the final full
cargo xtask check
If you touched bench targets or bench-only code, you can validate them with:
cd rust/otap-dataflow && cargo xtask check-benchesIf you need to troubleshoot slow checks or identify compile and test hotspots, you can run:
cd rust/otap-dataflow && cargo xtask check --diagnosticsInterpretation guidance for this output is documented in
docs/xtask-diagnostics.md.
When all changes are ready, run the full check suite:
cd rust/otap-dataflow && cargo xtask checkThis is the required full validation path. It runs:
- structure checks
cargo fmt --allcargo clippy --workspace --all-targets -- -D warningscargo test --workspace
Fix any warnings or errors before committing.