Contributing Guide
How to contribute to DeepRetro.
Getting Started
Fork the repository
Create a feature branch:
git checkout -b feature/your-feature-name
Make your changes (see Development Guide)
Run tests:
python -m pytest tests/
Submit a pull request
Code Standards
Follow PEP 8 style guide
Use type hints for all functions
Add docstrings (Google style)
Keep functions under 50 lines
Write tests for new features
Commit Messages
Use conventional commit format:
feat: add new LLM model support
fix: resolve API key validation issue
docs: update installation instructions
test: add integration tests for cache
refactor: simplify molecule validation
Pull Request Process
Update documentation if needed
Add tests for new functionality
Ensure all tests pass
Update changelog if applicable
Request review from maintainers
Issue Reporting
When reporting issues:
Use the issue template
Include error messages and stack traces
Provide steps to reproduce
Specify your environment (OS, Python version, etc.)
Testing
Run tests before submitting:
# Run all tests
python -m pytest tests/
# Run specific test file
python -m pytest tests/test_api.py
# Run with coverage
python -m pytest tests/ --cov=src
Code Review
All PRs require:
Passing tests
Code review approval
Documentation updates
No merge conflicts
Release Process
Update version in pyproject.toml
Update changelog
Create release on GitHub
Tag release with version number
Contact
GitHub Issues: For bugs and feature requests
Discussions: For questions and ideas
Email: For security issues