Thanks for your interest in contributing! Here's how to get started.
-
Clone the repository
git clone https://github.com/az-scout/az-scout.git cd az-scout -
Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh -
Install dependencies (including dev tools)
uv sync --group dev
uv run az-scout web --no-open --reload --verbose
# or
uv run python -m az_scout web --no-open --reload --verboseYou need valid Azure credentials (az login or any method supported by DefaultAzureCredential).
This project uses ruff for linting and formatting, and mypy for type checking.
# Lint
uv run ruff check src/ tests/
# Format
uv run ruff format src/ tests/
# Type check
uv run mypy src/A pre-commit configuration is provided to run these checks automatically before each commit:
uv run pre-commit installuv run pytest- Fork the repo and create your branch from
main. - Make your changes and add tests if applicable.
- Ensure all checks pass:
ruff check,ruff format --check,mypy, andpytest. - Open a pull request — the CI pipeline will run automatically.
This project uses CalVer (YYYY.MM.MICRO) and the version is derived from git tags via hatch-vcs.
Edit CHANGELOG.md: move items from [Unreleased] into a new version section and update the footer links.
## [Unreleased]
## [2026.2.1] - 2026-02-14
### Added
- …
### Changed
- …
### Fixed
- …git add CHANGELOG.md
git commit -m "release: v20YY.M.PP"
git tag v20YY.M.PPgit push origin main --tagsPushing the tag triggers the Publish workflow which will:
- Run the full CI (lint + tests across Python 3.11–3.13).
- Validate the tag follows CalVer format and the built package version matches.
- Create a GitHub Release with auto-generated release notes.
- Publish to PyPI via trusted publishing (OIDC).
Please use the issue templates for bug reports and feature requests.