diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d27711..726ea5d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: fail-fast: false steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: persist-credentials: false ref: ${{ github.event.pull_request.head.sha }} @@ -26,13 +26,13 @@ jobs: sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ libgdal34t64 - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: - python-version: '3.12' + python-version: '3.14' cache: 'pip' cache-dependency-path: 'requirements/*.txt' - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - name: Configure Postgres (for faster tests) @@ -57,7 +57,7 @@ jobs: tox -e ${{ matrix.testenv }} services: postgres: - image: postgis/postgis:17-3.5-alpine + image: postgis/postgis:18-3.6-alpine env: POSTGRES_PASSWORD: password ports: diff --git a/requirements/local.txt b/requirements/local.txt index 1c3ff9b..fde5147 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -1,4 +1,4 @@ -r testing.txt -tox==4.27.0 -tox-uv==1.26.1 +tox==4.34.1 +tox-uv==1.29.0 diff --git a/tox.ini b/tox.ini index ecaca3b..9be94ff 100644 --- a/tox.ini +++ b/tox.ini @@ -3,7 +3,7 @@ envlist = django, django-multilingual, geodjango no_package = true [testenv] -basepython = python3.12 +basepython = python3.14 deps = -rrequirements/testing.txt changedir = {envtmpdir} diff --git a/{{cookiecutter.project_slug}}/.flake8 b/{{cookiecutter.project_slug}}/.flake8 deleted file mode 100644 index b7e502d..0000000 --- a/{{cookiecutter.project_slug}}/.flake8 +++ /dev/null @@ -1,7 +0,0 @@ -[flake8] -max-line-length = 99 -exclude = apps/*/migrations -# F405 - ignore wildcard variable warnings, as F403 (don't use wildcard imports) should show the -# problem anyway. But if we really need wildcard imports - we don't want to noqa every variable. -# W503 - line break before binary operator, considered not PEP 8 compliant by black. -ignore = F405,W503 diff --git a/{{cookiecutter.project_slug}}/.github/workflows/ci_geodjango.yml b/{{cookiecutter.project_slug}}/.github/workflows/ci_geodjango.yml index c4c4366..11237b9 100644 --- a/{{cookiecutter.project_slug}}/.github/workflows/ci_geodjango.yml +++ b/{{cookiecutter.project_slug}}/.github/workflows/ci_geodjango.yml @@ -10,7 +10,7 @@ jobs: timeout-minutes: 10 steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: persist-credentials: false ref: ${{ github.event.pull_request.head.sha }} @@ -20,17 +20,17 @@ jobs: sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ libgdal34t64 - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: - python-version: '3.12' + python-version: '3.14' cache: 'pip' cache-dependency-path: 'requirements/*.txt' - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - name: Node.js npm cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.npm @@ -58,7 +58,7 @@ jobs: tox services: postgres: - image: postgis/postgis:17-3.5-alpine + image: postgis/postgis:18-3.6-alpine env: POSTGRES_PASSWORD: password ports: diff --git a/{{cookiecutter.project_slug}}/.github/workflows/ci_standard.yml b/{{cookiecutter.project_slug}}/.github/workflows/ci_standard.yml index 1dd9b4f..1a7bd8a 100644 --- a/{{cookiecutter.project_slug}}/.github/workflows/ci_standard.yml +++ b/{{cookiecutter.project_slug}}/.github/workflows/ci_standard.yml @@ -10,22 +10,22 @@ jobs: timeout-minutes: 10 steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: persist-credentials: false ref: ${{ github.event.pull_request.head.sha }} - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: - python-version: '3.12' + python-version: '3.14' cache: 'pip' cache-dependency-path: 'requirements/*.txt' - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version-file: '.nvmrc' - name: Node.js npm cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.npm @@ -53,7 +53,7 @@ jobs: tox services: postgres: - image: postgres:17-alpine + image: postgres:18-alpine env: POSTGRES_PASSWORD: password ports: diff --git a/{{cookiecutter.project_slug}}/apps/core/context_processors.py b/{{cookiecutter.project_slug}}/apps/core/context_processors.py index 0183991..f29c1cb 100644 --- a/{{cookiecutter.project_slug}}/apps/core/context_processors.py +++ b/{{cookiecutter.project_slug}}/apps/core/context_processors.py @@ -34,7 +34,7 @@ def browsersync(request): """ host = request.get_host() if ":" in host: - host, port = host.split(":") + host, _port = host.split(":") url = browsersync_url(host=host) diff --git a/{{cookiecutter.project_slug}}/pyproject.toml b/{{cookiecutter.project_slug}}/pyproject.toml index 39ab9d8..4d2c548 100644 --- a/{{cookiecutter.project_slug}}/pyproject.toml +++ b/{{cookiecutter.project_slug}}/pyproject.toml @@ -1,6 +1,6 @@ [tool.black] line-length = 99 -target-version = ["py312"] +target-version = ["py314"] [tool.djlint] profile = "django" @@ -26,7 +26,7 @@ ignore = "T002" extend-exclude = ["apps/*/migrations"] src = ["apps"] line-length = 99 -target-version = "py312" +target-version = "py314" [tool.ruff.lint] exclude = ["apps/*/migrations"] diff --git a/{{cookiecutter.project_slug}}/requirements/base.txt b/{{cookiecutter.project_slug}}/requirements/base.txt index f0246ae..87a30c2 100644 --- a/{{cookiecutter.project_slug}}/requirements/base.txt +++ b/{{cookiecutter.project_slug}}/requirements/base.txt @@ -1,15 +1,15 @@ -Django==5.2.9 -asgiref==3.9.1 -psycopg==3.2.9 -Pillow==11.3.0 +Django==5.2.10 +asgiref==3.11.0 +psycopg==3.3.2 +Pillow==12.1.0 olefile==0.47 -dj-database-url==3.0.1 -sqlparse==0.5.3 -typing-extensions==4.14.1 +dj-database-url==3.1.0 +sqlparse==0.5.5 +typing-extensions==4.15.0 # Caching django-redis==6.0.0 -redis==6.2.0 +redis==7.1.0 # Masked database backups django-maskpostgresdata==0.2.1 @@ -17,23 +17,23 @@ django-maskpostgresdata==0.2.1 # Storage devsoc-contentfiles==0.5 django-storages==1.14.6 -boto3==1.39.4 -botocore==1.39.4 +boto3==1.42.30 +botocore==1.42.30 jmespath==1.0.1 python-dateutil==2.9.0.post0 -s3transfer==0.13.0 +s3transfer==0.16.0 six==1.17.0 -urllib3==2.5.0 +urllib3==2.6.3 # Reporting (Errors, APM) -elastic-apm==6.23.0 -sentry-sdk==2.32.0 -certifi==2025.7.9 -ecs-logging==2.2.0 -wrapt==1.17.2 +elastic-apm==6.25.0 +sentry-sdk==2.50.0 +certifi==2026.1.4 +ecs-logging==2.3.0 +wrapt==2.0.1 # Axes -django-axes==8.0.0 +django-axes==8.1.0 # Email interception django-email-bandit==2.0 diff --git a/{{cookiecutter.project_slug}}/requirements/local.txt b/{{cookiecutter.project_slug}}/requirements/local.txt index defe07e..86391ec 100644 --- a/{{cookiecutter.project_slug}}/requirements/local.txt +++ b/{{cookiecutter.project_slug}}/requirements/local.txt @@ -1,8 +1,8 @@ -r testing.txt -black==25.1.0 -django-debug-toolbar==5.2.0 +black==26.1.0 +django-debug-toolbar==6.2.0 ipdb==0.13.13 pywatchman==3.0.0 -tox==4.27.0 -tox-uv==1.26.1 +tox==4.34.1 +tox-uv==1.29.0 diff --git a/{{cookiecutter.project_slug}}/requirements/production.txt b/{{cookiecutter.project_slug}}/requirements/production.txt index 004f582..c423c28 100644 --- a/{{cookiecutter.project_slug}}/requirements/production.txt +++ b/{{cookiecutter.project_slug}}/requirements/production.txt @@ -1,3 +1,3 @@ -r base.txt -psycopg-c==3.2.9 +psycopg-c==3.3.2 diff --git a/{{cookiecutter.project_slug}}/requirements/testing.txt b/{{cookiecutter.project_slug}}/requirements/testing.txt index 7a78749..fe847c8 100644 --- a/{{cookiecutter.project_slug}}/requirements/testing.txt +++ b/{{cookiecutter.project_slug}}/requirements/testing.txt @@ -1,10 +1,10 @@ -r base.txt -coverage==7.9.2 +coverage==7.13.1 django-extensions==4.1 djlint==1.36.4 factory-boy==3.3.3 -pipdeptree==2.27.0 -ruff==0.12.3 -tblib==3.1.0 -unittest-xml-reporting==3.2.0 +pipdeptree==2.30.0 +ruff==0.14.13 +tblib==3.2.2 +unittest-xml-reporting==4.0.0