Contributing
Thank you for your interest in contributing to echidna!
Development Setup
Prerequisites
- Rust 1.85+ (install via rustup, edition 2024)
- UCSF ChimeraX (optional, for integration testing)
Getting Started
git clone https://github.com/N283T/echidna.git
cd echidna
cargo build
cargo test
Code Style
Formatting
cargo fmt
Linting
cargo clippy -- -D warnings
Commit Messages
Use clear, descriptive commit messages in imperative mood:
Add shell completion supportFix config file parsing for Windows pathsUpdate clap to version 4.5
Testing
Running Tests
# Run all tests
cargo test
# Run specific test
cargo test test_name
# Run tests with output
cargo test -- --nocapture
Writing Tests
- Unit tests go in the same file as the code (
#[cfg(test)]module) - Integration tests go in the
tests/directory - Use descriptive test names that explain what is being tested
Pull Request Process
- Fork the repository and create a feature branch
- Make your changes with appropriate tests
- Ensure all tests pass:
cargo test - Ensure code is formatted:
cargo fmt --check - Ensure clippy passes:
cargo clippy -- -D warnings - Update
CHANGELOG.mdif applicable (under[Unreleased]) - Submit a pull request with a clear description
Reporting Issues
When reporting issues, please include:
- echi version (
echi --version) - Operating system and version
- ChimeraX version (if relevant)
- Steps to reproduce the issue
- Expected vs actual behavior
License
By contributing, you agree that your contributions will be licensed under the MIT License.