Contributing¶
Thank you for your interest in contributing to EpiWeeks! We welcome all types of contributions, from questions to code changes.
Quick Start¶
# 1. Fork the repository on GitHub
# 2. Clone your fork locally
git clone https://github.com/YOUR_USERNAME/epiweeks.git
cd epiweeks
# 3. Set up development environment
uv sync
# 4. Run tests to make sure everything works
uv run pytest --cov
How to Contribute¶
🐛 Bug Reports¶
Check Issues for existing reports
Create a new issue with:
Version number
Steps to reproduce
Expected vs actual behavior
Your operating system
💻 Code Changes¶
Prerequisites: Install uv
Setup: Fork the repo and run
uv syncto install dependenciesBefore committing: Run these commands to ensure your changes pass all checks:
uv run ruff format # Format code uv run ruff check --fix # Fix linting issues uv run mypy # Check types uv run pytest --cov # Run tests with coverage
Submit: Push to your fork and create a pull request
Development Commands¶
# Setup
uv sync # Install dependencies
# Code quality
uv run ruff format # Format code
uv run ruff check --fix # Fix linting issues
uv run mypy # Type checking
# Testing
uv run pytest # Run all tests
uv run pytest --cov # Run tests with coverage report
# Documentation
uv run sphinx-build -E docs docs/_build # Build docs
# Build
uv build # Build distribution packages
Maintainers Only¶
Changelog¶
Add ## Unreleased section to CHANGELOG.md when there are unreleased changes. The release script replaces it with the version number.
Updating Dependencies¶
To update all development dependencies to their latest versions:
uv sync --upgrade
Releasing¶
To create a new release, ensure you’re on the main branch with all changes committed and synced with the remote:
bash release.sh <major|minor|patch>
Need Help?¶
Review the GitHub documentation on forking and pull requests
Check existing issues
We appreciate your contribution! 🎉