Durango welcomes improvements from the community. Follow this guide to set up the project locally, keep quality checks passing, and stay aligned with the release workflow.
Environment Setup¶
Install the development dependencies (including docs extras) with uv:
uv sync --all-extras --dev
uv run pre-commit install
If you need to refresh dependencies later, rerun uv sync --all-extras --dev.
Quality Gates¶
Durango exposes the most common checks as Invoke tasks. After installation, explore the catalogue with:
uv run invoke --list
Frequently used tasks:
uv run invoke ci— execute Ruff, MyPy, pytest, and MkDocs in one shot.uv run invoke lint --check-format— ensure Ruff style and auto-fix issues with--fix.uv run invoke tests— run the pytest suite with optional-m/-kfilters.uv run invoke docs-build— build the documentation site locally (add--strictto fail on warnings).uv run invoke docs-serve— preview the documentation server athttp://127.0.0.1:8000.
Run the CI task before sending a pull request to match our GitHub workflow.
Development Workflow¶
- Create a feature branch from
main. - Make changes and run the appropriate Invoke tasks.
- Update relevant documentation under
docs/and coordination notes innotes/STATUS.md. - Open a pull request and include context about testing performed.
Refer to docs/publishing.md for release-specific automation when preparing a new version.