Skip to content

Commit 1d8f453

Browse files
committed
Drop Python 3.9 support, update to Python 3.10-3.13
- Update pyproject.toml requires-python to >=3.10 - Remove Python 3.9 classifier from pyproject.toml - Simplify numba dependency to single version without Python constraints - Update wheel building to use Python 3.10-3.13 - Update GitHub Actions tests to use Python 3.10 and 3.13 - Update docker shared.env to exclude cp39-cp39
1 parent 9821725 commit 1d8f453

File tree

5 files changed

+12
-15
lines changed

5 files changed

+12
-15
lines changed

.github/workflows/docker/shared.env

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@ PYTHON_VERSIONS=(
33
cp312-cp312
44
cp311-cp311
55
cp310-cp310
6-
cp39-cp39
76
)

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
strategy:
1818
fail-fast: false
1919
matrix:
20-
python: [ 3.9, 3.13 ]
20+
python: [ "3.10", 3.13 ]
2121
os: [ macos-latest, ubuntu-24.04, windows-latest ]
2222
defaults:
2323
run:

.github/workflows/wheels.yml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: macos-latest
1616
strategy:
1717
matrix:
18-
python: [3.9, "3.10", 3.11, 3.12, 3.13]
18+
python: ["3.10", 3.11, 3.12, 3.13]
1919
steps:
2020
- name: Checkout
2121
uses: actions/[email protected]
@@ -45,7 +45,7 @@ jobs:
4545
runs-on: windows-latest
4646
strategy:
4747
matrix:
48-
python: [3.9, "3.10", 3.11, 3.12, 3.13]
48+
python: ["3.10", 3.11, 3.12, 3.13]
4949
wordsize: [64]
5050
steps:
5151
- name: Checkout
@@ -85,10 +85,10 @@ jobs:
8585
- name: Checkout
8686
uses: actions/[email protected]
8787

88-
- name: Set up Python 3.9
88+
- name: Set up Python 3.10
8989
uses: actions/[email protected]
9090
with:
91-
python-version: 3.9
91+
python-version: "3.10"
9292

9393
- name: Build sdist
9494
shell: bash
@@ -118,7 +118,7 @@ jobs:
118118
needs: ['OSX']
119119
strategy:
120120
matrix:
121-
python: [3.9, "3.10", 3.11, 3.12, 3.13]
121+
python: ["3.10", 3.11, 3.12, 3.13]
122122
runner: [macos-13, macos-15]
123123
include:
124124
- runner: macos-13
@@ -155,7 +155,7 @@ jobs:
155155
runs-on: windows-latest
156156
strategy:
157157
matrix:
158-
python: [3.9, "3.10", 3.11, 3.12, 3.13]
158+
python: ["3.10", 3.11, 3.12, 3.13]
159159
wordsize: [64]
160160
steps:
161161
- name: Download wheels
@@ -179,10 +179,8 @@ jobs:
179179
needs: ['manylinux']
180180
strategy:
181181
matrix:
182-
python: [3.9, "3.10", 3.11, 3.12, 3.13]
182+
python: ["3.10", 3.11, 3.12, 3.13]
183183
include:
184-
- python: 3.9
185-
wheel: cp39
186184
- python: "3.10"
187185
wheel: cp310
188186
- python: 3.11

python/CHANGELOG.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
is not the case.
1111
(:user:`benjeffery`, :issue:`2729`, :issue:`2732`, :pr:`3212`).
1212

13+
- Drop Python 3.9 support, require Python >= 3.10 (:pr:`3267`, :user:`benjeffery`)
14+
1315

1416
**Features**
1517

python/pyproject.toml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ classifiers = [
1515
"Programming Language :: C",
1616
"Programming Language :: Python",
1717
"Programming Language :: Python :: 3",
18-
"Programming Language :: Python :: 3.9",
1918
"Programming Language :: Python :: 3.10",
2019
"Programming Language :: Python :: 3.11",
2120
"Programming Language :: Python :: 3.12",
@@ -40,7 +39,7 @@ keywords = [
4039
"phylogenetics",
4140
"tskit",
4241
]
43-
requires-python = ">=3.9"
42+
requires-python = ">=3.10"
4443
dependencies = [
4544
"jsonschema>=3.0.0",
4645
"numpy>=2",
@@ -72,8 +71,7 @@ test = [
7271
"msgpack==1.1.0",
7372
"msprime==1.3.4",
7473
"networkx==3.2.1",
75-
"numba==0.61.2; python_version>='3.10'",
76-
"numba==0.60.0; python_version=='3.9'",
74+
"numba==0.61.2",
7775
"portion==2.6.0",
7876
"pytest==8.3.5",
7977
"pytest-cov==6.0.0",

0 commit comments

Comments
 (0)