Contributing
Getting Started
-
Clone the repository:
git clone https://github.com/aliwert/volter cd volter -
Build all crates:
cargo build --workspace --all-features -
Run tests:
cargo test --workspace --all-features
Code Requirements
All code must pass the following checks:
cargo fmt --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace --all-features
Deny Rules (RULES.md)
The project has strict deny rules enforced via Clippy lint attributes:
clippy::unwrap_used— use?or match instead of.unwrap()clippy::expect_used— same as unwrapclippy::panic— no panics in production codeclippy::indexing_slicing— use.get()instead of direct indexingunsafe— not allowed in production code
These are enforced at the crate level in lib.rs and main.rs.
MSRV
The minimum supported Rust version is 1.79. All code must compile with
this version. Use cargo +1.79 check --workspace --all-features to verify.
Pull Request Process
- Create a feature branch from
main - Make your changes
- Add tests for new functionality
- Run all checks (fmt, clippy, test)
- Verify MSRV compatibility
- Open a pull request
Architecture
See Architecture for the crate layout and core design patterns.
Adding a New Feature
- Check that the feature fits Volter’s scope (web framework primitives)
- Follow existing patterns in the relevant crate
- Add public items with rustdoc documentation
- Add integration tests in the
voltercrate’stests/directory - Add an example if the feature introduces a new user-facing concept
Code of Conduct
Be respectful, constructive, and patient. This is a learning project — not everyone has the same level of experience.