Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docker/python/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.12-bookworm
FROM python:3.14-bookworm
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Python 3.14 release date and stability status

💡 Result:

Python 3.14 final (stable) was released on October 7, 2025. It is a stable production release; subsequent 3.14 bugfixes (e.g., 3.14.1 and 3.14.2) have been published since then. [1][2][3]

Sources:

  • PEP 745 (3.14 release schedule / lifecycle). [1]
  • Python.org release page for Python 3.14.0 (final) — Oct 7, 2025. [2]
  • Python Insider blog post announcing Python 3.14.0 (final). [3]

🌐 Web query:

python:3.14-bookworm Docker image availability Docker Hub

💡 Result:

Yes — the official python image on Docker Hub includes the tag python:3.14-bookworm (and related 3.14/3.14-slim/3.14-bookworm variants). [1][4]

Sources:

  • Docker Hub official python tags list. [1]
  • Example image layer page for the 3.14-slim-bookworm tag. [4]

🌐 Web query:

Python 3.14 breaking changes from Python 3.12 3.13

💡 Result:

Here are the main breaking/incompatible changes and removals introduced in Python 3.14 (differences you should watch for when migrating from 3.12 / 3.13):

  • Disallowed control-flow exiting finally: using return / break / continue that exit a finally block is now disallowed (PEP 765). [1]
  • Deferred evaluation of annotations: annotations are evaluated later (PEP 649) — can change runtime semantics for code that inspects / mutates annotations. [1]
  • New “free‑threaded”/multiple-interpreter and runtime changes (PEP 779 / PEP 734): official support for free-threaded mode and stdlib support for multiple interpreters — can change concurrency/embedding behaviour; some extension modules may need updates. [1]
  • New interpreter and bytecode/magic changes: 3.14 had bytecode magic-number bumps during pre-releases (pyc incompatibilities across pre‑releases); final 3.14.x series stabilizes ABI but check .pyc compatibility when upgrading from betas. [2][3]
  • Build/distribution changes: release artifacts no longer ship PGP signatures (PEP 761 — Sigstore recommended); official binaries now may include experimental JITs / new platform binaries (macOS/Windows JIT, Android binaries). This affects distribution/verification tooling. [1][3]
  • Standard‑library removals & prior 3.13 removals to be aware of: 3.13 removed many legacy stdlib modules and tooling (e.g., lib2to3/2to3, many “dead batteries” modules) — those removals remain in 3.14. Verify your code doesn’t depend on modules removed in 3.13. [4]
  • New/changed stdlib features with possible incompatibilities: changes such as HMAC builtin implementation (HACL*), uuid v6–v8 support, new compression.zstd module, changed semantics for locals(), etc. — review any code that depended on previous implementation details. [1]

Quick migration tips:

  • Run your test suite under 3.14 and enable warnings; check extensions/C-API-using packages for compatibility with the new C API/config APIs noted in the 3.14 docs. [1]
  • Review the “Incompatible changes / Removals / Deprecations” sections of the Python 3.14 “What’s New” and the 3.13 “What’s New” pages for module-by-module details. [1][4]

Sources:
[1] Python 3.14 release notes / “What’s New in Python 3.14” (python.org).
[2] Python 3.14.0rc3 announcement / release notes (python.org / Python Insider).
[3] Python 3.14.0b1 release notes (python.org).
[4] “What’s New in Python 3.13” (docs.python.org).


Test Python 3.14 compatibility before merging.

Python 3.14 is stable (released October 2025), and the python:3.14-bookworm Docker image is available. However, Python 3.14 introduces several breaking changes from 3.12:

  • Control-flow statements (return/break/continue) are disallowed in finally blocks (PEP 765)
  • Annotations are now evaluated lazily instead of at definition time (PEP 649)
  • Standard library modules removed in 3.13 remain removed
  • Bytecode format has changed; .pyc files from 3.12 are incompatible

Run your test suite under Python 3.14 to verify your code and dependencies are compatible with these changes before merging.


RUN apt-get update \
&& apt-get install -y python3-dev default-libmysqlclient-dev build-essential pkg-config
Expand Down