Skip to content

ci: support Python 3.14 alongside 3.12 - #244

Closed
pdelsante wants to merge 4 commits into
developfrom
ci/python-3.14
Closed

pdelsante wants to merge 4 commits into
developfrom
ci/python-3.14

Conversation

@pdelsante

@pdelsante pdelsante commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Goal

Make create_python_cache.yaml and the shared .ruff.toml support Python 3.14 alongside 3.12.

Why

Projects are moving to 3.14. Today the venv cache key ignores the Python version, so a multi-version matrix would collide on save, or restore a venv built for the wrong interpreter.

How

  1. save_virtualenv / restore_virtualenv: add a get_python_version step; key is now <ref>-venv-py<X.Y>-<hash>. Inputs are unchanged; existing venv caches miss once.
  2. create_python_cache.yaml: matrix from vars.PYTHON_VERSIONS (JSON array, default ["3.12"] = previous behaviour) with fail-fast: false, so a version that fails to build doesn't cancel the others' caches.
  3. .ruff.toml: keep target-version = "py312" (it is the minimum and already covers 3.14 code) with a one-line comment.
  4. pull_request_automation.yml: python_versions reads the same vars.PYTHON_VERSIONS (default ["3.12"]), so tests and caches use the same versions.
  5. Fixture: uWSGI 2.0.23 → 2.0.30, the first release that builds on 3.14 (2.0.29 fails on c_recursion_remaining).
  6. Docs: workflows/README.md and both virtualenv action READMEs.
  7. Plan and decisions: .claude/plans/ci-python-3.14/plan.md.

Out of scope

  • Setting PYTHON_VERSIONS on this repo: without it the self-test runs only 3.12.
  • The root ↔ .github/ drift in _release_and_tag.yml, release.yml and requirements-linters.txt that post-merge would sync.
  • create_python_cache.yaml itself only runs on push to develop/main, so this PR's CI exercises it only indirectly, through the shared actions.

🤖 Generated with Claude Code

pdelsante and others added 2 commits October 5, 2026 12:02
Add the Python version to the virtualenv cache key, run create_python_cache
as a 3.12/3.14 matrix, self-test on both versions and bump the fixture's
uWSGI to the first release that builds on 3.14.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@pdelsante

Copy link
Copy Markdown
Member Author

CI green on 3.12 and 3.14 (python job), node and CodeQL. The venv cache keys now contain py3.12 / py3.14. Pre-push review: one finding (fail-fast on the matrix), fixed in the second commit.

@pdelsante
pdelsante marked this pull request as ready for review October 5, 2026 10:06
pdelsante and others added 2 commits October 5, 2026 16:29
Default to ["3.12"], the behaviour before this branch.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@pdelsante

Copy link
Copy Markdown
Member Author

Questa PR non mi convince più di tanto, per il momento la chiudo.

@pdelsante pdelsante closed this Oct 7, 2026
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.

2 participants