Add Python 3.14 support #32
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds Python 3.14 support to cedar-py, building on the work started in ec5d0f9 and 9c15185.
The temporary workaround of pinning to Python 3.13 prevented CI failures, but we still need to actually support Python 3.14 for users who want to use the new AWS Lambda Python 3.14 runtime. The main issue was that PyO3 0.19.0 doesn't support Python 3.14, so I've upgraded it to 0.27.1 along with maturin to 1.8+ to enable Python 3.14 wheel building.
The PyO3 upgrade required migrating from the deprecated GIL Refs API to the newer Bound API in src/lib.rs. This is just a signature change in the module initialization function and doesn't affect the Python-facing API at all.
I've tested this locally with Python 3.9, 3.11, and 3.14. All unit tests (31) and integration tests (74) pass on each version. Wheels build successfully for Python 3.9, 3.10, 3.11, 3.13, and 3.14.
With these changes, we can change python-version back to 3.x in CI and it will properly build Python 3.14 wheels instead of failing.
Fixes #31
Note I I used Claude Code to help research the PyO3 migration requirements and test across multiple Python versions. It sped things up.