From 5d1f3f7dab2be6107bb9e25efff4b02e7053570b Mon Sep 17 00:00:00 2001 From: Dan Moore Date: Mon, 2 Feb 2026 21:39:26 -0500 Subject: [PATCH 1/3] Add testing support for Django 6.0 and Python 3.14 --- .github/workflows/test.yml | 2 +- README.rst | 3 ++- pyproject.toml | 1 + tox.ini | 16 ++++++++++------ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fa9f290..c15dc7e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v1 diff --git a/README.rst b/README.rst index 5a397d5..f81f4ca 100644 --- a/README.rst +++ b/README.rst @@ -90,7 +90,8 @@ The codebase is targeted and tested against: * Django 3.2.x against Python 3.8, 3.9, 3.10 * Django 4.2.x against Python 3.8, 3.9, 3.10, 3.11, 3.12 -* Django 5.2.x against Python 3.10, 3.11, 3.12, 3.13 +* Django 5.2.x against Python 3.10, 3.11, 3.12, 3.13, 3.14 +* Django 6.0.x against Python 3.12, 3.13, 3.14 To run the tests against all target environments, install `tox `_ and then execute the command:: diff --git a/pyproject.toml b/pyproject.toml index c22c933..cf6d86b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", ] dependencies = [ diff --git a/tox.ini b/tox.ini index b4f8c91..a01c24d 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,11 @@ [tox] envlist = flake8, - py{39,310}-django{32}, - py{39}-django{42}, + py{39,310}-django{32} + py{39}-django{42} py{310,311,312}-django{42} - py{310,311,312,313}-django{52} + py{310,311,312,313,314}-django{52} + py{312,313,314}-django{60} [gh-actions] python = @@ -13,6 +14,7 @@ python = 3.11: py311 3.12: py312 3.13: py313 + 3.14: py314 [build-system] build-backend = "hatchling.build" @@ -29,11 +31,13 @@ basepython = py311: python3.11 py312: python3.12 py313: python3.13 + py314: python3.14 deps = hatch>=1.7.0 - django32: Django>=3.2,<4 - django42: Django>=4.2,<5 - django52: Django>=5.2,<6 + django32: Django>=3.2.9,<4 # Django 3.2.9 is required for Python 3.10 support + django42: Django>=4.2.8,<5 # Django 4.2.8 is required for Python 3.12 support + django52: Django>=5.2.8,<6 # Django 5.2.8 is required for Python 3.14 support + django60: Django>=6.0,<6.1 extras = tests [testenv:flake8] From 7c3dd31bb5b04054176d51e93a809577cf92c2bc Mon Sep 17 00:00:00 2001 From: Dan Moore Date: Mon, 2 Feb 2026 21:49:20 -0500 Subject: [PATCH 2/3] Remove Python 3.9 which is EOL --- .github/workflows/test.yml | 2 +- README.rst | 4 ++-- pyproject.toml | 3 +-- setup.cfg | 5 +++-- tox.ini | 5 +---- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c15dc7e..d085462 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest strategy: 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@v1 diff --git a/README.rst b/README.rst index f81f4ca..93877eb 100644 --- a/README.rst +++ b/README.rst @@ -88,8 +88,8 @@ Targets & testing The codebase is targeted and tested against: -* Django 3.2.x against Python 3.8, 3.9, 3.10 -* Django 4.2.x against Python 3.8, 3.9, 3.10, 3.11, 3.12 +* Django 3.2.x against Python 3.10 +* Django 4.2.x against Python 3.10, 3.11, 3.12 * Django 5.2.x against Python 3.10, 3.11, 3.12, 3.13, 3.14 * Django 6.0.x against Python 3.12, 3.13, 3.14 diff --git a/pyproject.toml b/pyproject.toml index cf6d86b..e39f3d6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ authors = [ ] description = "Group accounts for Django" readme = "README.rst" -requires-python = ">=3.9" +requires-python = ">=3.10" license = {text = "BSD License"} classifiers = [ "Development Status :: 5 - Production/Stable", @@ -15,7 +15,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/setup.cfg b/setup.cfg index 0a5719d..35db5d2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -16,10 +16,11 @@ classifiers = License :: OSI Approved :: BSD License Operating System :: OS Independent Programming Language :: Python - Programming Language :: Python :: 3.8 - Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 + Programming Language :: Python :: 3.13 + Programming Language :: Python :: 3.14 Programming Language :: Python :: Implementation :: CPython Development Status :: 5 - Production/Stable diff --git a/tox.ini b/tox.ini index a01c24d..45300f8 100644 --- a/tox.ini +++ b/tox.ini @@ -1,15 +1,13 @@ [tox] envlist = flake8, - py{39,310}-django{32} - py{39}-django{42} + py{310}-django{32} py{310,311,312}-django{42} py{310,311,312,313,314}-django{52} py{312,313,314}-django{60} [gh-actions] python = - 3.9: py39 3.10: py310 3.11: py311 3.12: py312 @@ -26,7 +24,6 @@ setenv = PYTHONPATH = {toxinidir}:{toxinidir}/organizations commands = pytest {posargs} --cov=organizations basepython = - py39: python3.9 py310: python3.10 py311: python3.11 py312: python3.12 From 3f6ec7791a542f0bf76fa8b6695050ef1a106506 Mon Sep 17 00:00:00 2001 From: Dan Moore Date: Mon, 2 Feb 2026 21:51:50 -0500 Subject: [PATCH 3/3] Remove support for Django 3.2 which is EOL --- README.rst | 1 - pyproject.toml | 2 +- setup.cfg | 2 +- tox.ini | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 93877eb..23b6ccc 100644 --- a/README.rst +++ b/README.rst @@ -88,7 +88,6 @@ Targets & testing The codebase is targeted and tested against: -* Django 3.2.x against Python 3.10 * Django 4.2.x against Python 3.10, 3.11, 3.12 * Django 5.2.x against Python 3.10, 3.11, 3.12, 3.13, 3.14 * Django 6.0.x against Python 3.12, 3.13, 3.14 diff --git a/pyproject.toml b/pyproject.toml index e39f3d6..c0ed58e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,7 @@ classifiers = [ "Programming Language :: Python :: Implementation :: CPython", ] dependencies = [ - "Django>=3.2", + "Django>=4.2", "django-extensions>=2.0.8", ] dynamic = ["version"] diff --git a/setup.cfg b/setup.cfg index 35db5d2..f4ab3f1 100644 --- a/setup.cfg +++ b/setup.cfg @@ -31,7 +31,7 @@ packages = find: package_dir= =src install_requires = - Django>=3.2.0 + Django>=4.2.0 django-extensions>=2.0.8 python_requires = >=3.8 diff --git a/tox.ini b/tox.ini index 45300f8..5b13173 100644 --- a/tox.ini +++ b/tox.ini @@ -31,7 +31,6 @@ basepython = py314: python3.14 deps = hatch>=1.7.0 - django32: Django>=3.2.9,<4 # Django 3.2.9 is required for Python 3.10 support django42: Django>=4.2.8,<5 # Django 4.2.8 is required for Python 3.12 support django52: Django>=5.2.8,<6 # Django 5.2.8 is required for Python 3.14 support django60: Django>=6.0,<6.1