From 72346a5249cd7496953f9ee5a5b3bff5bdf3e2bb Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Fri, 9 May 2025 22:45:43 +0200 Subject: [PATCH 1/5] Bump CI actions --- .github/workflows/test.yml | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 69b54fb..064142a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,10 +14,8 @@ jobs: outputs: envlist: ${{ steps.generate-tox-envlist.outputs.envlist }} steps: - - uses: actions/checkout@v3 - - run: | - python -m pip install --upgrade pip - python -m pip install tox tox-gh-matrix + - uses: actions/checkout@v4 + - run: pip install tox tox-gh-matrix - id: generate-tox-envlist run: python -m tox --gh-matrix @@ -29,7 +27,6 @@ jobs: fail-fast: false matrix: tox: ${{ fromJSON(needs.get-tox-envlist.outputs.envlist) }} - # Service containers to run with `container-job` services: # Label used to access the service container @@ -45,25 +42,15 @@ jobs: ports: # Maps port 6379 on service container to the host - 6379:6379 - steps: - - uses: actions/checkout@v2 - + - uses: actions/checkout@v4 - name: Setup Python ${{ matrix.tox.python.version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.tox.python.spec }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install --upgrade tox - + run: pip install tox codecov - name: Tox tests run: python -m tox -v -e ${{ matrix.tox.name }} - - - name: Install codecov - run: python -m pip install codecov - - name: Upload coverage run: python -m codecov --name "Python ${{ matrix.tox.python.spec }}" From 8714a878214697c970c6073e4c0085bc62b875d6 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Fri, 9 May 2025 23:16:14 +0200 Subject: [PATCH 2/5] Use non-system env in CI --- .github/workflows/test.yml | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 064142a..c898e23 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,6 +15,10 @@ jobs: envlist: ${{ steps.generate-tox-envlist.outputs.envlist }} steps: - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.12 + cache: pip - run: pip install tox tox-gh-matrix - id: generate-tox-envlist run: python -m tox --gh-matrix @@ -43,14 +47,15 @@ jobs: # Maps port 6379 on service container to the host - 6379:6379 steps: - - uses: actions/checkout@v4 - - name: Setup Python ${{ matrix.tox.python.version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.tox.python.spec }} - - name: Install dependencies - run: pip install tox codecov - - name: Tox tests - run: python -m tox -v -e ${{ matrix.tox.name }} - - name: Upload coverage - run: python -m codecov --name "Python ${{ matrix.tox.python.spec }}" + - uses: actions/checkout@v4 + - name: Setup Python ${{ matrix.tox.python.version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.tox.python.spec }} + cache: pip + - name: Install dependencies + run: pip install tox codecov + - name: Tox tests + run: python -m tox -v -e ${{ matrix.tox.name }} + - name: Upload coverage + run: python -m codecov --name "Python ${{ matrix.tox.python.spec }}" From b9daafd164f004de411686a36c8d0fe99a89f98d Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Tue, 13 May 2025 17:53:53 +0200 Subject: [PATCH 3/5] Add ruff exclusions +FIXME comments --- pyproject.toml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index f60887f..a6e9fd1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,6 +21,13 @@ select = [ ignore = [ # `format` will wrap lines. "E501", + # FIXME: pytest-fixture-no-parentheses + "PT001", + "PT023", + # FIXME: pytest-raises-too-broad + "PT011", + # FIXME: parenthesize-chained-operators + "RUF021", ] [tool.ruff.lint.isort] From 1ce0babf7ad16d2f8cf5f3f17f0419685c9e9689 Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Tue, 13 May 2025 18:20:44 +0200 Subject: [PATCH 4/5] Update Django and Python in CI --- tests/constraints/django-4.0.txt | 1 - tests/constraints/django-4.1.txt | 1 - tests/constraints/django-5.0.txt | 1 - tests/constraints/django-5.1.txt | 1 + tests/constraints/django-5.2.txt | 1 + tox.ini | 21 +++++++++++---------- 6 files changed, 13 insertions(+), 13 deletions(-) delete mode 100644 tests/constraints/django-4.0.txt delete mode 100644 tests/constraints/django-4.1.txt delete mode 100644 tests/constraints/django-5.0.txt create mode 100644 tests/constraints/django-5.1.txt create mode 100644 tests/constraints/django-5.2.txt diff --git a/tests/constraints/django-4.0.txt b/tests/constraints/django-4.0.txt deleted file mode 100644 index bb4c705..0000000 --- a/tests/constraints/django-4.0.txt +++ /dev/null @@ -1 +0,0 @@ -Django>=4.0,<4.1 diff --git a/tests/constraints/django-4.1.txt b/tests/constraints/django-4.1.txt deleted file mode 100644 index a0aaa8b..0000000 --- a/tests/constraints/django-4.1.txt +++ /dev/null @@ -1 +0,0 @@ -Django>=4.1,<4.2 diff --git a/tests/constraints/django-5.0.txt b/tests/constraints/django-5.0.txt deleted file mode 100644 index dc2988f..0000000 --- a/tests/constraints/django-5.0.txt +++ /dev/null @@ -1 +0,0 @@ -Django>=5.0,<5.1 diff --git a/tests/constraints/django-5.1.txt b/tests/constraints/django-5.1.txt new file mode 100644 index 0000000..0763f4c --- /dev/null +++ b/tests/constraints/django-5.1.txt @@ -0,0 +1 @@ +Django>=5.1,<5.2 diff --git a/tests/constraints/django-5.2.txt b/tests/constraints/django-5.2.txt new file mode 100644 index 0000000..7db3eb1 --- /dev/null +++ b/tests/constraints/django-5.2.txt @@ -0,0 +1 @@ +Django>=5.2,<5.3 diff --git a/tox.ini b/tox.ini index 16d032b..a8a066c 100644 --- a/tox.ini +++ b/tox.ini @@ -5,11 +5,13 @@ envlist = py38-lint py311-docs py{38,39,310}-dj32 - py{38,39,310,311}-dj{40,41,42} - py{310,311,312}-dj{50} - py{38,39,310,311,312}-fa100 - py{38,39,310,311}-fl{20,21,22,23,30} - py{38,39,310,311}-s{21,22,23} + py{38,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 [testenv] usedevelop = true @@ -19,15 +21,14 @@ setenv = PYTHONPATH = {toxinidir} deps = -rtests/requirements/default.txt - dj{32,40,41,42,50}: -rtests/requirements/django.txt + dj{32,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 - dj40: -ctests/constraints/django-4.0.txt - dj41: -ctests/constraints/django-4.1.txt dj42: -ctests/constraints/django-4.2.txt - dj50: -ctests/constraints/django-5.0.txt + dj51: -ctests/constraints/django-5.1.txt + dj52: -ctests/constraints/django-5.2.txt fa100: -ctests/constraints/fastapi-0.100.txt fl20: -ctests/constraints/flask-2.0.txt fl21: -ctests/constraints/flask-2.1.txt @@ -39,7 +40,7 @@ deps = s23: -ctests/constraints/sanic-23.txt commands = python --version - dj{32,40,41,42,50}: pytest --no-migrations -o DJANGO_SETTINGS_MODULE=tests.django.settings -o django_find_project=false {posargs:tests/core/ tests/django} + 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} 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 9835bbcbdce87f29f9c84c021f7ceaba7fcfc71d Mon Sep 17 00:00:00 2001 From: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Date: Tue, 27 May 2025 12:35:46 +0200 Subject: [PATCH 5/5] Update setup classifiers --- setup.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index 1c1c3cb..5be4bae 100644 --- a/setup.py +++ b/setup.py @@ -19,8 +19,8 @@ def read(*parts): description="Python tools and helpers for Mozilla's Dockerflow", long_description=read("README.rst"), long_description_content_type="text/x-rst", - author="Mozilla Foundation", - author_email="dev-webdev@lists.mozilla.org", + author="Mozilla Services Engineering", + author_email="services-engineering+code@mozilla.com", url="https://github.com/mozilla-services/python-dockerflow", license="MPL 2.0", classifiers=[ @@ -28,10 +28,9 @@ def read(*parts): "Environment :: Web Environment :: Mozilla", "Framework :: Django", "Framework :: Django :: 3.2", - "Framework :: Django :: 4.0", - "Framework :: Django :: 4.1", "Framework :: Django :: 4.2", - "Framework :: Django :: 5.0", + "Framework :: Django :: 5.1", + "Framework :: Django :: 5.2", "Framework :: Flask", "Framework :: FastAPI", "Intended Audience :: Developers", @@ -44,6 +43,7 @@ def read(*parts): "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Internet :: WWW/HTTP", ], extras_require={ @@ -53,5 +53,5 @@ def read(*parts): "fastapi": ["fastapi", "asgiref"], }, zip_safe=False, - python_requires=">=3.7,<4", + python_requires=">=3.8,<4", )