CONTRIBUTING.md
March 6, 2026 ยท View on GitHub
Development Prerequisites
- Python 3.10+ (CI currently runs on Python 3.10)
uvgit
Local Setup
- Clone the repository and move into it.
- Install project and development dependencies:
uv sync --all-groups
- Install pre-commit hooks:
uv run pre-commit install
uv run pre-commit install-hooks
Repository Layout
boto3_refresh_session/: package source codetests/: unit testsdocs/: Sphinx documentation.github/workflows/: CI/CD pipelines
Development Workflow
- Create a branch from
main. - Make your changes with tests.
- Run local checks before opening a PR.
- Open a PR using the repository template.
Run Quality Checks Locally
Run the same checks used in CI:
uv run ruff format --check .
uv run ruff check .
uv run pytest tests/ -v
To run the full pre-commit suite:
uv run pre-commit run --all-files
Testing Guidance
- Add or update tests in
tests/for behavioral changes. - Keep tests focused on observable behavior and error handling.
- Prefer small, isolated tests over broad integration-style tests for core logic.
Documentation Guidance
Documentation is built with Sphinx (docs/) using numpydoc.
- Update docs when behavior or public APIs change.
- Add or update docstrings for public classes, methods, and functions.
- Keep examples aligned between
README.mdand docs pages.
Build docs locally from the repository root:
uv run --directory docs make clean html
Generated HTML will be in docs/_build/html/.
Pull Request Requirements
- PR titles must follow Conventional Commits:
- Format:
type(scope)!: summary - Allowed types:
feat,fix,perf,refactor,docs,style,test,build,ci,chore,revert
- Format:
- Ensure formatting, lint, and tests pass locally before opening or updating a PR.
- Include test coverage for code changes.
- Include docs updates for user-facing changes.
Release Notes and Versioning
Releases are automated with Release Please.
- Do not manually edit the package version for normal contributions.
- Do not manually maintain
CHANGELOG.mdunless a maintainer asks for it. - Conventional Commit types influence release bump behavior.
Licensing
By contributing, you agree that your contributions are provided under the repository license (MPL-2.0).