Skip to content

Commit 756b460

Browse files
authored
Merge pull request #247 from romgar/drop_python_39
Drop python 3.9 / Add python 3.14
2 parents 42512f1 + b5c374b commit 756b460

File tree

7 files changed

+40
-68
lines changed

7 files changed

+40
-68
lines changed

.github/workflows/linting.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
- name: Set up Python
2222
uses: actions/setup-python@v5
2323
with:
24-
python-version: 3.9
24+
python-version: '3.10'
2525

2626
- name: Install flake8
2727
run: |
@@ -42,7 +42,7 @@ jobs:
4242
- name: Set up Python
4343
uses: actions/setup-python@v5
4444
with:
45-
python-version: 3.9
45+
python-version: '3.10'
4646

4747
- name: Install bandit
4848
run: |

.github/workflows/publish-to-pypi.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
strategy:
1818
# Matrix to exercise the build backend on all versions of python supported
1919
matrix:
20-
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
20+
python: ['3.10', '3.11', '3.12', '3.13', '3.14']
2121
steps:
2222
- uses: actions/checkout@v4
2323

.github/workflows/tests.yml

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,54 +15,20 @@ jobs:
1515
runs-on: ubuntu-latest
1616
strategy:
1717
matrix:
18-
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
19-
django: ['2.2', '3.0', '3.1', '3.2', '4.0', '4.1', '4.2', '5.0', '5.1', '5.2']
18+
python: ['3.10', '3.11', '3.12', '3.13', '3.14']
19+
django: ['3.2', '4.0', '4.1', '4.2', '5.0', '5.1', '5.2']
2020
database: ['postgres', 'sqlite']
2121
exclude:
22-
- python: '3.9'
23-
django: '5.0'
24-
- python: '3.9'
25-
django: '5.1'
26-
- python: '3.9'
27-
django: '5.2'
28-
- python: '3.10'
29-
django: '2.2'
30-
- python: '3.10'
31-
django: '3.0'
32-
- python: '3.10'
33-
django: '3.1'
34-
- python: '3.11'
35-
django: '2.0'
36-
- python: '3.11'
37-
django: '2.1'
38-
- python: '3.11'
39-
django: '2.2'
40-
- python: '3.11'
41-
django: '3.0'
42-
- python: '3.11'
43-
django: '3.1'
4422
- python: '3.11'
4523
django: '3.2'
4624
- python: '3.11'
4725
django: '4.0'
48-
- python: '3.12'
49-
django: '2.2'
50-
- python: '3.12'
51-
django: '3.0'
52-
- python: '3.12'
53-
django: '3.1'
5426
- python: '3.12'
5527
django: '3.2'
5628
- python: '3.12'
5729
django: '4.0'
5830
- python: '3.12'
5931
django: '4.1'
60-
- python: '3.13'
61-
django: '2.2'
62-
- python: '3.13'
63-
django: '3.0'
64-
- python: '3.13'
65-
django: '3.1'
6632
- python: '3.13'
6733
django: '3.2'
6834
- python: '3.13'
@@ -73,6 +39,18 @@ jobs:
7339
django: '4.2'
7440
- python: '3.13'
7541
django: '5.0'
42+
- python: '3.14'
43+
django: '3.2'
44+
- python: '3.14'
45+
django: '4.0'
46+
- python: '3.14'
47+
django: '4.1'
48+
- python: '3.14'
49+
django: '4.2'
50+
- python: '3.14'
51+
django: '5.0'
52+
- python: '3.14'
53+
django: '5.1'
7654

7755
services:
7856
# as far as I can see, no way to make this conditional on the matrix database
@@ -112,11 +90,11 @@ jobs:
11290
run: coverage report
11391

11492
- name: Create XML coverage report for coveralls.io
115-
if: ${{ matrix.django == '4.2' && matrix.python == '3.10' && matrix.database == 'postgres' }}
93+
if: ${{ matrix.django == '5.2' && matrix.python == '3.12' && matrix.database == 'postgres' }}
11694
run: coverage xml
11795

11896
- name: Upload coverage report to coveralls.io
119-
if: ${{ matrix.django == '4.2' && matrix.python == '3.10' && matrix.database == 'postgres' }}
97+
if: ${{ matrix.django == '5.2' && matrix.python == '3.12' && matrix.database == 'postgres' }}
12098
uses: coverallsapp/github-action@v2
12199
with:
122100
file: coverage.xml

ChangeLog.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ unreleased
77
----------
88

99
*New:*
10+
- Confirm support for Python 3.14
1011
- Confirm support for Django 5.2
12+
- Drop support for Python 3.9
13+
- Drop support for Django 2.2
14+
- Drop support for Django 3.0
15+
- Drop support for Django 3.1
1116

1217
1.9.7 (2025-03-22)
1318
------------------

README.rst

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,15 @@ This package is compatible and tested with the following Python & Django version
2727
+------------------------+-----------------------------------+
2828
| Django | Python |
2929
+========================+===================================+
30-
| 2.2, 3.0, 3.1 | 3.9 |
30+
| 3.2, 4.0 | 3.10 |
3131
+------------------------+-----------------------------------+
32-
| 3.2, 4.0 | 3.9, 3.10 |
32+
| 4.1 | 3.10, 3.11 |
3333
+------------------------+-----------------------------------+
34-
| 4.1 | 3.9, 3.10, 3.11 |
35-
+------------------------+-----------------------------------+
36-
| 4.2 | 3.9, 3.10, 3.11, 3.12 |
37-
+------------------------+-----------------------------------+
38-
| 5.0 | 3.10, 3.11, 3.12 |
34+
| 4.2, 5.0 | 3.10, 3.11, 3.12 |
3935
+------------------------+-----------------------------------+
4036
| 5.1 | 3.10, 3.11, 3.12, 3.13 |
4137
+------------------------+-----------------------------------+
42-
| 5.2 | 3.10, 3.11, 3.12, 3.13 |
38+
| 5.2 | 3.10, 3.11, 3.12, 3.13, 3.14 |
4339
+------------------------+-----------------------------------+
4440

4541

pyproject.toml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[build-system]
2-
requires = ["setuptools ~= 75.0"]
2+
requires = ["setuptools >= 80.9.0, < 81"]
33
build-backend = "setuptools.build_meta"
44

55
[project]
@@ -8,32 +8,29 @@ dynamic = ["version"]
88
description = "Tracking dirty fields on a Django model instance."
99
keywords = ["django", "dirtyfields", "track", "model", "changes"]
1010
readme = {file = "README.rst", content-type = "text/x-rst"}
11-
license = {file = "LICENSE"}
11+
license = "BSD-3-Clause"
12+
license-files = ["LICENSE"]
1213
authors = [{name = "Romain Garrigues"}]
1314
maintainers = [{name = "Lincoln Puzey"}]
14-
requires-python = ">=3.9"
15+
requires-python = ">=3.10"
1516
dependencies = [
16-
"Django>=2.2",
17+
"Django>=3.2",
1718
]
1819
classifiers = [
1920
"Development Status :: 5 - Production/Stable",
2021
"Intended Audience :: Developers",
2122
"Topic :: Software Development :: Libraries :: Python Modules",
22-
"License :: OSI Approved :: BSD License",
2323
"Natural Language :: English",
2424
"Operating System :: OS Independent",
2525
"Programming Language :: Python",
2626
"Programming Language :: Python :: 3",
2727
"Programming Language :: Python :: 3 :: Only",
28-
"Programming Language :: Python :: 3.9",
2928
"Programming Language :: Python :: 3.10",
3029
"Programming Language :: Python :: 3.11",
3130
"Programming Language :: Python :: 3.12",
3231
"Programming Language :: Python :: 3.13",
32+
"Programming Language :: Python :: 3.14",
3333
"Framework :: Django",
34-
"Framework :: Django :: 2.2",
35-
"Framework :: Django :: 3.0",
36-
"Framework :: Django :: 3.1",
3734
"Framework :: Django :: 3.2",
3835
"Framework :: Django :: 4.0",
3936
"Framework :: Django :: 4.1",

tox.ini

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
11
; tox is just used for testing the python/django matrix locally
22
[tox]
33
envlist =
4-
py{39}-django{22,30,31}-{postgresql,sqlite}
5-
py{39,310}-django{32,40}-{postgresql,sqlite}
6-
py{39,310,311}-django{41}-{postgresql,sqlite}
7-
py{39,310,311,312}-django{42}-{postgresql,sqlite}
4+
py{310}-django{32,40}-{postgresql,sqlite}
5+
py{310,311}-django{41}-{postgresql,sqlite}
6+
py{310,311,312}-django{42}-{postgresql,sqlite}
87
py{310,311,312}-django{50}-{postgresql,sqlite}
98
py{310,311,312,313}-django{51}-{postgresql,sqlite}
10-
py{310,311,312,313}-django{52}-{postgresql,sqlite}
11-
py{39,310,311,312}-flake8
9+
py{310,311,312,313,314}-django{52}-{postgresql,sqlite}
10+
py{310,311,312,313}-flake8
1211

1312
[testenv]
1413
passenv =
1514
postgresql: POSTGRES_USER POSTGRES_PASSWORD
1615
setenv =
1716
PYTHONPATH = {toxinidir}
1817
deps =
19-
django22: Django>=2.2,<2.3
20-
django30: Django>=3.0,<3.1
21-
django31: Django>=3.1,<3.2
2218
django32: Django>=3.2,<3.3
2319
django40: Django>=4.0,<4.1
2420
django41: Django>=4.1,<4.2
@@ -34,7 +30,7 @@ commands =
3430
coverage run -m pytest -v
3531
coverage report
3632

37-
[testenv:py{39,310,311,312}-flake8]
33+
[testenv:py{310,311,312,313}-flake8]
3834
skip_install = True
3935
dependency_groups =
4036
lint

0 commit comments

Comments
 (0)