Skip to content

feat!: upgrade to Python 3.14 on UBI10#500

Open
RH-tj wants to merge 4 commits into
app-sre:masterfrom
RH-tj:feature/APPSRE-14356-1
Open

feat!: upgrade to Python 3.14 on UBI10#500
RH-tj wants to merge 4 commits into
app-sre:masterfrom
RH-tj:feature/APPSRE-14356-1

Conversation

@RH-tj

@RH-tj RH-tj commented Jun 9, 2026

Copy link
Copy Markdown

Summary

  • APPSRE-14356
  • Switch base images from UBI9/Python 3.11 to UBI10/Python 3.14, aligning with the team-wide Python 3.14 upgrade (APPSRE-14338)
  • Bump prometheus_client from 0.22.1 to 0.25.0 (Python 3.14 support added in 0.24.0)
  • Replace pytest-forked (inactive, incompatible with Python 3.14's forkserver default) with an explicit singleton-reset fixture in tests/conftest.py

Changes

File What changed
Dockerfile Builder: ubi10/python-314-minimal, prod: ubi10/ubi-minimal + python3.14
pyproject.toml requires-python ~=3.14.0, ruff target-version = "py314", bump prometheus_client, drop pytest-forked
Makefile Remove --forked from pytest invocation
tests/conftest.py New autouse fixture resetting Borg/monostate singletons between tests
AGENTS.md Update documented Python version
uv.lock Regenerated for Python 3.14

Test plan

  • make check passes locally (51/51 tests, 98.31% coverage, ruff clean)
  • Tekton CI builds test stage successfully
  • Stage acceptance tests pass after deploy
  • Monitor prod auto-promotion after stage post-deploy tests

Closes APPSRE-14356

Made with Cursor

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>
Comment thread Dockerfile Outdated
RH-tj and others added 2 commits June 10, 2026 10:09
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>
@RH-tj RH-tj requested a review from hemslo June 10, 2026 14:18
Comment thread Dockerfile Outdated
Comment thread pyproject.toml Outdated
- 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>

@chassing chassing left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please be aware that Jon disabled the prod auto-promotion.

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.

3 participants