Skip to content

Latest commit

 

History

History
85 lines (62 loc) · 3.25 KB

File metadata and controls

85 lines (62 loc) · 3.25 KB

AGENTS.md

Purpose

azure-functions-doctor is a Python CLI that diagnoses common Azure Functions project issues.

Read First

  • README.md
  • CONTRIBUTING.md
  • docs/agent-playbook.md

Working Rules

Test Coverage

  • Maintain test coverage at 95% or above for committed changes and PRs.
  • Run hatch run pytest --cov --cov-report=term-missing -q to verify before submitting changes.
  • Any PR that drops coverage below 95% must include additional tests to compensate.
  • Keep diagnostics deterministic and user-facing messages actionable.
  • Prefer extending existing rule patterns over introducing one-off flows.
  • If a CLI option or exit code changes, update docs and tests in the same change.
  • Preserve Python 3.10+ compatibility declared in pyproject.toml.

Issue Conventions

Follow these conventions when opening issues so the backlog stays consistent with sibling DX Toolkit repositories.

Title

  • Use Conventional Commit prefixes: feat:, fix:, docs:, refactor:, test:, chore:, ci:, build:, perf:.
  • Add a scope qualifier when it narrows the area: feat(rule):, docs(diagnostic):, refactor(check):.
  • Keep the title imperative, under ~80 characters, no trailing period.
  • Do not put [P0] / [P1] / [P2] (or any priority marker) in the title — priority lives in the body.

Body

Use the following sections, in order, omitting any that do not apply:

## Priority: P0 | P1 | P2 (target vX.Y.Z, optional)

## Context
What problem this issue addresses and why now.

## Acceptance Checklist
- [ ] Concrete, verifiable items.

## Out of scope
- Items intentionally excluded, with links to the issues that track them.

## References
- PRs, ADRs, sibling issues, external docs.

Labels

  • Apply at least one of bug, enhancement, documentation, chore.
  • Add area:* labels when they exist in the repository.
  • Use blocker only when the issue blocks a release.

Umbrella issues

When splitting a large piece of work into focused issues, keep the umbrella open as a tracker that links each child issue with a checkbox; close it once every child is closed or explicitly deferred.

Validation

  • make test
  • make lint
  • make typecheck
  • make build

Release Process

  • Version is managed via hatch (dynamic from src/azure_functions_doctor/__init__.py).
  • Do NOT manually edit version strings. Use the Makefile targets below.
  • When bumping version, update tests/test_public_api.py to match the new version string.

Commands

  • make release-patch — bump patch version, update changelog, tag, and push
  • make release-minor — bump minor version, update changelog, tag, and push
  • make release-major — bump major version, update changelog, tag, and push
  • make release VERSION=x.y.z — set explicit version, update changelog, tag, and push
  • make tag-release VERSION=x.y.z — create and push an annotated tag (used internally by release targets)

Flow

  1. make release-patch (or -minor / -major) on main
  2. This runs: hatch versiongit commitmake changeloggit commitgit taggit push
  3. Tag push triggers Publish to PyPI GitHub Actions workflow automatically.
  4. Update docs/changelog.md separately if needed (different format from CHANGELOG.md).