Contributing to Athena Client¶
We welcome contributions to the Athena Client library! This guide will help you get started with contributing code, documentation, bug reports, and feature requests.
Getting Started¶
Setting Up Development Environment¶
Fork the repository on GitHub
Clone your fork:
git clone https://github.com/your-username/athena-client.git cd athena-client
Add upstream remote:
git remote add upstream https://github.com/original-org/athena-client.git
Install dependencies:
uv sync --dev
Install pre-commit hooks:
pre-commit install
Compile protocol buffers:
bash scripts/compile_proto.sh
Verify your setup:
pytest pyright ruff check
Contributions¶
Bug Reports¶
When reporting bugs, please include:
Clear description of the issue
Steps to reproduce the problem
Expected behavior vs actual behavior
Environment details (Python version, OS, etc.)
Code examples demonstrating the issue
Error messages and stack traces
Use this template:
**Bug Description**
A clear description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Create client with options '...'
2. Call method '...'
3. See error
**Expected Behavior**
What you expected to happen.
**Environment**
- Python version: 3.11
- athena-client version: 0.1.0
- OS: macOS 13.0
**Additional Context**
Any other relevant information.
Development Workflow¶
Creating a Pull Request¶
Create a feature branch:
git checkout -b feature/your-feature-name
Make your changes following our guidelines
Write tests for new functionality:
# Add tests to appropriate test files # Run tests to ensure they pass pytest tests/test_your_feature.py
Update documentation if needed:
# Update relevant .rst files # Build docs to check formatting cd docs && make html
Run quality checks:
ruff format # Format code ruff check # Check linting pyright # Type checking pytest # Run tests
Commit your changes:
git add . git commit -m "feat: add your feature description"
Push to your fork:
git push origin feature/your-feature-name
Create pull request on GitHub