Contributing to Docking@HOME
Thank you for your interest in contributing to Docking@HOME! This document provides guidelines for contributing to the project.
Code of Conduct
We are committed to providing a welcoming and inclusive environment. Please be respectful and constructive in all interactions.
How to Contribute
Reporting Bugs
- Check if the bug has already been reported in HuggingFace Discussions
- If not, create a new discussion with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- System information (OS, GPU, CUDA version, etc.)
- Relevant logs or error messages
Suggesting Features
- Check existing feature requests in Issues
- Create a new issue with:
- Clear description of the feature
- Use case and motivation
- Proposed implementation (if applicable)
Contributing Code
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name - Make your changes
- Follow the coding style (see below)
- Add tests for new functionality
- Update documentation as needed
- Commit your changes
git commit -m "Add feature: description" - Push to your fork
git push origin feature/your-feature-name - Create a Pull Request
Development Setup
# Clone the repository
git clone https://huggingface.co/OpenPeerAI/DockingAtHOME
cd DockingAtHOME
# Install dependencies
pip install -r requirements.txt
npm install
# Build C++/CUDA components
mkdir build && cd build
cmake .. && make -j$(nproc)
# Run tests
ctest
pytest
Coding Standards
C++
- Follow C++17 standard
- Use meaningful variable and function names
- Add Doxygen comments for public APIs
- Use RAII for resource management
- Prefer smart pointers over raw pointers
Python
- Follow PEP 8 style guide
- Use type hints
- Add docstrings for all functions and classes
- Use Black for formatting
- Maximum line length: 100 characters
JavaScript
- Follow ES6+ standards
- Use meaningful variable names
- Add JSDoc comments
- Use async/await for asynchronous code
Testing
- Write unit tests for new functionality
- Ensure all tests pass before submitting PR
- Aim for >80% code coverage
# C++ tests
cd build
ctest -V
# Python tests
pytest tests/ -v --cov
# JavaScript tests
npm test
Documentation
- Update README.md if adding user-facing features
- Update API documentation for new functions
- Add examples for new functionality
- Update MODEL_CARD.md if changing capabilities
Pull Request Process
- Ensure CI/CD checks pass
- Update CHANGELOG.md
- Request review from maintainers
- Address review feedback
- Squash commits if requested
- Wait for approval and merge
Recognition
Contributors will be:
- Listed in CONTRIBUTORS.md
- Acknowledged in release notes
- Credited in publications (for significant contributions)
Questions?
- Email: [email protected]
- Discussion Forum: HuggingFace Discussions
License
By contributing, you agree that your contributions will be licensed under the GPL-3.0 License.
Thank you for helping make computational drug discovery more accessible!