From cabf1527bc66f8c1975df7a9a1bb5d7c55e79ab0 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sun, 26 Oct 2025 14:35:33 +0100 Subject: [PATCH] Drop support for Python 3.9 Python 3.9 is EOL end of October 2025. --- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 4 ++-- CHANGES.rst | 2 +- docs/requirements.rst | 2 +- pyproject.toml | 3 +-- tox.ini | 7 +++---- 6 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cc3a4ddf8..17820dc87 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.9 + python-version: 3.10 - name: Get pip cache dir id: pip-cache diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 41abd8d2a..d25fb91ce 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,11 +7,11 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.9', '3.13'] + python-version: ['3.10', '3.13'] target: [pil, imagemagick, graphicsmagick, redis, wand, dbm] include: - - python-version: '3.9' + - python-version: '3.10' target: 'qa' steps: - uses: actions/checkout@v4 diff --git a/CHANGES.rst b/CHANGES.rst index f6ad2f580..1d02c7c4b 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,7 +10,7 @@ Unreleased storage OPTIONS (like bucket names and credentials) are preserved when thumbnails are cached and retrieved. Fixes issues with S3, Google Cloud Storage, and other cloud backends. * Confirmed support for Python 3.13 (on Django 5.1+). -* Drop support for Python 3.8. +* Drop support for Python 3.8 and 3.9. * Add support for Django 5.2 12.11.0 diff --git a/docs/requirements.rst b/docs/requirements.rst index 6f170d766..893a1576a 100644 --- a/docs/requirements.rst +++ b/docs/requirements.rst @@ -4,7 +4,7 @@ Requirements Base requirements ================= -- `Python`_ 3.9+ +- `Python`_ 3.10+ - `Django`_ - :ref:`kvstore-requirements` - :ref:`image-library` diff --git a/pyproject.toml b/pyproject.toml index b58f00727..81d0eb401 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,7 @@ authors = [ maintainers = [ {name = "Jazzband", email = "roadies@jazzband.co"} ] -requires-python = ">= 3.9" +requires-python = ">= 3.10" classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Web Environment', @@ -23,7 +23,6 @@ classifiers=[ 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent', 'Programming Language :: Python', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', diff --git a/tox.ini b/tox.ini index 610a5084f..9755b5d5d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,5 @@ [gh-actions] python = - 3.9: py39 3.10: py310 3.11: py311 3.12: py312 @@ -24,8 +23,8 @@ TARGET = [tox] skipsdist = True envlist = - py39-qa, - py{39,310,311,312}-django{42}-{pil,imagemagick,graphicsmagick,redis,dynamodb,wand,pgmagick,dbm,vipsthumbnail} + py310-qa, + py{310,311,312}-django{42}-{pil,imagemagick,graphicsmagick,redis,dynamodb,wand,pgmagick,dbm,vipsthumbnail} py{310,311,312}-django{50}-{pil,imagemagick,graphicsmagick,redis,dynamodb,wand,pgmagick,dbm,vipsthumbnail} py{310,311,312,313}-django{51}-{pil,imagemagick,graphicsmagick,redis,dynamodb,wand,pgmagick,dbm,vipsthumbnail} py{310,311,312,313}-django{52}-{pil,imagemagick,graphicsmagick,redis,dynamodb,wand,pgmagick,dbm,vipsthumbnail} @@ -59,7 +58,7 @@ commands = coverage report -m coverage xml -[testenv:py39-qa] +[testenv:py310-qa] skip_install = True deps = ruff