diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index bedcc51..38b33b4 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -25,6 +25,7 @@ jobs:
- '3.12'
- '3.13'
- '3.14'
+ - '3.15'
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 773b90c..4a3f473 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -2,6 +2,11 @@
Changelog
=========
+Unreleased
+----------
+
+* Support Python 3.15.
+
* Switch package build backend from setuptools to `uv_build `__.
This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process.
Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.
diff --git a/README.rst b/README.rst
index 9586fce..9ef9037 100644
--- a/README.rst
+++ b/README.rst
@@ -27,7 +27,7 @@ Check out my book `Boost Your Django DX
Requirements
============
-Python 3.10 to 3.14 supported.
+Python 3.10 to 3.15 supported.
Installation
============
diff --git a/pyproject.toml b/pyproject.toml
index 890489a..6bedaa2 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -33,6 +33,7 @@ classifiers = [
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
+ "Programming Language :: Python :: 3.15",
"Typing :: Typed",
]
dependencies = [
@@ -86,7 +87,7 @@ lint.extend-safe-fixes = [
lint.isort.required-imports = [ "from __future__ import annotations" ]
[tool.pyproject-fmt]
-max_supported_python = "3.14"
+max_supported_python = "3.15"
[tool.mypy]
mypy_path = "src/"
diff --git a/tox.ini b/tox.ini
index e67e726..7b82996 100644
--- a/tox.ini
+++ b/tox.ini
@@ -2,7 +2,7 @@
requires =
tox>=4.2
env_list =
- py{314, 313, 312, 311, 310}
+ py{315, 314, 313, 312, 311, 310}
[testenv]
runner = uv-venv-lock-runner