Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'docs/requirements.txt'
- run: python -m pip install -r docs/requirements.txt
Expand All @@ -47,7 +47,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
- run: python -m pip install blacken-docs
- name: Build docs
run: |
Expand All @@ -68,7 +68,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
- run: python -m pip install sphinx-lint
- name: Build docs
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/linters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
- run: python -m pip install flake8
- name: flake8
# Pinned to v3.0.0.
Expand All @@ -44,7 +44,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
- run: python -m pip install isort
- name: isort
# Pinned to v3.0.0.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/postgis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Update apt repo
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/schedule_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
python-version:
- '3.12'
- '3.13'
- '3.14-dev'
- '3.14'
name: Windows, SQLite, Python ${{ matrix.python-version }}
continue-on-error: true
steps:
Expand All @@ -45,7 +45,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
cache: 'pip'
- name: Install libmemcached-dev for pylibmc
run: sudo apt-get install libmemcached-dev
Expand Down Expand Up @@ -86,7 +86,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc
Expand Down Expand Up @@ -122,7 +122,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc
Expand Down Expand Up @@ -167,7 +167,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/screenshots.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install and upgrade packaging tools
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/selenium.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc
Expand Down Expand Up @@ -61,7 +61,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: '3.14'
cache: 'pip'
cache-dependency-path: 'tests/requirements/py3.txt'
- name: Install libmemcached-dev for pylibmc
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
strategy:
matrix:
python-version:
- '3.13'
- '3.14'
name: Windows, SQLite, Python ${{ matrix.python-version }}
steps:
- name: Checkout
Expand Down
4 changes: 2 additions & 2 deletions docs/faq/install.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ Django version Python versions
4.2 3.8, 3.9, 3.10, 3.11, 3.12 (added in 4.2.8)
5.0 3.10, 3.11, 3.12
5.1 3.10, 3.11, 3.12, 3.13 (added in 5.1.3)
5.2 3.10, 3.11, 3.12, 3.13
6.0 3.12, 3.13
5.2 3.10, 3.11, 3.12, 3.13, 3.14 (added in 5.2.8)
6.0 3.12, 3.13, 3.14
6.1 3.12, 3.13, 3.14
============== ===============

Expand Down
4 changes: 2 additions & 2 deletions docs/howto/windows.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
How to install Django on Windows
================================

This document will guide you through installing Python 3.13 and Django on
This document will guide you through installing Python 3.14 and Django on
Windows. It also provides instructions for setting up a virtual environment,
which makes it easier to work on Python projects. This is meant as a beginner's
guide for users working on Django projects and does not reflect how Django
Expand All @@ -18,7 +18,7 @@ Install Python
==============

Django is a Python web framework, thus requiring Python to be installed on your
machine. At the time of writing, Python 3.13 is the latest version.
machine. At the time of writing, Python 3.14 is the latest version.

To install Python on your machine go to https://www.python.org/downloads/. The
website should offer you a download button for the latest Python version.
Expand Down
1 change: 1 addition & 0 deletions docs/intro/reusable-apps.txt
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ this. For a small app like polls, this process isn't too difficult.
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
]
Expand Down
4 changes: 2 additions & 2 deletions docs/ref/models/expressions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,8 @@ Slicing ``F()`` expressions

For string-based fields, text-based fields, and
:class:`~django.contrib.postgres.fields.ArrayField`, you can use Python's
array-slicing syntax. The indices are 0-based and the ``step`` argument to
``slice`` is not supported. For example:
array-slicing syntax. The indices are 0-based. The ``step`` argument to
``slice`` and negative indexing are not supported. For example:

.. code-block:: pycon

Expand Down
3 changes: 2 additions & 1 deletion docs/releases/5.2.8.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ Django 5.2.8 release notes

*Expected November 5, 2025*

Django 5.2.8 fixes several bugs in 5.2.7.
Django 5.2.8 fixes several bugs in 5.2.7 and adds compatibility with Python
3.14.

Bugfixes
========
Expand Down
5 changes: 3 additions & 2 deletions docs/releases/5.2.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@ end in April 2026.
Python compatibility
====================

Django 5.2 supports Python 3.10, 3.11, 3.12, and 3.13. We **highly recommend**
and only officially support the latest release of each series.
Django 5.2 supports Python 3.10, 3.11, 3.12, 3.13, and 3.14 (as of 5.2.8). We
**highly recommend** and only officially support the latest release of each
series.

.. _whats-new-5.2:

Expand Down
4 changes: 2 additions & 2 deletions docs/releases/6.0.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ project.
Python compatibility
====================

Django 6.0 supports Python 3.12 and 3.13. We **highly recommend**, and only
officially support, the latest release of each series.
Django 6.0 supports Python 3.12, 3.13, and 3.14. We **highly recommend**, and
only officially support, the latest release of each series.

The Django 5.2.x series is the last to support Python 3.10 and 3.11.

Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Internet :: WWW/HTTP",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Internet :: WWW/HTTP :: WSGI",
Expand Down
5 changes: 1 addition & 4 deletions tests/gis_tests/geos_tests/test_io.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,7 @@ def test01_wktreader(self):
def test02_wktwriter(self):
# Creating a WKTWriter instance, testing its ptr property.
wkt_w = WKTWriter()
msg = (
"Incompatible pointer type: "
"<class 'django.contrib.gis.geos.prototypes.io.LP_WKTReader_st'>."
)
msg = "Incompatible pointer type: "
with self.assertRaisesMessage(TypeError, msg):
wkt_w.ptr = WKTReader.ptr_type()

Expand Down
2 changes: 1 addition & 1 deletion tests/mail/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ def test_nonascii_as_string_with_ascii_charset(self, mock_set_payload):
`surrogateescape`.

Following https://github.com/python/cpython/issues/76511, newer
versions of Python (3.12.3 and 3.13) ensure that a message's
versions of Python (3.12.3 and 3.13+) ensure that a message's
payload is encoded with the provided charset and `surrogateescape` is
used as the error handling strategy.

Expand Down
2 changes: 1 addition & 1 deletion tests/requirements/py3.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ docutils >= 0.19
geoip2 >= 4.8.0
jinja2 >= 2.11.0
numpy >= 1.26.0
Pillow >= 10.1.0; sys.platform != 'win32' or python_version < '3.14'
Pillow >= 10.1.0
# pylibmc/libmemcached can't be built on Windows.
pylibmc; sys_platform != 'win32'
pymemcache >= 3.4.0
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ setenv =
PYTHONDONTWRITEBYTECODE=1
deps =
-e .
py{3,312,313}: -rtests/requirements/py3.txt
py{3,312,313,314}: -rtests/requirements/py3.txt
postgres: -rtests/requirements/postgres.txt
mysql: -rtests/requirements/mysql.txt
oracle: -rtests/requirements/oracle.txt
Expand Down