From 0152d83f04c58992150ff6cc6b3df63302009116 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Mon, 11 Aug 2025 11:44:35 +0200 Subject: [PATCH 01/11] Pin httpx<1 --- tests/requirements/fastapi.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/requirements/fastapi.txt b/tests/requirements/fastapi.txt index 18476e7..337e93c 100644 --- a/tests/requirements/fastapi.txt +++ b/tests/requirements/fastapi.txt @@ -1,3 +1,3 @@ fastapi asgiref -httpx \ No newline at end of file +httpx<1 From 7e4f369c344830fa2cfceb7062b9dcb4ecc124b1 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Sat, 1 Nov 2025 14:58:13 +0100 Subject: [PATCH 02/11] Pin sanic-testing for httpx<1 --- tests/requirements/sanic.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/requirements/sanic.txt b/tests/requirements/sanic.txt index 339801b..1def9f9 100644 --- a/tests/requirements/sanic.txt +++ b/tests/requirements/sanic.txt @@ -3,6 +3,6 @@ aiohttp Sanic sanic_redis -sanic-testing +sanic-testing<23.6 uvloop>=0.14.0rc1 -setuptools \ No newline at end of file +setuptools From 4862e2edf54059fecff624070aba128e04cc86b6 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Sat, 1 Nov 2025 15:08:52 +0100 Subject: [PATCH 03/11] Drop EOL from tox matrix --- tox.ini | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/tox.ini b/tox.ini index a8a066c..2d6942e 100644 --- a/tox.ini +++ b/tox.ini @@ -2,16 +2,15 @@ usedevelop = True minversion = 1.8 envlist = - py38-lint + py39-lint py311-docs - py{38,39,310}-dj32 - py{38,39,310,311,312}-dj42 + py{39,310,311,312}-dj42 py{310,311,312,313}-dj{51,52} - py{38,39,310,311,312,313}-fa100 - py{38,39,310,311}-fl{20,21,22} - py{38,39,310,311,312}-fl{23,30} - py{38,39,310,311}-s{21,22} - py{38,39,310,311,312,313}-s23 + py{39,310,311,312,313}-fa100 + py{39,310,311}-fl{20,21,22} + py{39,310,311,312}-fl{23,30} + py{39,310,311}-s{21,22} + py{39,310,311,312,313}-s23 [testenv] usedevelop = true @@ -21,11 +20,10 @@ setenv = PYTHONPATH = {toxinidir} deps = -rtests/requirements/default.txt - dj{32,42,51,52}: -rtests/requirements/django.txt + dj{42,51,52}: -rtests/requirements/django.txt fa100: -rtests/requirements/fastapi.txt fl{20,21,22,23,30}: -rtests/requirements/flask.txt s{21,22,23}: -rtests/requirements/sanic.txt - dj32: -ctests/constraints/django-3.2.txt dj42: -ctests/constraints/django-4.2.txt dj51: -ctests/constraints/django-5.1.txt dj52: -ctests/constraints/django-5.2.txt @@ -40,7 +38,7 @@ deps = s23: -ctests/constraints/sanic-23.txt commands = python --version - dj{32,42,51,52}: pytest --no-migrations -o DJANGO_SETTINGS_MODULE=tests.django.settings -o django_find_project=false {posargs:tests/core/ tests/django} + dj{42,51,52}: pytest --no-migrations -o DJANGO_SETTINGS_MODULE=tests.django.settings -o django_find_project=false {posargs:tests/core/ tests/django} fa{100}: pytest {posargs: tests/core/ tests/fastapi/} fl{20,21,22,23,30}: pytest {posargs:tests/core/ tests/flask/} s{21,22,23}: pytest {posargs:tests/core/ tests/sanic/} @@ -51,8 +49,8 @@ deps = -rdocs/requirements.txt commands = sphinx-build -b html -d {envtmpdir}/doctrees docs {envtmpdir}/html pip_pre = false -[testenv:py38-lint] -basepython = python3.8 +[testenv:py39-lint] +basepython = python3.9 deps = -rtests/requirements/lint.txt commands = ruff check src/ tests/ From d759cba27d100ded0754ced584425cc07ecf66f9 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Sat, 1 Nov 2025 15:13:33 +0100 Subject: [PATCH 04/11] Update release CI used Python version --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 57ffd2f..17c032f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,14 +12,14 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: - python-version: 3.8 + python-version: "3.9" - name: Install pypa/build run: python3 -m pip install build From 51e8844a9c73597c707f0c3158046aaa87bc6b66 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Sat, 1 Nov 2025 15:15:17 +0100 Subject: [PATCH 05/11] Bump CI versions --- .github/workflows/test.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c898e23..9d1c941 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,10 +14,10 @@ jobs: outputs: envlist: ${{ steps.generate-tox-envlist.outputs.envlist }} steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v5 + - uses: actions/setup-python@v6 with: - python-version: 3.12 + python-version: "3.13" cache: pip - run: pip install tox tox-gh-matrix - id: generate-tox-envlist @@ -47,9 +47,9 @@ jobs: # Maps port 6379 on service container to the host - 6379:6379 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Python ${{ matrix.tox.python.version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.tox.python.spec }} cache: pip From 6b9b30f5bfea1bf1cde4a3958ef3b3cad48e6f64 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Sat, 1 Nov 2025 15:17:33 +0100 Subject: [PATCH 06/11] Ignore ruff unused-unpacked-variable rule --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index a6e9fd1..bdec2d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,6 +28,8 @@ ignore = [ "PT011", # FIXME: parenthesize-chained-operators "RUF021", + # FIXME: unused-unpacked-variable + "RUF059", ] [tool.ruff.lint.isort] From b36338ba629d84d3d94d508396d4eb366d0ada20 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Sat, 1 Nov 2025 15:20:26 +0100 Subject: [PATCH 07/11] Remove django-3.2 tests --- tests/constraints/django-3.2.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 tests/constraints/django-3.2.txt diff --git a/tests/constraints/django-3.2.txt b/tests/constraints/django-3.2.txt deleted file mode 100644 index 807ac90..0000000 --- a/tests/constraints/django-3.2.txt +++ /dev/null @@ -1 +0,0 @@ -Django>=3.2,<4.0 From 0bbbda381b64ce91991262354e404399075a4695 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Sat, 1 Nov 2025 15:29:52 +0100 Subject: [PATCH 08/11] Drop EOL --- setup.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 5be4bae..537e458 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,6 @@ def read(*parts): "Development Status :: 5 - Production/Stable", "Environment :: Web Environment :: Mozilla", "Framework :: Django", - "Framework :: Django :: 3.2", "Framework :: Django :: 4.2", "Framework :: Django :: 5.1", "Framework :: Django :: 5.2", @@ -38,7 +37,6 @@ def read(*parts): "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -53,5 +51,5 @@ def read(*parts): "fastapi": ["fastapi", "asgiref"], }, zip_safe=False, - python_requires=">=3.8,<4", + python_requires=">=3.9,<4", ) From 054d92041c62ede93572efefe4d7d06ffaa67ba8 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Fri, 28 Nov 2025 12:23:08 +0100 Subject: [PATCH 09/11] Remove django-5.1 testing --- tests/constraints/django-5.1.txt | 1 - tests/constraints/django-6.0.txt | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 tests/constraints/django-5.1.txt create mode 100644 tests/constraints/django-6.0.txt diff --git a/tests/constraints/django-5.1.txt b/tests/constraints/django-5.1.txt deleted file mode 100644 index 0763f4c..0000000 --- a/tests/constraints/django-5.1.txt +++ /dev/null @@ -1 +0,0 @@ -Django>=5.1,<5.2 diff --git a/tests/constraints/django-6.0.txt b/tests/constraints/django-6.0.txt new file mode 100644 index 0000000..f1a4a72 --- /dev/null +++ b/tests/constraints/django-6.0.txt @@ -0,0 +1 @@ +Django>=6.0rc1,<6.1 From 27e3f782041fa6c828de7a0140c1c126466a24e9 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Fri, 28 Nov 2025 12:24:27 +0100 Subject: [PATCH 10/11] Add Django 6.0 to test matrix --- tox.ini | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tox.ini b/tox.ini index 2d6942e..a232a29 100644 --- a/tox.ini +++ b/tox.ini @@ -5,7 +5,8 @@ envlist = py39-lint py311-docs py{39,310,311,312}-dj42 - py{310,311,312,313}-dj{51,52} + py{310,311,312,313}-dj52 + py{312,313}-dj60 py{39,310,311,312,313}-fa100 py{39,310,311}-fl{20,21,22} py{39,310,311,312}-fl{23,30} @@ -20,13 +21,13 @@ setenv = PYTHONPATH = {toxinidir} deps = -rtests/requirements/default.txt - dj{42,51,52}: -rtests/requirements/django.txt + dj{42,52,60}: -rtests/requirements/django.txt fa100: -rtests/requirements/fastapi.txt fl{20,21,22,23,30}: -rtests/requirements/flask.txt s{21,22,23}: -rtests/requirements/sanic.txt dj42: -ctests/constraints/django-4.2.txt - dj51: -ctests/constraints/django-5.1.txt dj52: -ctests/constraints/django-5.2.txt + dj60: -ctests/constraints/django-6.0.txt fa100: -ctests/constraints/fastapi-0.100.txt fl20: -ctests/constraints/flask-2.0.txt fl21: -ctests/constraints/flask-2.1.txt @@ -38,7 +39,7 @@ deps = s23: -ctests/constraints/sanic-23.txt commands = python --version - dj{42,51,52}: pytest --no-migrations -o DJANGO_SETTINGS_MODULE=tests.django.settings -o django_find_project=false {posargs:tests/core/ tests/django} + dj{42,52,60}: pytest --no-migrations -o DJANGO_SETTINGS_MODULE=tests.django.settings -o django_find_project=false {posargs:tests/core/ tests/django} fa{100}: pytest {posargs: tests/core/ tests/fastapi/} fl{20,21,22,23,30}: pytest {posargs:tests/core/ tests/flask/} s{21,22,23}: pytest {posargs:tests/core/ tests/sanic/} From 79b9a7222c7cb619f43794d5650ad373d0ae9314 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Fri, 28 Nov 2025 12:31:19 +0100 Subject: [PATCH 11/11] Update metadata --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 537e458..fd07fc9 100644 --- a/setup.py +++ b/setup.py @@ -28,8 +28,8 @@ def read(*parts): "Environment :: Web Environment :: Mozilla", "Framework :: Django", "Framework :: Django :: 4.2", - "Framework :: Django :: 5.1", "Framework :: Django :: 5.2", + "Framework :: Django :: 6.0", "Framework :: Flask", "Framework :: FastAPI", "Intended Audience :: Developers",