From ea0972db518172c57e2bb9da644432090136571e Mon Sep 17 00:00:00 2001 From: Robin Genz Date: Fri, 23 Oct 2026 08:29:05 +0200 Subject: [PATCH] chore!: drop support for Python 3.9 Python 3.9 reached end of life in October 2025 and is no longer available on ubuntu-latest runners. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 2 +- BREAKING.md | 7 +++++++ README.md | 2 +- examples/README.md | 2 +- pyproject.toml | 9 +++------ 5 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a5071cd..0e314a0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,7 +43,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python-version: ['3.10', '3.11', '3.12', '3.13'] steps: - name: Checkout uses: actions/checkout@v6 diff --git a/BREAKING.md b/BREAKING.md index b2ba390..522c618 100644 --- a/BREAKING.md +++ b/BREAKING.md @@ -4,8 +4,15 @@ This is a comprehensive list of the breaking changes introduced in the major ver ## Versions +- [Version 0.3.x](#version-03x) - [Version 0.2.x](#version-02x) +## Version 0.3.x + +### Python 3.10 Required + +Support for Python 3.9 has been removed, as it reached end of life in October 2025. Python 3.10 or later is now required. + ## Version 0.2.x ### Job Logs diff --git a/README.md b/README.md index 672cc5d..fa910c1 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Official SDKs for the Capawesome Cloud API: pip install capawesome-cloud ``` -**Requirements:** Python 3.9 or later. +**Requirements:** Python 3.10 or later. ## Getting started diff --git a/examples/README.md b/examples/README.md index 342fa89..4935d33 100644 --- a/examples/README.md +++ b/examples/README.md @@ -4,7 +4,7 @@ Runnable scripts to try the SDK against the live Capawesome Cloud API. ## Prerequisites -- Python 3.9 or later +- Python 3.10 or later - The SDK installed — from the repository root run `pip install -e .` (or `pip install capawesome-cloud`) - An API token from the [Capawesome Cloud Console](https://console.cloud.capawesome.io/settings/tokens) diff --git a/pyproject.toml b/pyproject.toml index 0f20759..1141e85 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ name = "capawesome-cloud" dynamic = ["version"] description = "Python SDK for the Capawesome Cloud API" readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.10" license = "MIT" authors = [{ name = "Capawesome Team", email = "support@capawesome.io" }] keywords = ["capawesome", "capacitor", "live-updates", "sdk", "api"] @@ -18,7 +18,6 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -53,20 +52,18 @@ packages = ["src/capawesome_cloud"] [tool.ruff] line-length = 100 -target-version = "py39" +target-version = "py310" src = ["src", "tests"] [tool.ruff.lint] select = ["E", "F", "I", "UP", "B", "W", "N", "C4", "SIM"] -# UP007/UP035/UP045 push 3.10+ syntax (X | None, collections.abc generics) that -# breaks pydantic annotation evaluation on Python 3.9, which we still support. +# TODO: Enable UP006/UP007/UP035/UP045 (PEP 585/604 syntax) now that Python 3.9 is no longer supported. ignore = ["E501", "UP006", "UP007", "UP035", "UP045"] [tool.ruff.lint.isort] known-first-party = ["capawesome_cloud"] [tool.mypy] -# Analysis target; the runtime code remains compatible down to Python 3.9. python_version = "3.10" strict = true warn_unused_ignores = true