chore(deps): update container image python to v3.14 - #303
Conversation
| datasource | package | from | to | | ---------- | ------- | ---- | ---- | | docker | python | 3.13 | 3.14 |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe Docker backend base image is updated to python:3.14-slim, ChangesBackend environment and CI updates
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the Comment |
Merge ProtectionsYour pull request matches the following merge protections and will not be merged until they are valid. 🟢 defaultWonderful, this rule succeeded.
|
|
Python 3.14 upgrade breaks the build because uvloop==0.21.0 (locked in uv.lock) cannot build from source on Python 3.14: pyo3-ffi v0.22.2 rejects Python 3.14 as "too new." uvloop 0.22.0 (released 2025-10-16) explicitly added Python 3.14 support (MagicStack/uvloop#638). uvloop is a transitive dependency pulled in by uvicorn[standard]; pyproject.toml does not pin it directly. Fix: run |
uvloop 0.21.0 fails to build on Python 3.14 (pyo3-ffi rejects it as too new). uvloop 0.22.0+ explicitly added Python 3.14 support.
|
Updated backend/uv.lock to upgrade uvloop from 0.21.0 to 0.22.1. uvloop 0.21.0 cannot build on Python 3.14 because pyo3-ffi v0.22.2 rejects Python 3.14 as too new. uvloop 0.22.0 (released 2025-10-16) explicitly added Python 3.14 support. Ran |
|
PR upgrades the Python Docker base image from 3.13-slim to 3.14-slim. A prior triage correctly identified that uvloop 0.21.0 (transitive via uvicorn[standard]) could not build on Python 3.14 due to pyo3-ffi v0.22.2 rejecting 3.14 as "too new"; a fix agent pushed commit 3d330c2 upgrading uv.lock to uvloop 0.22.1 which ships cp314 wheels and explicitly supports Python 3.14. However, CI "Build and test" is still failing on the fix commit HEAD with no log summary available, indicating either an additional Python 3.14 compatibility issue remains unresolved or CI needs to be re-triggered. All security scans (Trivy, gitleaks, secretlint, CodeQL) pass. Fix agent should inspect the "Build and test" CI logs to identify any remaining Python 3.14 incompatibilities beyond uvloop. |
pydantic-core 2.23.4 (pinned by pydantic ~=2.9.0) has no cp314 wheels and fails to build from source on Python 3.14 (pyo3-ffi rejects it). Relaxing to pydantic >=2.13.0 pulls in pydantic-core 2.46.4 which ships prebuilt cp314 wheels.
|
Root cause: pydantic ~=2.9.0 pinned pydantic-core to 2.23.4 which has no cp314 wheels and fails to build from source on Python 3.14 (pyo3-ffi v0.22.2 rejects Python 3.14 as "too new"). Fix: bumped pydantic constraint from |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@backend/pyproject.toml`:
- Line 16: Change the pydantic dependency spec from "pydantic >= 2.13.0" to
include an exclusive upper bound "<3" (e.g., "pydantic >= 2.13.0, <3") so the
project stays on Pydantic v2; after updating the dependency string (the one
matching "pydantic >= 2.13.0") run your dependency manager to refresh the
lockfile (poetry lock / pip-compile / pipenv lock etc.) so the lockfile and CI
use the new constraint.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 6e888d6d-2f13-494a-bd70-cbc45ef181ef
⛔ Files ignored due to path filters (1)
backend/uv.lockis excluded by!**/*.lock
📒 Files selected for processing (1)
backend/pyproject.toml
There was a problem hiding this comment.
Python base image bumped from 3.13-slim to 3.14-slim. Two Python 3.14 build-compatibility issues were identified by prior triage passes and resolved by fix agents: (1) uvloop 0.21.0 (transitive via uvicorn[standard]) lacked cp314 wheel support — fixed by upgrading uv.lock to uvloop 0.22.1; (2) pydantic ~=2.9.0 locked pydantic-core 2.23.4 which also lacked cp314 wheels — fixed by relaxing constraint to pydantic >=2.13.0, pulling in pydantic-core 2.46.4 with prebuilt cp314 wheels. All pydantic APIs in use (BaseModel, model_validator, discriminated unions, ConfigDict) are stable across 2.9→2.13. CI "Build and test" and all security scans (Trivy, CodeQL, gitleaks, secretlint) pass on HEAD c43760f. The only failing check is Mergify's human-approval gate, which is not a technical blocker.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Signed-off-by: Anthony <99536297+anthony-spruyt@users.noreply.github.com>
Merge Queue Status
This pull request spent 4 minutes 52 seconds in the queue, including 4 minutes 26 seconds running CI. Required conditions to merge
|
This PR contains the following updates:
3.13-slim→3.14-slimConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.