Contributing¶
We welcome contributions to StatQA! This guide will help you get started.
Development Setup¶
Fork the repository on GitHub
Clone your fork locally:
git clone https://github.com/yourusername/statqa.git
cd statqa
Install development dependencies:
uv sync --all-extras
Install pre-commit hooks:
pre-commit install
Running Tests¶
# Run all tests
pytest
# Run with coverage
pytest --cov=statqa --cov-report=html
# Run specific test markers
pytest -m "not slow" # Exclude slow tests
pytest -m "not llm" # Exclude LLM API tests
Code Quality¶
We use several tools to maintain code quality:
# Format code
ruff format statqa tests
# Lint code
ruff check statqa tests
# Type checking
pyright
# Docstring linting
pydoclint statqa
Pull Request Guidelines¶
Create a feature branch from main
Add tests for new functionality
Update documentation if needed
Ensure all checks pass (tests, linting, type checking)
Write clear commit messages
Submit pull request with description of changes
Documentation¶
Documentation is built with Sphinx:
cd docs
make html
The documentation is automatically deployed on pushes to main.
Release Process¶
Update version in
pyproject.tomlUpdate
CHANGELOG.mdCreate release tag
GitHub Actions handles PyPI publishing