Contributing
Guidelines for contributing to redisctl.
Development Setup
# Clone repository
git clone https://github.com/redis-developer/redisctl.git
cd redisctl
# Build
cargo build
# Run tests
cargo test --workspace --all-features
# Run lints
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
Branch Naming
feat/- New featuresfix/- Bug fixesdocs/- Documentationrefactor/- Code refactoringtest/- Test improvements
Commit Messages
Use conventional commits:
feat: add database streaming support
fix: handle empty response in cluster stats
docs: update installation instructions
refactor: extract async operation handling
test: add wiremock tests for VPC peering
Pull Requests
- Create feature branch from
main - Make changes with tests
- Run
cargo fmtandcargo clippy - Push and create PR
- Wait for CI to pass
- Request review
Testing
Unit Tests
cargo test --lib --all-features
Integration Tests
cargo test --test '*' --all-features
With Docker Environment
docker compose up -d
cargo test --package redis-enterprise
Code Style
- Use
anyhowfor CLI errors,thiserrorfor library errors - All public APIs must have doc comments
- Follow Rust 2024 edition idioms
- No emojis in code, commits, or docs
Adding Commands
- Add CLI enum variant in
crates/redisctl/src/cli/ - Implement handler in
crates/redisctl/src/commands/ - Add client method in library crate if needed
- Add tests
- Update documentation
Questions?
Open an issue at github.com/redis-developer/redisctl/issues