Back
Python 3.15 calls for contract checks before interpreter changes
TechPythonDevelopmentOpen source

Python 3.15 calls for contract checks before interpreter changes

Novoid

A stable release with behaviours to examine

On 9 October 2026, Python announced stable 3.15.0. Its post lists default UTF-8 encoding and explicit lazy imports among interpreter changes.

Startup and files are part of the contract

Encoding determines how bytes become text. For applications exchanging files with older systems, checking it matters as much as program syntax. Critical operations should declare the expected encoding and test characters actually encountered.

Imports form another observable boundary: deferring execution can change when a dependency loads or reports a problem. A migration trial should therefore cover startup, rarely used commands and error paths, beyond the main workflow.

Stable does not mean immediately compatible

Applications also depend on libraries, native extensions and build tools. Their compatibility must be established on the target platform. A bounded migration can compare results, startup duration and diagnostics with the previous version. Adoption should follow that evidence rather than the existence of a newer release alone.

Official source.

Editorial retrospective: event dates are stated in the text.