| # 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 | |
| 1. Check if the bug has already been reported in [HuggingFace Discussions](https://huggingface.co/OpenPeerAI/DockingAtHOME/discussions) | |
| 2. 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 | |
| 1. Check existing feature requests in Issues | |
| 2. Create a new issue with: | |
| - Clear description of the feature | |
| - Use case and motivation | |
| - Proposed implementation (if applicable) | |
| ### Contributing Code | |
| 1. **Fork the repository** | |
| 2. **Create a feature branch** | |
| ```bash | |
| git checkout -b feature/your-feature-name | |
| ``` | |
| 3. **Make your changes** | |
| - Follow the coding style (see below) | |
| - Add tests for new functionality | |
| - Update documentation as needed | |
| 4. **Commit your changes** | |
| ```bash | |
| git commit -m "Add feature: description" | |
| ``` | |
| 5. **Push to your fork** | |
| ```bash | |
| git push origin feature/your-feature-name | |
| ``` | |
| 6. **Create a Pull Request** | |
| ## Development Setup | |
| ```bash | |
| # 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 | |
| ```bash | |
| # 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 | |
| 1. Ensure CI/CD checks pass | |
| 2. Update CHANGELOG.md | |
| 3. Request review from maintainers | |
| 4. Address review feedback | |
| 5. Squash commits if requested | |
| 6. 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](https://huggingface.co/OpenPeerAI/DockingAtHOME/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! | |