diff --git a/.circleci/config.yml b/.circleci/config.yml index 9fa60607fe..5bba79b618 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ version: 2 jobs: backend: docker: - - image: cimg/python:3.8.11 + - image: cimg/python:3.12 environment: PIPENV_VENV_IN_PROJECT: true steps: @@ -62,7 +62,7 @@ jobs: ui_tests: docker: - - image: cimg/python:3.8.11-browsers + - image: cimg/python:3.12-browsers environment: PIPENV_VENV_IN_PROJECT: true DJANGO_SETTINGS_MODULE: wagtail.test.settings_ui @@ -118,7 +118,7 @@ jobs: nightly-build: docker: - - image: cimg/python:3.8.11-node + - image: cimg/python:3.12-node steps: - checkout - run: pip install --user wheel boto3 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b702185b60..3e6e6a44bf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,7 +20,7 @@ concurrency: # - test runs with USE_EMAIL_USER_MODEL=yes and DISABLE_TIMEZONE=yes # Current configuration: -# - django 4.2, python 3.8, postgres:12, parallel +# - django 4.2, python 3.9, postgres:12, parallel # - django 4.2, python 3.9, mysql:8.0 # - django 4.2, python 3.10, sqlite # - django 5.0, python 3.12, mysql:8.1, parallel @@ -28,7 +28,7 @@ concurrency: # - django 5.0, python 3.12, postgres:15, parallel, DISABLE_TIMEZONE=yes # - django stable/5.1.x, python 3.11, postgres:15 (allow failures) # - django main, python 3.12, postgres:latest, parallel (allow failures) -# - elasticsearch 7, django 4.2, python 3.8, postgres:latest +# - elasticsearch 7, django 4.2, python 3.9, postgres:latest # - opensearch 2, django 4.2, python 3.9, sqlite # - elasticsearch 8, django 5.0, python 3.11, sqlite, USE_EMAIL_USER_MODEL=yes @@ -80,7 +80,7 @@ jobs: strategy: matrix: include: - - python: '3.8' + - python: '3.9' django: 'Django>=4.2,<4.3' experimental: false parallel: '--parallel' @@ -249,7 +249,7 @@ jobs: strategy: matrix: include: - - python: '3.8' + - python: '3.9' django: 'Django>=4.2,<4.3' experimental: false diff --git a/README.md b/README.md index cbcf322f98..e3b2f3b147 100644 --- a/README.md +++ b/README.md @@ -92,10 +92,10 @@ _(If you are reading this on GitHub, the details here may not be indicative of t Wagtail supports: - Django 4.2.x and 5.0.x -- Python 3.8, 3.9, 3.10, 3.11 and 3.12 +- Python 3.9, 3.10, 3.11 and 3.12 - PostgreSQL, MySQL and SQLite (with JSON1) as database backends -[Previous versions of Wagtail](https://docs.wagtail.org/en/stable/releases/upgrading.html#compatible-django-python-versions) additionally supported Python 2.7, 3.7 and earlier Django versions. +[Previous versions of Wagtail](https://docs.wagtail.org/en/stable/releases/upgrading.html#compatible-django-python-versions) additionally supported Python 2.7, 3.8 and earlier Django versions. --- diff --git a/docs/getting_started/tutorial.md b/docs/getting_started/tutorial.md index 1bcf23412e..e9a38bcce1 100644 --- a/docs/getting_started/tutorial.md +++ b/docs/getting_started/tutorial.md @@ -24,7 +24,7 @@ python3 --version py --version ``` -If none of the preceding commands return a version number, or return a version lower than 3.8, then [install Python 3](https://www.python.org/downloads/). +If none of the preceding commands return a version number, or return a version lower than 3.9, then [install Python 3](https://www.python.org/downloads/). (virtual_environment_creation)= diff --git a/docs/releases/6.3.md b/docs/releases/6.3.md index 77103f762d..bfc44dcb41 100644 --- a/docs/releases/6.3.md +++ b/docs/releases/6.3.md @@ -32,6 +32,10 @@ depth: 1 ## Upgrade considerations - deprecation of old functionality +### Removed support for Python 3.8 + +Python 3.8 is no longer supported as of this release; please upgrade to Python 3.9 or above before upgrading Wagtail. + ## Upgrade considerations - changes affecting Wagtail customisations ## Upgrade considerations - changes to undocumented internals diff --git a/docs/releases/upgrading.md b/docs/releases/upgrading.md index c186e41aee..ad8c923cc8 100644 --- a/docs/releases/upgrading.md +++ b/docs/releases/upgrading.md @@ -59,7 +59,7 @@ The compatible versions of Django and Python for each Wagtail release are: | Wagtail release | Compatible Django versions | Compatible Python versions | | --------------- | -------------------------- | -------------------------- | -| 6.3 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 | +| 6.3 | 4.2, 5.0 | 3.9, 3.10, 3.11, 3.12 | | 6.2 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 | | 6.1 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 | | 6.0 | 4.2, 5.0 | 3.8, 3.9, 3.10, 3.11, 3.12 | diff --git a/setup.py b/setup.py index 8ead614ecf..7cc01246a3 100755 --- a/setup.py +++ b/setup.py @@ -108,7 +108,6 @@ https://github.com/wagtail/wagtail/.", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -119,7 +118,7 @@ https://github.com/wagtail/wagtail/.", "Framework :: Wagtail", "Topic :: Internet :: WWW/HTTP :: Site Management", ], - python_requires=">=3.8", + python_requires=">=3.9", install_requires=install_requires, extras_require={"testing": testing_extras, "docs": documentation_extras}, entry_points=""" diff --git a/tox.ini b/tox.ini index d13ff719b5..bb276aa83c 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,7 @@ skipsdist = True usedevelop = True -envlist = py{38,39,310,311,312}-dj{42,50,50stable,main}-{sqlite,postgres,mysql,mssql}-{elasticsearch8,elasticsearch7,noelasticsearch}-{customuser,emailuser}-{tz,notz}, +envlist = py{39,310,311,312}-dj{42,50,50stable,main}-{sqlite,postgres,mysql,mssql}-{elasticsearch8,elasticsearch7,noelasticsearch}-{customuser,emailuser}-{tz,notz}, [testenv] install_command = pip install -e ".[testing]" -U {opts} {packages} @@ -12,7 +12,6 @@ commands = noelasticsearch: coverage run runtests.py {posargs} basepython = - py38: python3.8 py39: python3.9 py310: python3.10 py311: python3.11 diff --git a/wagtail/project_template/Dockerfile b/wagtail/project_template/Dockerfile index 6cb4148df4..97dd7dfc3d 100644 --- a/wagtail/project_template/Dockerfile +++ b/wagtail/project_template/Dockerfile @@ -1,5 +1,5 @@ -# Use an official Python runtime based on Debian 10 "buster" as a parent image. -FROM python:3.8.1-slim-buster +# Use an official Python runtime based on Debian 12 "bookworm" as a parent image. +FROM python:3.12-slim-bookworm # Add user that will be used in the container. RUN useradd wagtail