Skip to content

Commit a53f087

Browse files
nstarmanclaude
andcommitted
🔥 build: drop Python 3.9, add Python 3.14 support
Python 3.9 is end-of-life. Bump the minimum supported version to 3.10 and extend support up to Python 3.14 across packaging metadata, type/lint tooling, and CI. - requires-python: >=3.9 -> >=3.10 - drop the 3.9 trove classifier, add the 3.14 classifier - mypy python_version, ruff target-version, pylint py-version -> 3.10 - CI test matrix: ["3.9", "3.13"] -> ["3.10", "3.14"] Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 370c3ae commit a53f087

4 files changed

Lines changed: 24 additions & 228 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
strategy:
4141
fail-fast: false
4242
matrix:
43-
python-version: ["3.9", "3.13"]
43+
python-version: ["3.10", "3.14"]
4444
runs-on: [ubuntu-latest, macos-latest, windows-latest]
4545

4646
steps:

‎.python-version‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.9
1+
3.10

‎pyproject.toml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ classifiers = [
1414
"Programming Language :: Python :: 3.11",
1515
"Programming Language :: Python :: 3.12",
1616
"Programming Language :: Python :: 3.13",
17-
"Programming Language :: Python :: 3.9",
17+
"Programming Language :: Python :: 3.14",
1818
"Programming Language :: Python",
1919
"Topic :: Scientific/Engineering",
2020
"Typing :: Typed",
@@ -27,7 +27,7 @@ dynamic = ["version"]
2727
license.file = "LICENSE"
2828
name = "optional_dependencies"
2929
readme = "README.md"
30-
requires-python = ">=3.9"
30+
requires-python = ">=3.10"
3131

3232
[project.urls]
3333
"Bug Tracker" = "https://github.com/GalacticDynamics/optional_dependencies/issues"
@@ -100,7 +100,7 @@ skip = ["uv.lock"]
100100
'^conftest\.py$', # nox test configuration
101101
]
102102
files = ["src"]
103-
python_version = "3.9"
103+
python_version = "3.10"
104104
strict = true
105105
warn_unreachable = true
106106
warn_unused_configs = true
@@ -113,7 +113,7 @@ skip = ["uv.lock"]
113113

114114
[tool.ruff]
115115
src = ["src"]
116-
target-version = "py39"
116+
target-version = "py310"
117117

118118
[tool.ruff.lint]
119119
extend-select = ["ALL"]
@@ -151,6 +151,6 @@ skip = ["uv.lock"]
151151
"missing-module-docstring",
152152
"wrong-import-position",
153153
]
154-
py-version = "3.9"
154+
py-version = "3.10"
155155
reports.output-format = "colorized"
156156
similarities.ignore-imports = "yes"

0 commit comments

Comments
 (0)