Supported Versions¶
Python¶
Azure Functions Doctor supports Python 3.10 and above.
- Minimum supported version: 3.10
- Targeted versions: 3.10, 3.11, 3.12, 3.13, 3.14
Python Compatibility Notes¶
- The package metadata and CI matrix are aligned to supported interpreter versions.
- New Python versions are added after CI coverage and baseline diagnostics stability checks.
- Unsupported versions may appear to run but are not considered supported behavior.
Example local verification:
import sys
def is_supported_python() -> bool:
major = sys.version_info.major
minor = sys.version_info.minor
return major == 3 and minor >= 10
if __name__ == "__main__":
print(is_supported_python())
Azure Functions Model¶
Azure Functions Doctor supports the Azure Functions Python v2 programming model only.
- Supported:
func.FunctionApp()and decorator-based triggers - Not supported: legacy
function.json-based Python v1 projects
Azure Functions Runtime Compatibility¶
Azure Functions Doctor validates project readiness for current Azure Functions host expectations, with emphasis on local tooling and host configuration used by Python v2 apps.
| Component | Compatibility Baseline | Notes |
|---|---|---|
| Azure Functions programming model | Python v2 | Requires decorator-based app style (@app.route, etc.). |
| Local runtime tooling | Core Tools v4+ (recommended) | Reported as optional warning when missing or older than baseline. |
| Host config file | host.json required |
Required check for project structure validity. |
| Local settings file | local.settings.json optional |
Warning-oriented check for local development ergonomics. |
CI Test Matrix¶
The CI pipeline should continuously validate package behavior against supported versions.
| Dimension | Values |
|---|---|
| OS | ubuntu-latest |
| Python versions | 3.10, 3.11, 3.12, 3.13, 3.14 |
| Test gates | lint, typecheck, unit tests, security checks |
Representative GitHub Actions matrix shape:
CLI and API Compatibility Expectations¶
- CLI command surface:
azure-functions doctorwith documented options. - Public API surface:
run_diagnostics(path, profile, rules_path). - Changes to public behavior should be reflected in tests, docs, and release notes.
Programmatic compatibility check example:
from azure_functions_doctor.api import run_diagnostics
def smoke(path: str) -> int:
sections = run_diagnostics(path=path, profile="minimal", rules_path=None)
required_failures = 0
for section in sections:
for item in section["items"]:
if item["status"] == "fail":
required_failures += 1
return required_failures
Maintenance Policy¶
When the supported baseline changes, update:
pyproject.tomlsrc/azure_functions_doctor/assets/rules/v2.json- CI matrices
- this document and the main README
Deprecation Policy¶
Version support changes follow a predictable process to avoid surprise breakages.
- Announce intent to deprecate a version in release notes.
- Keep the version in CI during the deprecation notice period.
- Update support declarations (
pyproject.toml, docs, CI matrix) in a coordinated release. - Remove deprecated version from active support and close related compatibility issues.
Deprecation Triggers¶
- Upstream ecosystem shifts (Python end-of-life, Azure Functions platform changes).
- Inability to keep quality gates green for a version without disproportionate maintenance cost.
- Security or packaging constraints that block safe continued support.
Communication Requirements¶
- Document the change in release notes and changelog.
- Reflect the new baseline in
supported_versions.mdand README. - Ensure tests and diagnostics rules match the new support floor.