diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bf47f3a982..a4d7c72f58 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2-dev libxmlsec1-dev libxmlsec1-openssl gettext postgresql-client libgdal-dev gdal-bin' - python-version: '3.11' + python-version: '3.12' optimize-postgres: 'yes' pg-service: 'postgres' setup-node: 'yes' @@ -117,7 +117,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' - name: Install coverage.py # We only need coverage, but we need to match the version that was used # to generate the coverage files. Grab it from the dependencies. @@ -179,7 +179,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2-dev libxmlsec1-dev libxmlsec1-openssl gettext postgresql-client libgdal-dev gdal-bin' - python-version: '3.11' + python-version: '3.12' optimize-postgres: 'yes' pg-service: 'postgres' setup-node: 'yes' @@ -214,7 +214,7 @@ jobs: uses: maykinmedia/setup-django-backend@v1.3 with: apt-packages: 'libxml2-dev libxmlsec1-dev libxmlsec1-openssl gettext libgdal-dev gdal-bin graphviz' - python-version: '3.11' + python-version: '3.12' setup-node: 'no' - name: Build and test docs diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 4a4b263072..2d9e48b8be 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: '3.12' - name: Install system packages run: | sudo apt-get update \ @@ -75,7 +75,7 @@ jobs: - name: Install Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' - name: Install dependencies run: | pip install uv @@ -92,7 +92,7 @@ jobs: - name: Install Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' - name: Install dependencies run: | pip install uv diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml index 8531c1a5b3..f1a9d0abde 100644 --- a/.github/workflows/dependencies.yml +++ b/.github/workflows/dependencies.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: '3.11' + python-version: '3.12' - name: Install uv uses: astral-sh/setup-uv@v5 @@ -48,7 +48,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: '3.11' + python-version: '3.12' - name: Install OS-level deps run: brew install postgresql diff --git a/.python-version b/.python-version index 902b2c90c8..e4fba21835 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.11 \ No newline at end of file +3.12 diff --git a/.readthedocs.yaml b/.readthedocs.yaml index ab1a41e69d..661891107a 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -19,7 +19,7 @@ build: - wget - graphviz tools: - python: '3.11' + python: '3.12' python: install: diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 5ce1ac2a72..a165cf9e39 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -21,7 +21,8 @@ Bugfixes Onderhoud --------- -* ... +* [:taiga-us:`3461`, :taiga-ta:`3472`, :pr:`1834`]: Python versie bijgewerkt naar + ``v3.12``. 1.35.0 (2025-09-18) =================== diff --git a/Dockerfile b/Dockerfile index b401de7c52..ecbd607a2a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,15 +5,13 @@ # Stage 1 - Backend build environment # includes compilers and build tooling to create the environment -FROM python:3.11-slim-bookworm AS backend-build +FROM python:3.12-slim-bookworm AS backend-build RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-recommends \ pkg-config \ build-essential \ git \ libpq-dev \ - libxml2-dev \ - libxmlsec1-dev \ libxmlsec1-openssl \ libgdk-pixbuf2.0-0 \ libffi-dev \ @@ -57,7 +55,7 @@ COPY ./src /app/src RUN npm run build # Stage 3 - Build docker image suitable for production -FROM python:3.11-slim-bookworm +FROM python:3.12-slim-bookworm # Stage 3.1 - Set up the needed production dependencies # Note: mime-support becomes media-types in Debian Bullseye (required for correctly serving mime-types for images) @@ -71,7 +69,6 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y --no-install-reco libgdal32 \ libgeos-c1v5 \ libproj25 \ - libxmlsec1-dev \ libxmlsec1-openssl \ libgdk-pixbuf2.0-0 \ libffi-dev \ @@ -97,7 +94,7 @@ COPY ./bin/check_celery_worker_liveness.py ./bin/ VOLUME ["/app/log", "/app/media", "/app/private_media"] # copy backend build deps -COPY --from=backend-build /usr/local/lib/python3.11 /usr/local/lib/python3.11 +COPY --from=backend-build /usr/local/lib/python3.12 /usr/local/lib/python3.12 COPY --from=backend-build /usr/local/bin/uwsgi /usr/local/bin/uwsgi COPY --from=backend-build /usr/local/bin/celery /usr/local/bin/celery diff --git a/INSTALL.rst b/INSTALL.rst index 8b14ebf4af..16df96b4a0 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -19,7 +19,7 @@ Prerequisites You need the following libraries and/or programs: -* `Python`_ 3.11 or above +* `Python`_ 3.12 or above * Python `Virtualenv`_ and `Pip`_ * `PostgreSQL`_ 10 or above with PostGIS extension * `Node.js`_ diff --git a/README.rst b/README.rst index a1c608df4d..d02e27f2fa 100644 --- a/README.rst +++ b/README.rst @@ -7,7 +7,7 @@ Open Inwoner :Demo: https://openinwoner.nl :Source: https://github.com/maykinmedia/open-inwoner :Documentation: https://docs.openinwoner.nl -:PythonVersion: 3.11 +:PythonVersion: 3.12 |build-status| |docker| |black| |python-versions| diff --git a/bin/compile_dependencies.sh b/bin/compile_dependencies.sh index 67ed93e8de..71f67f7d15 100755 --- a/bin/compile_dependencies.sh +++ b/bin/compile_dependencies.sh @@ -21,14 +21,14 @@ cd $toplevel export CUSTOM_COMPILE_COMMAND="./bin/compile_dependencies.sh" # Base (& prod) deps -uv pip compile --no-strip-extras --python 3.11 \ +uv pip compile --no-strip-extras --python 3.12 \ --no-emit-index-url \ --output-file requirements/base.txt \ "$@" \ requirements/base.in # Dependencies for testing -uv pip compile --no-strip-extras --python 3.11 \ +uv pip compile --no-strip-extras --python 3.12 \ --no-emit-index-url \ --output-file requirements/ci.txt \ "$@" \ @@ -37,7 +37,7 @@ uv pip compile --no-strip-extras --python 3.11 \ requirements/docs.in # Dev dependencies - exact same set as CI + some extra tooling -uv pip compile --no-strip-extras --python 3.11 \ +uv pip compile --no-strip-extras --python 3.12 \ --no-emit-index-url \ --output-file requirements/dev.txt \ "$@" \ diff --git a/docs/installation/development.rst b/docs/installation/development.rst index 2829090e9b..01d57fd3da 100644 --- a/docs/installation/development.rst +++ b/docs/installation/development.rst @@ -9,7 +9,7 @@ Prerequisites You need the following libraries and/or programs: -* `Python`_ 3.11 or above +* `Python`_ 3.12 or above * Python `Virtualenv`_ and `Pip`_ * `PostgreSQL`_ 10 or above with PostGIS extension * `Node.js`_ diff --git a/requirements/base.txt b/requirements/base.txt index 372c8d883c..e3eab495c9 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ # This file was autogenerated by uv via the following command: -# uv pip compile --no-strip-extras --python 3.11 --no-emit-index-url --output-file requirements/base.txt requirements/base.in +# uv pip compile --no-strip-extras --python 3.12 --no-emit-index-url --output-file requirements/base.txt requirements/base.in aldryn-apphooks-config==0.7.0 # via -r requirements/base.in amqp==5.1.1 @@ -14,8 +14,6 @@ asgiref==3.7.2 # django-htmx asn1crypto==1.5.1 # via webauthn -async-timeout==4.0.3 - # via redis attrs==21.2.0 # via # glom @@ -53,7 +51,9 @@ cffi==1.15.0 # cryptography # weasyprint charset-normalizer==2.0.6 - # via requests + # via + # reportlab + # requests click==8.1.3 # via # celery @@ -239,7 +239,7 @@ django-phonenumber-field==5.2.0 # via django-two-factor-auth django-polymorphic==3.0.0 # via django-filer -django-privates==1.5.0 +django-privates==3.1.1 # via # -r requirements/base.in # django-simple-certmanager @@ -251,7 +251,7 @@ django-relativedelta==2.0.0 # via zgw-consumers django-sekizai==4.0.0 # via django-cms -django-sendfile2==0.7.0 +django-sendfile2==0.7.2 # via django-privates django-sessionprofile==1.0 # via @@ -384,7 +384,7 @@ jsonschema==4.1.0 # via drf-spectacular kombu==5.5.4 # via celery -lxml==4.9.1 +lxml==6.0.0 # via # django-digid-eherkenning # mail-editor @@ -511,7 +511,7 @@ redis==5.0.3 # via # celery-once # django-redis -reportlab==3.6.13 +reportlab==4.4.2 # via # easy-thumbnails # svglib @@ -607,7 +607,7 @@ xlrd==2.0.1 # via tablib xlwt==1.3.0 # via tablib -xmlsec==1.3.12 +xmlsec==1.3.16 # via maykin-python3-saml xsdata==23.8 # via -r requirements/base.in diff --git a/requirements/ci.txt b/requirements/ci.txt index bad5d0d22c..53481ab025 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -1,5 +1,5 @@ # This file was autogenerated by uv via the following command: -# uv pip compile --no-strip-extras --python 3.11 --no-emit-index-url --output-file requirements/ci.txt requirements/base.txt requirements/test-tools.in requirements/docs.in +# uv pip compile --no-strip-extras --python 3.12 --no-emit-index-url --output-file requirements/ci.txt requirements/base.txt requirements/test-tools.in requirements/docs.in alabaster==0.7.16 # via sphinx aldryn-apphooks-config==0.7.0 @@ -32,11 +32,6 @@ asn1crypto==1.5.1 # -c requirements/base.txt # -r requirements/base.txt # webauthn -async-timeout==4.0.3 - # via - # -c requirements/base.txt - # -r requirements/base.txt - # redis attrs==21.2.0 # via # -c requirements/base.txt @@ -102,6 +97,7 @@ charset-normalizer==2.0.6 # via # -c requirements/base.txt # -r requirements/base.txt + # reportlab # requests click==8.1.3 # via @@ -398,7 +394,7 @@ django-polymorphic==3.0.0 # -c requirements/base.txt # -r requirements/base.txt # django-filer -django-privates==1.5.0 +django-privates==3.1.1 # via # -c requirements/base.txt # -r requirements/base.txt @@ -421,7 +417,7 @@ django-sekizai==4.0.0 # -c requirements/base.txt # -r requirements/base.txt # django-cms -django-sendfile2==0.7.0 +django-sendfile2==0.7.2 # via # -c requirements/base.txt # -r requirements/base.txt @@ -683,7 +679,7 @@ kombu==5.5.4 # -c requirements/base.txt # -r requirements/base.txt # celery -lxml==4.9.1 +lxml==6.0.0 # via # -c requirements/base.txt # -r requirements/base.txt @@ -934,7 +930,7 @@ redis==5.0.3 # -r requirements/base.txt # celery-once # django-redis -reportlab==3.6.13 +reportlab==4.4.2 # via # -c requirements/base.txt # -r requirements/base.txt @@ -1141,7 +1137,7 @@ xlwt==1.3.0 # -c requirements/base.txt # -r requirements/base.txt # tablib -xmlsec==1.3.12 +xmlsec==1.3.16 # via # -c requirements/base.txt # -r requirements/base.txt diff --git a/requirements/dev.txt b/requirements/dev.txt index 5e6a09885a..6b0e432498 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,5 @@ # This file was autogenerated by uv via the following command: -# uv pip compile --no-strip-extras --python 3.11 --no-emit-index-url --output-file requirements/dev.txt requirements/ci.txt requirements/dev.in +# uv pip compile --no-strip-extras --python 3.12 --no-emit-index-url --output-file requirements/dev.txt requirements/ci.txt requirements/dev.in alabaster==0.7.16 # via # -c requirements/ci.txt @@ -35,11 +35,6 @@ asn1crypto==1.5.1 # -c requirements/ci.txt # -r requirements/ci.txt # webauthn -async-timeout==4.0.3 - # via - # -c requirements/ci.txt - # -r requirements/ci.txt - # redis attrs==21.2.0 # via # -c requirements/ci.txt @@ -118,6 +113,7 @@ charset-normalizer==2.0.6 # via # -c requirements/ci.txt # -r requirements/ci.txt + # reportlab # requests click==8.1.3 # via @@ -434,7 +430,7 @@ django-polymorphic==3.0.0 # -c requirements/ci.txt # -r requirements/ci.txt # django-filer -django-privates==1.5.0 +django-privates==3.1.1 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -457,7 +453,7 @@ django-sekizai==4.0.0 # -c requirements/ci.txt # -r requirements/ci.txt # django-cms -django-sendfile2==0.7.0 +django-sendfile2==0.7.2 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -763,7 +759,7 @@ kombu==5.5.4 # celery locust==2.20.0 # via -r requirements/dev.in -lxml==4.9.1 +lxml==6.0.0 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -1055,7 +1051,7 @@ redis==5.0.3 # -r requirements/ci.txt # celery-once # django-redis -reportlab==3.6.13 +reportlab==4.4.2 # via # -c requirements/ci.txt # -r requirements/ci.txt @@ -1328,7 +1324,7 @@ xlwt==1.3.0 # -c requirements/ci.txt # -r requirements/ci.txt # tablib -xmlsec==1.3.12 +xmlsec==1.3.16 # via # -c requirements/ci.txt # -r requirements/ci.txt diff --git a/ruff.toml b/ruff.toml index 948afdf037..3e35307afb 100644 --- a/ruff.toml +++ b/ruff.toml @@ -43,8 +43,8 @@ exclude = [ line-length = 88 indent-width = 4 -# Assume Python 3.11 -target-version = "py311" +# Assume Python 3.12 +target-version = "py312" [lint] select = [