Publishing and Release
Use this checklist for every crate release to maintain reproducibility and user trust.
Release Checklist
- Run formatting and lints (`cargo fmt`, `cargo clippy --all-targets --all-features`).
- Run fast test sweep and explicit long SADF path.
- Run benchmark suites and threshold checks.
- Regenerate benchmark snapshot docs when needed.
- Run `cargo package -p openquant` and review package contents.
- Tag release, publish crate, and verify docs links.
Commands
cargo fmt -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --workspace --lib --tests --all-features -- --skip test_sadf_test
cargo test -p openquant --test structural_breaks test_sadf_test -- --ignored
cargo bench -p openquant --bench perf_hotspots --bench synthetic_ticker_pipeline
python3 scripts/collect_bench_results.py --criterion-dir target/criterion --out benchmarks/latest_benchmarks.json --allow-list benchmarks/benchmark_manifest.json
python3 scripts/check_bench_thresholds.py --baseline benchmarks/baseline_benchmarks.json --latest benchmarks/latest_benchmarks.json --max-regression-pct 25
cargo package -p openquant Release Workflows
.github/workflows/release.ymlfor release readiness checks..github/workflows/nightly-validation.ymlfor deep, slower validations..github/workflows/docs-pages.ymlfor documentation deployment.
Versioning Policy
- Bump patch for bug fixes without public API changes.
- Bump minor for additive APIs and new modules.
- Bump major for breaking API or numerical behavior changes.