3.13 released 7 October 2024, latest 3.13.15.
Python 3.13 is currently supported. Active support is scheduled to end on 1 October 2026. It reaches end of life on 31 October 2029.
What changed
Python 3.13 added an experimental free-threaded build that can run threads without the global interpreter lock, alongside the conventional GIL-enabled build. It also introduced an experimental just-in-time compiler, an incremental garbage collector, improved interactive-shell behavior, and colorized tracebacks. Language and typing changes include deferred evaluation of annotations by default, defined semantics for mutating locals returned by locals(), default values for type parameters, ReadOnly items in TypedDict, and the TypeIs narrowing construct. The standard library removed a group of long-deprecated modules, including lib2to3 and 2to3, plus modules such as aifc, audioop, cgi, imghdr, telnetlib, and uu.
What staying costs
Python 3.13 remains supported, so staying on it does not create an immediate support-status problem. The practical trade-off is that workloads cannot use interpreter, standard-library, typing, and performance improvements introduced in later Python lines. Dependency support can also gradually become less favorable as projects test, publish wheels, and prioritize fixes for newer interpreters. The largest 3.13-specific risk is treating its free-threaded or JIT modes as routine production defaults: both are experimental in this line, and native extensions may need rebuilding, compatibility checks, or different performance expectations. Applications that depended on removed standard-library modules must already have replacements or vendored alternatives.
What to do
Keep 3.13 on its latest available maintenance release while planning a tested move to a newer supported Python line. Run the full application, integration, and performance test suites on the target interpreter before changing production runtimes. Inventory direct and transitive dependencies, especially packages with C, C++, Rust, or other native extensions, and confirm that compatible wheels are available for every deployment platform. Search code and build tooling for removed modules such as lib2to3, cgi, imghdr, and telnetlib, then replace them with maintained alternatives. If evaluating free-threading or the JIT, benchmark representative workloads and run concurrency, memory, and extension-compatibility tests separately from the normal GIL-enabled migration path.
We can tell you what moving off Python 3.13 involves.
What it takes to move off Python 3.13 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.
Not sure yet? Get my plan
