feat!: upgrade to Python 3.14 on UBI10#500
Open
RH-tj wants to merge 4 commits into
Open
Conversation
Switch base images from UBI9/Python 3.11 to UBI10/Python 3.14, aligning with the team-wide Python 3.14 upgrade (APPSRE-14338). - Dockerfile: swap builder to ubi10/python-314-minimal, prod to ubi10/ubi-minimal with python3.14 - pyproject.toml: requires-python ~=3.14.0, add ruff target-version, bump prometheus_client to 0.25.0 (3.14 support), remove pytest-forked (inactive, incompatible with 3.14 forkserver default) - Makefile: remove --forked from pytest invocation - tests/conftest.py: add autouse fixture to reset Borg/monostate singletons between tests (previously implicit via pytest-forked) - AGENTS.md: update documented Python version - uv.lock: regenerated for Python 3.14 Closes APPSRE-14356 Co-authored-by: Cursor <cursoragent@cursor.com>
hemslo
reviewed
Jun 10, 2026
Use ubi10/python-314-minimal directly for the prod stage instead of ubi10/ubi-minimal with a separate microdnf install of python3.14. Simplifies the Dockerfile and aligns with reviewer feedback. Co-authored-by: Cursor <cursoragent@cursor.com>
The python-314-minimal image defaults to USER 1001, so microdnf upgrade fails with permission errors. Switch to USER 0 for the package upgrade and chown, then back to 1001 before runtime. Co-authored-by: Cursor <cursoragent@cursor.com>
chassing
reviewed
Jun 10, 2026
- Dockerfile: use UV_PROJECT_ENVIRONMENT=$APP_ROOT to install into the image's built-in venv at /opt/app-root instead of a custom /ghmirror/.venv. Extend test stage from builder instead of prod. - pyproject.toml: remove target-version from ruff config, it already infers from requires-python. Co-authored-by: Cursor <cursoragent@cursor.com>
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
prometheus_clientfrom 0.22.1 to 0.25.0 (Python 3.14 support added in 0.24.0)pytest-forked(inactive, incompatible with Python 3.14's forkserver default) with an explicit singleton-reset fixture intests/conftest.pyChanges
Dockerfileubi10/python-314-minimal, prod:ubi10/ubi-minimal+python3.14pyproject.tomlrequires-python ~=3.14.0, rufftarget-version = "py314", bumpprometheus_client, droppytest-forkedMakefile--forkedfrom pytest invocationtests/conftest.pyAGENTS.mduv.lockTest plan
make checkpasses locally (51/51 tests, 98.31% coverage, ruff clean)teststage successfullyCloses APPSRE-14356
Made with Cursor