File size: 3,523 Bytes
35aaa09 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# 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!
|