Move the runtime to Python 3.14#219
Merged
Merged
Conversation
The experimental test-python314 CI lane (PR #218) passed cleanly on its first real run, proving the dependency stack (psycopg[binary], pglast, cryptography — the compiled ones) works under 3.14. Follow through: - Dockerfile: both FROM lines (builder + runtime stages) now pull the 3.14 base images. - ci.yml: lint, security, and the main PG 14-19 + WarehousePG test matrix all install Python 3.14 instead of 3.13. The now-redundant test-python314 experimental job is removed — 3.14 is mainline now, so a separate lane proving it out is pointless duplication. - publish.yml: same bump across all three python-version pins (build, smoke-testpypi's two setup steps). - pyproject.toml: mypy's python_version target moves to 3.14 (matches what CI now actually runs); added the 3.14 classifier alongside the existing 3.12/3.13 ones. requires-python stays ">=3.12" — this is a change to what we build/test with, not a narrowing of what `pip install mcpg` accepts. ruff's target-version stays "py312" for the same reason: it governs the minimum-syntax floor, not the dev version. Verified locally: ruff format/check, mypy (now simulating the 3.14 stdlib), and the full non-integration suite (2624 passed) all clean.
Contributor
|
Warning Gemini encountered an error creating the review. You can try again by commenting |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Follow-up to #218 (the experimental
test-python314CI lane), which passed cleanly on its first real run — proving the compiled deps (psycopg[binary],pglast==7.14,cryptographyviapyjwt[crypto]) all work under Python 3.14. This PR follows through and makes 3.14 the mainline version everywhere we build/test:Dockerfile: bothFROMlines (builder + runtime stages) now pull the 3.14 base images.ci.yml:lint,security, and the main PG 14-19 + WarehousePG test matrix all install Python 3.14 instead of 3.13. Removed the now-redundanttest-python314experimental job — its whole purpose was proving 3.14 out before committing to it, which is done, so keeping it around would just be duplicate work against the same mainline version.publish.yml: same bump across all threepython-versionpins (build, andsmoke-testpypi's two setup steps).pyproject.toml:mypy'spython_versiontarget moves to3.14(matches what CI actually runs now); added theProgramming Language :: Python :: 3.14classifier alongside the existing 3.12/3.13 ones.requires-pythonstays>=3.12— this is a change to what we build/test with, not a narrowing of whatpip install mcpgaccepts.ruff'starget-versionstays"py312"for the same reason — it governs the minimum-syntax floor for consumers, not the dev/CI interpreter.CHANGELOG.md: noted under[Unreleased] / Changed.Test plan
uv run ruff format --check ./uv run ruff check .— clean.uv run mypy src/mcpg— clean, now simulating the 3.14 stdlib/typeshed.uv run pytest -q -m "not integration"— 2624 passed.python3 -c "import yaml; ..."confirms the job lists:ci.yml→lint,security,test;publish.ymlunchanged job list).Generated by Claude Code