Thank you for your interest in contributing to SearchDeadCode! This document provides guidelines and instructions for contributing.
- Rust 1.70 or later
- Git
# Clone the repository
git clone https://github.com/KevinDoremy/SearchDeadCode.git
cd SearchDeadCode
# Build the project
cargo build
# Run tests
cargo test
# Run with your changes
cargo run -- /path/to/android/project- Check if the issue already exists in GitHub Issues
- If not, create a new issue using the bug report template
- Include:
- Steps to reproduce
- Expected vs actual behavior
- Rust version (
rustc --version) - OS and architecture
- Open a GitHub Issue
- Describe the feature and its use case
- Explain why it would benefit the project
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run tests:
cargo test - Run lints:
cargo clippy - Format code:
cargo fmt - Commit with a clear message
- Push and create a Pull Request
- Follow Rust conventions and idioms
- Run
cargo fmtbefore committing - Run
cargo clippyand fix any warnings - Write descriptive commit messages
- Add tests for new functionality
- Ensure all existing tests pass
- Test with real Android projects when possible
- Document public APIs with doc comments
- Update README if adding user-facing features
- Include examples where helpful
src/
├── main.rs # CLI entry point
├── analysis/ # Dead code detection engine
│ └── detectors/ # Individual detection algorithms
├── graph/ # Code dependency graph
├── parser/ # tree-sitter parsing
├── discovery/ # File discovery
├── report/ # Output formatting
└── refactor/ # Safe delete functionality
- Create a new file in
src/analysis/detectors/ - Implement the
Detectortrait - Add the module to
src/analysis/detectors/mod.rs - Add CLI flag in
src/main.rsif needed - Add tests in the same file or
tests/ - Update README with the new detection type
- Open an issue for questions
- Check existing issues and discussions
By contributing, you agree that your contributions will be licensed under the MIT License.