Thanks for your interest in contributing! Here's how to get started.
- Fork the repo and clone your fork.
- Make sure you have Rust stable installed (the toolchain is pinned in
rust-toolchain.toml). - Run
cargo build --workspaceto verify everything compiles.
# Format
cargo fmt --all
# Lint (must pass with zero warnings)
cargo clippy --workspace --all-targets -- -D warnings
# Test
cargo test --workspaceAll three must pass cleanly. CI will enforce this.
- Match existing style. Don't reformat code you didn't change.
- Keep changes surgical. Every changed line should trace to the purpose of the PR.
- No speculative features. Solve the problem at hand, nothing more.
- Error handling:
thiserrorin library crates,anyhowin the binary. Nounwrap()orexpect()outside tests. - Dependencies: Declare at the workspace level in root
Cargo.toml; crates use{ workspace = true }.
- Only
q-platformandq-core::storagemay perform filesystem or OS operations. - Domain code in
q-coremust remain pure (no I/O).
- Create a feature branch:
feat/my-featureorfix/my-bug. - Write clear commit messages.
- Open a Pull Request with a description of what changed and why.
- Link any related issues.
Open an issue with:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Your OS and Rust version (
rustc --version)
Open an issue tagged with enhancement. Describe the use case, not just the solution.
By contributing, you agree that your contributions will be licensed under the MIT License.