Pimp My IDE / garage dispatchBack to the garage
October 9, 2026 / Python 3.15 / upgrade proof

The new runtime is one socket.

Python 3.15 is stable. Your project is ready only when its installer, dependencies, native code, and behavior agree.

A version banner starts the test. It does not finish it.
3.15
RuntimeFound
PackagesOpen
NativeOpen
BehaviorOpen
Four lanes feed one release gate. No lane inherits another lane's result.

Stable is a release fact.

The Python Software Foundation released Python 3.15.0 on October 9, 2026. The release adds explicit lazy imports, built-in frozendict and sentinel types, UTF-8 as the default encoding, a stable ABI for free-threaded builds, and frame pointers by default.[1]

Those changes do not answer whether your application fits. The same release page warns that Tk applications can hang on macOS 27 when a menu command opens a dialog. One stable runtime can still meet an unstable platform seam.

Upgrade the workload, not the version string.

Resolution can lag release.

We asked uv 0.11.9 for Python 3.15 on this Linux host. It resolved a managed 3.15.0a8 build, not the stable 3.15.0 release. The alpha reported UTF-8 mode, but sentinel was undefined. This does not indict Python or uv. It proves that a broad version request and a successful launch can still select the wrong artifact.

We also downloaded the official Python-3.15.0.tar.xz source archive and matched its SHA-256 digest, ba4bed1b...e3d575, against the release page. We did not compile that source. A matching archive proves identity, not project compatibility.

New syntax changes the floor.

Python 3.15 can defer module loading with the new lazy soft keyword. The documentation says a failed lazy import raises at first use rather than at the import statement. That changes startup time and failure timing.[2]

If a library adopts 3.15-only syntax, its package metadata needs an honest Python floor. The requires-python field in pyproject.toml records the project's Python version requirement.[3] Test the built wheel too. Source metadata and published distribution metadata can drift.

Native code gets its own lane.

The release adds a stable ABI for free-threaded builds and changes parts of the C API. The porting guide lists removed and deprecated APIs. It also asks C extensions and native libraries with custom build systems to keep the frame-pointer unwind chain intact.[2]

A pure-Python test run cannot clear that lane. Build each native extension on the target operating systems and architectures. Import the resulting wheels in both normal and free-threaded configurations when you claim both.

Keep the old lane alive.

Add 3.15 beside the oldest supported Python version before making it the default. Run unit tests, command-line entry points, packaging builds, startup checks, and production-shaped paths. Compare failures, warnings, startup time, and output bytes.

Promote only after the exact interpreter source, dependency lock, wheel set, test command, and result are attached to the change. Keep the previous runtime available until rollback has been exercised.

Interactive makeover / version badge replaced

Wire the fit bench.

This browser-local control joins a review checklist, a physical coupling view, a gate readout, and a copyable test sheet. It records planned checks. It does not inspect a Python project or run its test suite.

Pin runtimeResolve packagesBuild nativeReplay behavior

Fit circuits

Select a lane only after its test is named in the upgrade issue. The native checkboxes remain the source of truth.

Choose Python upgrade test sections
Review worksheet / no project telemetry

Compatibility coupler

RuntimeSelected
PackagesOpen
NativeOpen
BehaviorOpen
1 test section selectedThree sections remain open. No compatibility verdict has been recorded.
Sources read / October 9, 2026

Source log

Open the evidence boundary
  1. Python Software Foundation, "Python 3.15.0", October 9, 2026. This is the source for the stable release date, headline features, platform installers, source archive digest, and macOS 27 Tk warning.
  2. Python 3.15 documentation, "What's new in Python 3.15", read October 9, 2026. This is the source for lazy-import behavior, porting notes, C API changes, stable free-threaded ABI, frame-pointer guidance, and behavior changes that may require code updates.
  3. Python Packaging User Guide, pyproject.toml specification, read October 9, 2026. The specification defines project.requires-python as the project's Python version requirement.
  4. Hacker News discussion, "Python 3.15.0", item 50021127, read October 9, 2026. We resolved the exact item through the Hacker News API. Reader comments are reaction, not release evidence.

Artifact check: we ran uv 0.11.9 with a broad Python 3.15 request on Linux and received managed CPython 3.15.0a8. The built-in sentinel check failed because that alpha predates the stable feature. We separately downloaded the official 3.15.0 source archive and matched its published SHA-256 digest. We did not build CPython 3.15.0 or test a user project.