From ea9d54fd262cc0b8281fb3b2ba5e523e180a5e98 Mon Sep 17 00:00:00 2001 From: Alex Lutz Date: Sun, 12 Apr 2026 13:03:45 -0600 Subject: [PATCH 1/2] chore: update all dependencies and Python version to latest Bump Python minimum to 3.12, Docker base to 3.13-slim, CI matrix to 3.12/3.13/3.14. Update all dependency floors to latest stable releases. Remove deprecated VS Code linting settings and now-unnecessary mypy ignore_missing_imports overrides (all deps ship py.typed). Drop typer[all] extra which no longer exists. Co-Authored-By: Claude Opus 4.6 (1M context) --- .devcontainer/devcontainer.json | 4 ---- .github/workflows/ci.yml | 8 ++++---- CLAUDE.md | 2 +- Dockerfile | 2 +- api/pyproject.toml | 20 ++++++++++---------- cli/pyproject.toml | 12 ++++++------ pyproject.toml | 29 +++++++++-------------------- 7 files changed, 31 insertions(+), 46 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index b6c5da2..3961d32 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -10,10 +10,6 @@ // Set container-specific settings "settings": { "python.defaultInterpreterPath": "/usr/local/bin/python", - "python.linting.enabled": true, - "python.linting.pylintEnabled": false, - "python.linting.flake8Enabled": false, - "python.formatting.provider": "none", "python.analysis.typeCheckingMode": "basic", "[python]": { "editor.defaultFormatter": "charliermarsh.ruff", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9cff21d..49e06e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.13' - name: Install uv run: curl -LsSf https://astral.sh/uv/install.sh | sh @@ -37,7 +37,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.13' - name: Install uv run: curl -LsSf https://astral.sh/uv/install.sh | sh @@ -52,7 +52,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.11', '3.12'] + python-version: ['3.12', '3.13', '3.14'] steps: - uses: actions/checkout@v4 @@ -71,7 +71,7 @@ jobs: run: uv run pytest --cov=api --cov=cli --cov-report=xml --cov-report=term - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: file: ./coverage.xml fail_ci_if_error: false diff --git a/CLAUDE.md b/CLAUDE.md index f07cd59..a9da438 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,7 +4,7 @@ Platform Engineering Python monorepo template. Features FastAPI for APIs and Typer for CLIs, with modern Python tooling (uv, ruff, mypy, pytest). ## Tech Stack -- **Language**: Python 3.11+ +- **Language**: Python 3.12+ - **API**: FastAPI - **CLI**: Typer - **Package Manager**: uv (fast, modern) diff --git a/Dockerfile b/Dockerfile index a805ad5..c3925be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Multi-stage Dockerfile for both API and CLI -FROM python:3.11-slim AS base +FROM python:3.13-slim AS base # Install uv COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv diff --git a/api/pyproject.toml b/api/pyproject.toml index e7c0c63..a7be1a9 100644 --- a/api/pyproject.toml +++ b/api/pyproject.toml @@ -2,21 +2,21 @@ name = "api" version = "0.1.0" description = "FastAPI application" -requires-python = ">=3.11" +requires-python = ">=3.12" dependencies = [ - "fastapi>=0.115.0", - "uvicorn[standard]>=0.30.0", - "pydantic>=2.9.0", - "pydantic-settings>=2.5.0", + "fastapi>=0.135.0", + "uvicorn[standard]>=0.44.0", + "pydantic>=2.12.0", + "pydantic-settings>=2.13.0", ] [project.optional-dependencies] dev = [ - "pytest>=8.3.0", - "pytest-asyncio>=0.24.0", - "httpx>=0.27.0", - "ruff>=0.7.0", - "mypy>=1.11.0", + "pytest>=9.0.0", + "pytest-asyncio>=1.3.0", + "httpx>=0.28.0", + "ruff>=0.15.0", + "mypy>=1.20.0", ] [build-system] diff --git a/cli/pyproject.toml b/cli/pyproject.toml index 72e73ff..7f6637f 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -2,10 +2,10 @@ name = "cli" version = "0.1.0" description = "Typer CLI application" -requires-python = ">=3.11" +requires-python = ">=3.12" dependencies = [ - "typer[all]>=0.12.0", - "rich>=13.8.0", + "typer>=0.24.0", + "rich>=14.0.0", ] [project.scripts] @@ -13,9 +13,9 @@ platform-cli = "cli.main:app" [project.optional-dependencies] dev = [ - "pytest>=8.3.0", - "ruff>=0.7.0", - "mypy>=1.11.0", + "pytest>=9.0.0", + "ruff>=0.15.0", + "mypy>=1.20.0", ] [build-system] diff --git a/pyproject.toml b/pyproject.toml index 60d7734..9464e47 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "platform-engineering-template" version = "0.1.0" description = "Template monorepo for platform engineering projects" readme = "README.md" -requires-python = ">=3.11" +requires-python = ">=3.12" dependencies = [ "api", "cli", @@ -11,12 +11,12 @@ dependencies = [ [project.optional-dependencies] dev = [ - "pytest>=8.3.0", - "pytest-asyncio>=0.24.0", - "pytest-cov>=5.0.0", - "httpx>=0.27.0", - "ruff>=0.7.0", - "mypy>=1.11.0", + "pytest>=9.0.0", + "pytest-asyncio>=1.3.0", + "pytest-cov>=7.0.0", + "httpx>=0.28.0", + "ruff>=0.15.0", + "mypy>=1.20.0", ] [tool.uv.workspace] @@ -28,7 +28,7 @@ cli = { workspace = true } [tool.ruff] line-length = 100 -target-version = "py311" +target-version = "py312" [tool.ruff.lint] select = [ @@ -46,7 +46,7 @@ ignore = [] "__init__.py" = ["F401"] [tool.mypy] -python_version = "3.11" +python_version = "3.12" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true @@ -61,17 +61,6 @@ explicit_package_bases = true namespace_packages = true mypy_path = "api/src:cli/src" -[[tool.mypy.overrides]] -module = [ - "typer", - "rich.*", - "fastapi", - "uvicorn", - "pydantic", - "pydantic_settings", -] -ignore_missing_imports = true - [tool.pytest.ini_options] testpaths = ["api/tests", "cli/tests"] pythonpath = ["api/src", "cli/src"] From bbaa0648faf9580fcdb51135e96ec1969f17f8c6 Mon Sep 17 00:00:00 2001 From: Alex Lutz Date: Sun, 12 Apr 2026 13:09:22 -0600 Subject: [PATCH 2/2] fix: update remaining Python 3.11 references in docs Update README.md, DOCKER.md, AGENTS.md, and copilot-instructions.md to reflect the new Python 3.12+ minimum. Co-Authored-By: Claude Opus 4.6 (1M context) Entire-Checkpoint: 94ef7f4bfcda --- .github/copilot-instructions.md | 2 +- AGENTS.md | 2 +- DOCKER.md | 2 +- README.md | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 2c6b3f7..eaac57f 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -4,7 +4,7 @@ Platform Engineering Python monorepo template featuring FastAPI and Typer with best practices built-in. ## Tech Stack -- **Language**: Python 3.11+ +- **Language**: Python 3.12+ - **API**: FastAPI - **CLI**: Typer - **Package Manager**: uv diff --git a/AGENTS.md b/AGENTS.md index 887fed4..d811865 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ Python monorepo template for platform engineering. FastAPI + Typer with modern t ## Tech Stack | Component | Technology | |-----------|------------| -| Language | Python 3.11+ | +| Language | Python 3.12+ | | API | FastAPI | | CLI | Typer | | Package Manager | uv | diff --git a/DOCKER.md b/DOCKER.md index b130dde..c1cdbba 100644 --- a/DOCKER.md +++ b/DOCKER.md @@ -103,7 +103,7 @@ docker-compose run cli bash When you open the project in a dev container: ✅ **Auto-configured Python environment** -- Python 3.11 with all dependencies installed +- Python 3.13 with all dependencies installed - uv package manager ready to use ✅ **Pre-installed VS Code extensions** diff --git a/README.md b/README.md index 9496d79..10ebaf8 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ Choose one of the following approaches: - [VS Code](https://code.visualstudio.com/) with [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) (optional but recommended) ### Option 2: Local Development -- Python 3.11 or higher +- Python 3.12 or higher - [uv](https://docs.astral.sh/uv/) package manager ## Quick Start @@ -347,7 +347,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.13' - name: Install uv run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Install dependencies