Skip to content

Commit af72576

Browse files
MaxGhenisclaude
andcommitted
Add Python 3.14 support, drop Python 3.10 and below
- Update classifiers to 3.11-3.14, set python_requires >= 3.11 - Add Python 3.14 to CI test matrix (pr.yaml) - Update all GitHub Actions to latest versions (checkout v4, setup-python v5, codecov v4) - Update push.yaml to use Python 3.14 - Add .python-version for uv default - Fix url in setup.py to point to policyengine-ng (not core) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 2120fdf commit af72576

File tree

5 files changed

+35
-27
lines changed

5 files changed

+35
-27
lines changed

.github/workflows/pr.yaml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
Lint:
77
runs-on: ubuntu-latest
88
steps:
9-
- uses: actions/checkout@v3
9+
- uses: actions/checkout@v4
1010
- name: Check formatting
1111
uses: "lgeiger/black-action@master"
1212
with:
@@ -15,15 +15,15 @@ jobs:
1515
name: Check version
1616
runs-on: ubuntu-latest
1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@v4
1919
with:
2020
fetch-depth: 0
2121
repository: ${{ github.event.pull_request.head.repo.full_name }}
2222
ref: ${{ github.event.pull_request.head.ref }}
2323
- name: Set up Python
24-
uses: actions/setup-python@v4
24+
uses: actions/setup-python@v5
2525
with:
26-
python-version: 3.9
26+
python-version: 3.12
2727
- name: Build changelog
2828
run: pip install yaml-changelog>=0.1.7 && make changelog
2929
- name: Preview changelog update
@@ -35,18 +35,20 @@ jobs:
3535
strategy:
3636
matrix:
3737
os: [ubuntu-latest, windows-latest]
38+
python-version: ["3.11", "3.12", "3.13", "3.14"]
3839
steps:
3940
- name: Checkout repo
40-
uses: actions/checkout@v3
41+
uses: actions/checkout@v4
4142
- name: Set up Python
42-
uses: actions/setup-python@v4
43+
uses: actions/setup-python@v5
4344
with:
44-
python-version: 3.9
45+
python-version: ${{ matrix.python-version }}
46+
allow-prereleases: true
4547
- name: Install package
4648
run: make install
4749
- name: Run tests
4850
run: make test
49-
- uses: codecov/codecov-action@v3
51+
- uses: codecov/codecov-action@v4
5052
- name: Build package
5153
run: make build
5254
- name: Test documentation builds

.github/workflows/push.yaml

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
(github.repository == 'PolicyEngine/policyengine-ng')
1010
&& (github.event.head_commit.message == 'Update PolicyEngine Nigeria')
1111
steps:
12-
- uses: actions/checkout@v3
12+
- uses: actions/checkout@v4
1313
- name: Check formatting
1414
uses: "lgeiger/black-action@master"
1515
with:
@@ -22,15 +22,15 @@ jobs:
2222
runs-on: ubuntu-latest
2323
steps:
2424
- name: Checkout repo
25-
uses: actions/checkout@v3
25+
uses: actions/checkout@v4
2626
with:
2727
repository: ${{ github.event.pull_request.head.repo.full_name }}
2828
ref: ${{ github.event.pull_request.head.ref }}
2929
token: ${{ secrets.POLICYENGINE_GITHUB }}
3030
- name: Setup Python
31-
uses: actions/setup-python@v4
31+
uses: actions/setup-python@v5
3232
with:
33-
python-version: 3.9
33+
python-version: 3.14
3434
- name: Build changelog
3535
run: pip install yaml-changelog && make changelog
3636
- name: Preview changelog update
@@ -52,16 +52,16 @@ jobs:
5252
os: [ubuntu-latest, windows-latest]
5353
steps:
5454
- name: Checkout repo
55-
uses: actions/checkout@v3
55+
uses: actions/checkout@v4
5656
- name: Set up Python
57-
uses: actions/setup-python@v4
57+
uses: actions/setup-python@v5
5858
with:
59-
python-version: 3.9
59+
python-version: 3.14
6060
- name: Install package
6161
run: make install
6262
- name: Run tests
6363
run: make test
64-
- uses: codecov/codecov-action@v3
64+
- uses: codecov/codecov-action@v4
6565
- name: Generate documentation
6666
run: make documentation
6767
- name: Deploy documentation
@@ -78,11 +78,11 @@ jobs:
7878
&& (github.event.head_commit.message == 'Update PolicyEngine Nigeria')
7979
steps:
8080
- name: Checkout repo
81-
uses: actions/checkout@v3
81+
uses: actions/checkout@v4
8282
- name: Setup Python
83-
uses: actions/setup-python@v4
83+
uses: actions/setup-python@v5
8484
with:
85-
python-version: 3.9
85+
python-version: 3.14
8686
- name: Publish a git tag
8787
run: ".github/publish-git-tag.sh || true"
8888
- name: Install package
@@ -104,15 +104,15 @@ jobs:
104104
GH_TOKEN: ${{ secrets.POLICYENGINE_GITHUB }}
105105
steps:
106106
- name: Checkout repo
107-
uses: actions/checkout@v2
107+
uses: actions/checkout@v4
108108
with:
109109
repository: ${{ github.event.pull_request.head.repo.full_name }}
110110
ref: ${{ github.event.pull_request.head.ref }}
111111
token: ${{ secrets.POLICYENGINE_GITHUB }}
112112
- name: Setup Python
113-
uses: actions/setup-python@v2
113+
uses: actions/setup-python@v5
114114
with:
115-
python-version: 3.9
115+
python-version: 3.14
116116
- name: Install Wheel and Pytest
117117
run: pip3 install wheel setuptools pytest==5.4.3
118118
- name: Install package
@@ -121,4 +121,3 @@ jobs:
121121
run: python .github/update_api.py
122122
env:
123123
GITHUB_TOKEN: ${{ secrets.POLICYENGINE_GITHUB }}
124-

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.14

changelog_entry.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
- bump: minor
2+
changes:
3+
added:
4+
- Python 3.14 support. Dropped Python 3.10 and below.

setup.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,18 @@
4141
"License :: OSI Approved :: GNU Affero General Public License v3",
4242
"Operating System :: POSIX",
4343
"Programming Language :: Python",
44-
"Programming Language :: Python :: 3.7",
45-
"Programming Language :: Python :: 3.8",
46-
"Programming Language :: Python :: 3.9",
44+
"Programming Language :: Python :: 3.11",
45+
"Programming Language :: Python :: 3.12",
46+
"Programming Language :: Python :: 3.13",
47+
"Programming Language :: Python :: 3.14",
4748
"Topic :: Scientific/Engineering :: Information Analysis",
4849
],
50+
python_requires=">=3.11",
4951
description="Core microsimulation engine enabling country-specific policy models.",
5052
keywords="tax benefit microsimulation framework",
5153
license="https://www.fsf.org/licensing/licenses/agpl-3.0.html",
5254
license_files=("LICENSE",),
53-
url="https://github.com/policyengine/policyengine-core",
55+
url="https://github.com/policyengine/policyengine-ng",
5456
long_description=long_description,
5557
long_description_content_type="text/markdown",
5658
entry_points={

0 commit comments

Comments
 (0)