Thank you for your interest in contributing to Compactr! This document provides guidelines and information for contributors.
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/compactr.rs - Create a new branch:
git checkout -b feature/your-feature-name
- Rust 1.70 or later
- Cargo (comes with Rust)
cargo build --all-featurescargo test --all-featuresBefore submitting a PR, please ensure:
- All tests pass:
cargo test --all-features - Code is formatted:
cargo fmt --all - Clippy passes:
cargo clippy --all-targets --all-features -- -D warnings - Documentation builds:
cargo doc --no-deps --all-features
- Follow the official Rust Style Guide
- Use
rustfmtfor formatting (configuration inrustfmt.toml) - Address all
clippywarnings (configuration inclippy.toml) - Write comprehensive documentation for public APIs
- Include examples in documentation where helpful
- Update the README.md with details of changes if applicable
- Add tests for new functionality
- Ensure all CI checks pass
- Update CHANGELOG.md with a brief description of changes
- Request review from maintainers
- Use clear, descriptive commit messages
- Follow the Conventional Commits format:
feat:for new featuresfix:for bug fixesdocs:for documentation changestest:for test additions/changesrefactor:for code refactoringperf:for performance improvementschore:for maintenance tasks
Example: feat: add UUID format encoding support
- Write unit tests for individual components
- Write integration tests for complex workflows
- Add benchmarks for performance-critical code
- Ensure cross-platform compatibility (Linux, macOS, Windows)
- Document all public APIs with rustdoc comments
- Include examples in documentation
- Update README.md for significant changes
- Add examples in the
examples/directory for new features
By contributing, you agree that your contributions will be licensed under the same dual MIT/Apache-2.0 license as the project.
Feel free to open an issue for questions or discussion!