From a6e009c149df461fba980b797cf03df852b7f48a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 16:20:34 +0000 Subject: [PATCH] Drop Python 3.9 support: update CI matrix, pyproject.toml, docs, and README Co-authored-by: seanthegeek <44679+seanthegeek@users.noreply.github.com> --- .github/workflows/python-tests.yml | 2 +- README.md | 2 +- docs/source/index.md | 2 +- docs/source/installation.md | 4 ++-- parsedmarc/types.py | 2 +- pyproject.toml | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml index 97ffc07..7667da9 100644 --- a/.github/workflows/python-tests.yml +++ b/.github/workflows/python-tests.yml @@ -30,7 +30,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v5 diff --git a/README.md b/README.md index 4f4921e..ab299e0 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ for RHEL or Debian. | 3.6 | ❌ | Used in RHEL 8, but not supported by project dependencies | | 3.7 | ❌ | End of Life (EOL) | | 3.8 | ❌ | End of Life (EOL) | -| 3.9 | ✅ | Supported until August 2026 (Debian 11); May 2032 (RHEL 9) | +| 3.9 | ❌ | End of Life (EOL) | | 3.10 | ✅ | Actively maintained | | 3.11 | ✅ | Actively maintained; supported until June 2028 (Debian 12) | | 3.12 | ✅ | Actively maintained; supported until May 2035 (RHEL 10) | diff --git a/docs/source/index.md b/docs/source/index.md index a0c213e..03e8c2c 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -56,7 +56,7 @@ for RHEL or Debian. | 3.6 | ❌ | Used in RHEL 8, but not supported by project dependencies | | 3.7 | ❌ | End of Life (EOL) | | 3.8 | ❌ | End of Life (EOL) | -| 3.9 | ✅ | Supported until August 2026 (Debian 11); May 2032 (RHEL 9) | +| 3.9 | ❌ | End of Life (EOL) | | 3.10 | ✅ | Actively maintained | | 3.11 | ✅ | Actively maintained; supported until June 2028 (Debian 12) | | 3.12 | ✅ | Actively maintained; supported until May 2035 (RHEL 10) | diff --git a/docs/source/installation.md b/docs/source/installation.md index 6d06a65..5a8a519 100644 --- a/docs/source/installation.md +++ b/docs/source/installation.md @@ -162,10 +162,10 @@ sudo -u parsedmarc virtualenv /opt/parsedmarc/venv ``` CentOS/RHEL 8 systems use Python 3.6 by default, so on those systems -explicitly tell `virtualenv` to use `python3.9` instead +explicitly tell `virtualenv` to use `python3.10` instead ```bash -sudo -u parsedmarc virtualenv -p python3.9 /opt/parsedmarc/venv +sudo -u parsedmarc virtualenv -p python3.10 /opt/parsedmarc/venv ``` Activate the virtualenv diff --git a/parsedmarc/types.py b/parsedmarc/types.py index 54af485..f0d367d 100644 --- a/parsedmarc/types.py +++ b/parsedmarc/types.py @@ -2,7 +2,7 @@ from __future__ import annotations from typing import Any, Dict, List, Literal, Optional, TypedDict, Union -# NOTE: This module is intentionally Python 3.9 compatible. +# NOTE: This module is intentionally Python 3.10 compatible. # - No PEP 604 unions (A | B) # - No typing.NotRequired / Required (3.11+) to avoid an extra dependency. # For optional keys, use total=False TypedDicts. diff --git a/pyproject.toml b/pyproject.toml index fd1f797..b223f9a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,7 +2,7 @@ requires = [ "hatchling>=1.27.0", ] -requires_python = ">=3.9,<3.14" +requires_python = ">=3.10,<3.14" build-backend = "hatchling.build" [project] @@ -29,7 +29,7 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python :: 3" ] -requires-python = ">=3.9" +requires-python = ">=3.10" dependencies = [ "azure-identity>=1.8.0", "azure-monitor-ingestion>=1.0.0",