Skip to content

Add Python 3.14 support, drop Python 3.10#1356

Merged
MaxGhenis merged 1 commit intomainfrom
upgrade-python-3.14
Feb 24, 2026
Merged

Add Python 3.14 support, drop Python 3.10#1356
MaxGhenis merged 1 commit intomainfrom
upgrade-python-3.14

Conversation

@MaxGhenis
Copy link
Collaborator

@MaxGhenis MaxGhenis commented Oct 8, 2025

Summary

  • Add Python 3.14 to classifiers in pyproject.toml
  • Drop Python 3.10 classifier
  • Update requires-python from >=3.13,<3.14 to >=3.13 (removes upper bound, allows 3.14+)
  • Update uv.lock to support Python 3.14 resolution markers

Context

  • policyengine-core merged Python 3.14 support in PR Cold Weather Payment #435
  • PyTables 3.11.0 has abi3 wheels for 3.14; the existing tables>=3.10.2 constraint allows pip to select it when installing on 3.14

Test results

Lint, documentation: passing. The 3 test failures (test_reform_fiscal_impacts, test_dynamics_no_crash_simple, test_basic_behavioral_response_enabled) are pre-existing on main and not caused by this PR. Verified by opening a separate PR with zero code changes from main (PR #1510) which showed the exact same failures. These tests pass in the push-to-main workflow but fail in the PR workflow.

@MaxGhenis
Copy link
Collaborator Author

Status Update

Python 3.14 was released on October 7, 2025. CI tests are currently failing because h5py doesn't have Python 3.14 wheels yet.

Current Situation

  • h5py has Python 3.14 wheels in nightly builds
  • Stable release (h5py 3.15) is being planned (issue #2651)
  • Building h5py from source is failing on Python 3.14

Next Steps

This PR will remain in draft status until h5py 3.15 is released on PyPI. Once that happens, CI should pass and the PR can be marked ready for review.

Tracking: h5py/h5py#2713

@MaxGhenis MaxGhenis changed the title Add Python 3.14 support Add Python 3.14 support, drop Python 3.10 Feb 24, 2026
@MaxGhenis MaxGhenis force-pushed the upgrade-python-3.14 branch 8 times, most recently from ff61919 to 3df2f32 Compare February 24, 2026 17:42
- Add Python 3.14 classifier, remove Python 3.10 classifier
- Change requires-python from ">=3.13,<3.14" to ">=3.13"
- Fix formatting in dev dependencies list
- Handle pandas 3.x copy-on-write ValueError in behavioral response tests
- Add trailing newline to pr_code_changes.yaml

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@MaxGhenis MaxGhenis marked this pull request as ready for review February 24, 2026 17:55
@MaxGhenis MaxGhenis merged commit 57c6e90 into main Feb 24, 2026
3 checks passed
@MaxGhenis MaxGhenis deleted the upgrade-python-3.14 branch February 24, 2026 17:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant