Skip to content

Commit 53a315e

Browse files
MaxGhenisclaude
andauthored
Add Python 3.14 support, bump deps, upgrade GitHub Actions (#171)
* Add Python 3.14 support, make it the default CI version Bump requires-python upper bound from <3.14 to <3.15 and update CI matrix to test on 3.12 (smoke) + 3.14 (full). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Add Python 3.14 support, bump deps, upgrade GitHub Actions - Bump requires-python from <3.14 to <3.15 - Update CI matrix: 3.12 (smoke) + 3.14 (full) across all workflows - Widen dependency upper bounds: - pandas: <3.0.0 → <4.0.0 - plotly: <6.0.0 → <7.0.0 - scipy: <1.17.0 → <2.0.0 - pytest: <9.0.0 → <10.0.0 - pytest-cov: <7.0.0 → <8.0.0 - Upgrade GitHub Actions: - checkout v3 → v4 - setup-python v4 → v5 - codecov-action v3 → v5 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 1c68cd7 commit 53a315e

5 files changed

Lines changed: 31 additions & 30 deletions

File tree

.github/workflows/pr_code_changes.yaml

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ jobs:
77
Lint:
88
runs-on: ubuntu-latest
99
steps:
10-
- uses: actions/checkout@v3
10+
- uses: actions/checkout@v4
1111
- name: Set up Python
12-
uses: actions/setup-python@v4
12+
uses: actions/setup-python@v5
1313
with:
14-
python-version: "3.13"
14+
python-version: "3.14"
1515
- name: Install uv
1616
uses: astral-sh/setup-uv@v5
1717
- name: Install relevant dependencies
@@ -25,7 +25,7 @@ jobs:
2525
outputs:
2626
mdn_changed: ${{ steps.check.outputs.mdn_changed }}
2727
steps:
28-
- uses: actions/checkout@v3
28+
- uses: actions/checkout@v4
2929
with:
3030
fetch-depth: 0
3131
- name: Check for MDN-related file changes
@@ -50,63 +50,63 @@ jobs:
5050
strategy:
5151
matrix:
5252
os: [ ubuntu-latest ]
53-
python-version: ["3.12", "3.13"]
53+
python-version: ["3.12", "3.14"]
5454
fail-fast: false
5555
runs-on: ${{ matrix.os }}
5656
steps:
5757
- name: Checkout repo
58-
uses: actions/checkout@v3
58+
uses: actions/checkout@v4
5959
- name: Install uv
6060
uses: astral-sh/setup-uv@v5
6161
- name: Set up Python ${{ matrix.python-version }}
62-
uses: actions/setup-python@v4
62+
uses: actions/setup-python@v5
6363
with:
6464
python-version: ${{ matrix.python-version }}
6565
- name: Install slim version
6666
run: |
6767
uv pip install -e "." --system
68-
- name: Install R and dependencies (Python 3.13 only)
69-
if: matrix.python-version == '3.13'
68+
- name: Install R and dependencies (Python 3.14 only)
69+
if: matrix.python-version == '3.14'
7070
run: |
7171
sudo apt-get update
7272
sudo apt-get install -y r-base r-base-dev libtirpc-dev
73-
- name: Install R packages (Python 3.13 only)
74-
if: matrix.python-version == '3.13'
73+
- name: Install R packages (Python 3.14 only)
74+
if: matrix.python-version == '3.14'
7575
run: |
7676
sudo Rscript -e 'install.packages("StatMatch", repos="https://cloud.r-project.org")'
7777
sudo Rscript -e 'install.packages("clue", repos="https://cloud.r-project.org")'
78-
- name: Install full test dependencies without MDN (Python 3.13)
79-
if: matrix.python-version == '3.13' && needs.Check-MDN-Changes.outputs.mdn_changed != 'true'
78+
- name: Install full test dependencies without MDN (Python 3.14)
79+
if: matrix.python-version == '3.14' && needs.Check-MDN-Changes.outputs.mdn_changed != 'true'
8080
run: |
8181
uv pip install -e ".[dev,matching]" --system
82-
- name: Install full test dependencies with MDN (Python 3.13)
83-
if: matrix.python-version == '3.13' && needs.Check-MDN-Changes.outputs.mdn_changed == 'true'
82+
- name: Install full test dependencies with MDN (Python 3.14)
83+
if: matrix.python-version == '3.14' && needs.Check-MDN-Changes.outputs.mdn_changed == 'true'
8484
run: |
8585
uv pip install -e ".[dev,matching,mdn]" --system
8686
- name: Install minimal test dependencies (Python 3.12)
8787
if: matrix.python-version == '3.12'
8888
run: |
8989
uv pip install -e ".[dev]" --system
90-
- name: Run full tests with coverage (Python 3.13)
91-
if: matrix.python-version == '3.13'
90+
- name: Run full tests with coverage (Python 3.14)
91+
if: matrix.python-version == '3.14'
9292
run: make test
9393
- name: Run smoke test only (Python 3.12)
9494
if: matrix.python-version == '3.12'
9595
run: |
9696
python -m pytest tests/test_smoke_qrf.py -v
9797
python -m pytest tests/test_basic.py -v
9898
- name: Run pipeline example
99-
if: matrix.python-version == '3.13'
99+
if: matrix.python-version == '3.14'
100100
run: |
101101
python examples/pipeline.py
102102
- name: Upload microimputation results
103-
if: always() && matrix.python-version == '3.13'
103+
if: always() && matrix.python-version == '3.14'
104104
uses: actions/upload-artifact@v4
105105
with:
106106
name: microimputation-results-${{ github.sha }}
107107
path: microimputation-dashboard/public/microimputation_results.csv
108108
- name: Upload coverage to Codecov
109-
uses: codecov/codecov-action@v3
109+
uses: codecov/codecov-action@v5
110110
with:
111111
file: ./coverage.xml
112112
fail_ci_if_error: false

.github/workflows/pr_docs_changes.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- name: Set up Python
2525
uses: actions/setup-python@v5
2626
with:
27-
python-version: '3.13'
27+
python-version: '3.14'
2828

2929
- name: Install R and dependencies
3030
run: |

.github/workflows/versioning.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- name: Setup Python
2525
uses: actions/setup-python@v5
2626
with:
27-
python-version: 3.13
27+
python-version: 3.14
2828
- name: Bump version and build changelog
2929
run: |
3030
pip install towncrier
@@ -41,7 +41,7 @@ jobs:
4141
runs-on: ubuntu-latest
4242
strategy:
4343
matrix:
44-
python-version: ["3.13"]
44+
python-version: ["3.14"]
4545
steps:
4646
- name: Checkout code
4747
uses: actions/checkout@v4

changelog.d/python-3.14.changed.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Added Python 3.14 support, bumped dependency upper bounds (pandas, plotly, scipy, pytest, pytest-cov), and upgraded GitHub Actions versions.

pyproject.toml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ authors = [
1414
{ name = "María Juaristi", email = "juaristi@uni.minerva.edu" },
1515
{ name = "Nikhil Woodruff", email = "nikhil.woodruff@outlook.com" }
1616
]
17-
requires-python = ">=3.12,<3.14"
17+
requires-python = ">=3.12,<3.15"
1818
dependencies = [
1919
"numpy>=2.0.0,<3.0.0",
20-
"pandas>=2.2.0,<3.0.0",
21-
"plotly>=5.24.0,<6.0.0",
20+
"pandas>=2.2.0,<4.0.0",
21+
"plotly>=5.24.0,<7.0.0",
2222
"scikit-learn>=1.7.0,<2.0.0",
23-
"scipy>=1.16.0,<1.17.0",
23+
"scipy>=1.16.0,<2.0.0",
2424
"requests>=2.32.0,<3.0.0",
2525
"tqdm>=4.65.0,<5.0.0",
2626
"statsmodels>=0.14.5,<0.16.0",
@@ -33,8 +33,8 @@ dependencies = [
3333

3434
[project.optional-dependencies]
3535
dev = [
36-
"pytest>=8.0.0,<9.0.0",
37-
"pytest-cov>=6.0.0,<7.0.0",
36+
"pytest>=8.0.0,<10.0.0",
37+
"pytest-cov>=6.0.0,<8.0.0",
3838
"ruff>=0.9.0",
3939
"mypy>=1.2.3,<2.0.0",
4040
"build>=1.2.0,<2.0.0",
@@ -54,7 +54,7 @@ docs = [
5454
"jupyter-book",
5555
"furo>=2024.0.0", # Sphinx theme for documentation
5656
"ipywidgets>=8.0.0,<9.0.0",
57-
"plotly>=5.24.0,<6.0.0",
57+
"plotly>=5.24.0,<7.0.0",
5858
"h5py>=3.1.0,<4.0.0",
5959
]
6060

0 commit comments

Comments
 (0)