Thank you for considering contributing to OLOL! This document provides guidelines and instructions for contributing.
-
Clone the repository
git clone https://github.com/K2/olol.git cd olol -
Create and activate a virtual environment
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies
uv pip install -e ".[dev,test]"
-
Create a new branch for your feature
git checkout -b feature/your-feature-name
-
Make your changes
-
Run tests to verify your changes
pytest -v
-
Format and lint your code
black . isort . ruff check . mypy src/ tests/
-
Submit a pull request
- Follow PEP 8 and use Black for consistent formatting
- Add type hints to all functions and methods
- Write docstrings in Google style format
- Keep functions and methods small and focused
- Follow the existing patterns in the codebase
- Add tests for all new functionality
- Maintain at least 80% code coverage
- Write both unit and integration tests as appropriate
- Update documentation to reflect your changes
- Add examples for new features
- Keep the README up to date
When changing proto files:
- Update the proto files in
src/olol/proto/ - Regenerate the Python code:
python -m olol.utils.protoc
Please be respectful and inclusive when contributing. Harassment or offensive behavior will not be tolerated.