From 738090a89a84138a27150276485363eb6d120ad2 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Wed, 8 Oct 2025 15:28:17 -0400 Subject: [PATCH 1/3] Add Python 3.14 support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Python 3.14 to classifiers - Update CI workflows to use Python 3.14 Fixes #535 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .claude | 1 + .github/workflows/pr.yaml | 4 ++-- .github/workflows/push.yaml | 8 ++++---- changelog_entry.yaml | 4 ++++ setup.py | 3 ++- 5 files changed, 13 insertions(+), 7 deletions(-) create mode 160000 .claude diff --git a/.claude b/.claude new file mode 160000 index 000000000..eec0a00fa --- /dev/null +++ b/.claude @@ -0,0 +1 @@ +Subproject commit eec0a00faf6ea6d0357736a0e6bcdbe679119ed0 diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index a2a364b9e..b9159e0a6 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -23,7 +23,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: 3.13 + python-version: 3.14 - name: Build changelog run: pip install yaml-changelog==0.3.0 && make changelog - name: Preview changelog update @@ -41,7 +41,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: 3.13 + python-version: 3.14 - name: Install package run: make install - name: Run tests diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index dc58f7c33..02cadb352 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: 3.13 + python-version: 3.14 - name: Build changelog run: pip install yaml-changelog==0.3.0 && make changelog - name: Preview changelog update @@ -56,7 +56,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v4 with: - python-version: 3.13 + python-version: 3.14 - name: Install package run: make install - name: Run tests @@ -82,7 +82,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v4 with: - python-version: 3.13 + python-version: 3.14 - name: Publish a git tag run: ".github/publish-git-tag.sh || true" - name: Install package @@ -112,7 +112,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v2 with: - python-version: 3.12 + python-version: 3.14 - name: Install Wheel and Pytest run: pip3 install wheel setuptools pytest==5.4.3 - name: Install package diff --git a/changelog_entry.yaml b/changelog_entry.yaml index e69de29bb..f1d50a6c0 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -0,0 +1,4 @@ +- bump: minor + changes: + added: + - Support for Python 3.14 diff --git a/setup.py b/setup.py index bd9e5f4b6..4d23d44fc 100644 --- a/setup.py +++ b/setup.py @@ -51,6 +51,7 @@ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Scientific/Engineering :: Information Analysis", ], description="Microsimulation model for Canada's tax-benefit system.", @@ -63,7 +64,7 @@ extras_require={ "dev": dev_requirements, }, - python_requires=">=3.10", + python_requires=">=3.10,<3.15", install_requires=general_requirements, packages=find_packages(), include_package_data=True, From 6df4510c9d096d0512199834f64b47528939c8a0 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Wed, 8 Oct 2025 15:35:55 -0400 Subject: [PATCH 2/3] Add .python-version for uv default --- .python-version | 1 + 1 file changed, 1 insertion(+) create mode 100644 .python-version diff --git a/.python-version b/.python-version new file mode 100644 index 000000000..3767b4b17 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.14 \ No newline at end of file From 03d4e0b19c14c90d50f1470dbe92dd128bb1c304 Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Wed, 8 Oct 2025 16:35:38 -0400 Subject: [PATCH 3/3] Drop Python 3.10 support (following SPEC 0 policy) --- changelog_entry.yaml | 2 ++ setup.py | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/changelog_entry.yaml b/changelog_entry.yaml index f1d50a6c0..e6a81e5bc 100644 --- a/changelog_entry.yaml +++ b/changelog_entry.yaml @@ -2,3 +2,5 @@ changes: added: - Support for Python 3.14 + removed: + - Support for Python 3.10 (following SPEC 0 policy) diff --git a/setup.py b/setup.py index 4d23d44fc..53d4793bf 100644 --- a/setup.py +++ b/setup.py @@ -47,7 +47,6 @@ "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: POSIX", "Programming Language :: Python", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -64,7 +63,7 @@ extras_require={ "dev": dev_requirements, }, - python_requires=">=3.10,<3.15", + python_requires=">=3.11,<3.15", install_requires=general_requirements, packages=find_packages(), include_package_data=True,