Thank you for your interest in contributing to bytes-radar! This document provides guidelines and information for contributors.
- Rust 1.70 or later
- Git
-
Fork the repository
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/bytes-radar.git cd bytes-radar -
Set up the development environment:
cargo build cargo test --all-features -
Create a new branch:
git checkout -b feature/my-new-feature git checkout -b fix/issue-123
We use standard Rust formatting and linting tools:
cargo fmt
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features
cargo test --no-default-featuresFollow conventional commit format:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changesrefactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Examples:
feat: add support for SourceForge repositories
fix: handle network timeouts gracefully
docs: update installation instructions
- Write tests for new functionality
- Ensure all existing tests pass
- Include integration tests for new features
cargo test --all-features
cargo test test_name
cargo test -- --nocaptureWhen filing a bug report, please include:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- System information (OS, Rust version, bytes-radar version)
- Command used and full output
For feature requests, please include:
- Clear description of the feature
- Use case and motivation
- Possible implementation approaches
- Any breaking changes
To add support for a new git platform:
- Add URL parsing logic in
src/core/net.rs - Add tests for the new platform
- Update documentation
- Add examples to the README
To add a new output format:
- Add the format enum to
src/cli/args.rs - Implement the formatter in
src/cli/output.rs - Add tests for the new format
- Update help text and documentation
For performance improvements:
- Include benchmarks showing the improvement
- Explain the optimization approach
- Ensure no functionality is broken
- Test on different repository sizes
- Test individual functions and modules
- Mock external dependencies
- Focus on edge cases and error conditions
- Test complete workflows
- Test with real repositories (small ones)
- Test different output formats
- Test error handling
cargo bench
cargo run --release -- user/small-repo- Document all public APIs
- Include examples in doc comments
- Explain complex algorithms
- Keep documentation up to date
- Update README for new features
- Add examples for new functionality
- Update CLI help text
- Keep installation instructions current
Releases are handled by maintainers:
- Version bump in
Cargo.toml - Update
CHANGELOG.md - Create git tag
- GitHub Actions builds and publishes
We welcome contributions in these areas:
- New git platform support
- Performance optimizations
- Better error messages
- More output formats
- CLI improvements
- Documentation improvements
- More language detection
- Cross-platform testing
- Code cleanup
- Minor feature additions
- Example improvements
If you need help:
- Check existing issues
- Start a discussion
-
Before submitting:
- Fork the repository
- Create a feature branch
- Write tests for your changes
- Ensure all tests pass
- Update documentation
-
Submitting:
- Fill out the PR template completely
- Reference related issues
- Describe your changes clearly
- Include screenshots if relevant
-
After submitting:
- Respond to review feedback
- Make requested changes
- Keep your branch up to date
-
Merge criteria:
- All tests pass
- Code review approved
- Documentation updated
- No breaking changes (unless discussed)
Contributors are recognized in:
- Repository contributors page
- Release notes for significant contributions
- README acknowledgments section
By contributing to bytes-radar, you agree that your contributions will be licensed under the Apache License 2.0.
Thank you for contributing to bytes-radar!