This is not the release you’re looking for…
(unless you’re looking for 3.12.7.)
Because no plan survives contact with reality, instead of the actual Python 3.13.0 release we have a new Python 3.13 release candidate today. Python 3.13.0rc3 rolls back the incremental cyclic garbage collector (GC), which was added in one of the alpha releases. The incremental GC had more significant performance regressions in specific workloads than we expected. Rather than try to fiddle with its details in the hope of fixing them (and not making anything else worse) we decided to revert back to the old GC in 3.13. Work on the incremental GC will continue in 3.14. We also took the opportunity to fix some other (rare) bugs and issues found in 3.13.0rc2. The final release of Python 3.13.0 will now happen next week, Monday October 7th.
In an effort to return to normalcy, we’ve also released Python 3.12.7 as scheduled, despite the expedited release a month ago. It’s important to be regular!
3.13.0rc3
The final cut of 3.13.0 (really, honest). Besides the incremental GC revert it contains a small number of other fixes, as well as many documentation improvements and testsuite improvements (~145 changes in total).
Call to action
We strongly encourage maintainers of third-party Python projects to prepare their projects for 3.13 compatibilities during this phase, and where necessary publish Python 3.13 wheels on PyPI to be ready for the final release of 3.13.0. Any binary wheels built against Python 3.13.0rc1 and later will work with future versions of Python 3.13. As always, report any issues to the Python bug tracker .
Please keep in mind that this is a preview release and while it’s as close to the final release as we can get it, its use is not recommended for production environments. Next week, though!
New features in Python 3.13
- A new and improved interactive interpreter , based on PyPy ’s, featuring multi-line editing and color support, as well as colorized exception tracebacks .
- An experimental free-threaded build mode , which disables the Global Interpreter Lock, allowing threads to run more concurrently. The build mode is available as an experimental feature in the Windows and macOS installers as well.
- A preliminary, experimental JIT , providing the ground work for significant performance improvements.
- The
locals()
builtin function (and its C equivalent) now has well-defined semantics when mutating the returned mapping , which allows debuggers to operate more consistently. - A modified version of mimalloc is now included, optional but enabled by default if supported by the platform, and required for the free-threaded build mode.
- Docstrings now have their leading indentation stripped , reducing memory use and the size of .pyc files. (Most tools handling docstrings already strip leading indentation.)
- The dbm module has a new dbm.sqlite3 backend that is used by default when creating new files.
- The minimum supported macOS version was changed from 10.9 to 10.13 (High Sierra). Older macOS versions will not be supported going forward.
- WASI is now a Tier 2 supported platform . Emscripten is no longer an officially supported platform (but Pyodide continues to support Emscripten).
- iOS is now a Tier 3 supported platform.
- Android is now a Tier 3 supported platform as well.
Python 3.12.7
A small release since 3.12.6 was only a month ago, but nevertheless 3.12.7 contains ~120 bug fixes, build improvements and documentation changes.
More resources
- Python 3.13 Online Documentation
- PEP 719, Python 3.13 Release Schedule
- Report bugs at Issues · python/cpython · GitHub .
- Help fund Python directly (or via GitHub Sponsors), and support the Python community.
Enjoy the new releases
Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation.
Regards from a positively melting Menlo Park for some reason this time,
Your release team,
Thomas Wouters @thomas
Łukasz Langa @ambv
Ned Deily @nad
Steve Dower @steve.dower