Thank you for your interest in contributing to quant-cache!
git clone https://github.com/albert-einshutoin/quant-cache.git
cd quant-cache
cargo build --workspace
cargo test --workspace- Fork the repository
- Create a feature branch (
git checkout -b feat/my-feature) - Make your changes
- Run checks:
cargo fmt --check cargo clippy --all-targets -- -D warnings cargo test --workspace - Commit with a descriptive message (
feat: add X,fix: resolve Y) - Open a Pull Request
- Follow
rustfmtdefaults (configured inrustfmt.toml) - All clippy warnings must be resolved
- Add tests for new functionality
- Keep functions focused (< 50 lines)
See docs/ARCHITECTURE.md for crate responsibilities and data flow.
Key principle: Scoring and solving are separated. The Solver trait receives
pre-scored objects and doesn't know about economic parameters.
- Unit tests: alongside source code or in
tests/directories - Property-based tests: use
proptestfor solver invariants - Acceptance tests:
#[ignore]attribute, run withcargo test --release -- --ignored
- Use GitHub Issues
- Include: expected behavior, actual behavior, steps to reproduce
- For performance issues: include trace size, capacity, and preset used