Python 3.15.0 final slips to October 9 after surprise rc3
Python 3.15.0rc3 shipped on October 2 to fix late lazy-import bugs, pushing the final Python 3.15.0 release back one week to October 9, 2026.
3 min read

By the numbers
- new date for the Python 3.15.0 final release
- Oct 9
- bugfixes, build and doc changes in rc3
- 156
- contributors to rc3 since rc2
- 82
- JIT speedup on x86-64 Linux, per the release notes
- 7-8%
Python 3.15.0 will now ship on October 9, 2026, one week later than planned. The release team put out an unplanned third release candidate, 3.15.0rc3, on October 2 instead of the final version. A release candidate is a near-final build meant for testing. The cause was a set of late bugs in lazy imports, one of the headline features of the new version.
Why there is an rc3
Release manager Hugo van Kemenade explained the change in a post on the Python discussion forum. "We got some last-minute lazy-import release blockers, and it makes sense to include them in 3.15.0 final," he wrote. "It also makes sense to give a bit of time to test them properly, so this week's planned 3.15.0 final is postponed until next week."
A release blocker is a bug serious enough to stop a release. Lazy imports come from PEP 810, the design document for the feature. They let a program delay loading a module until the code first uses it, which can make programs start faster. A bug in a feature that changes how modules load would be hard to fix after release, so the team chose another test round.
The title of van Kemenade's post calls the extra candidate a tradition. According to the forum thread, Python 3.12, 3.13 and 3.14 each had a surprise rc3 as well.
What is in rc3
The Python Insider blog says rc3 contains about 156 bugfixes, build improvements and documentation changes since rc2. They came from 82 contributors. Van Kemenade runs the release with Ned Deily and Steve Dower.
Python.org describes rc3 as a preview release. It says not to use it in production. The forum announcement adds that no more changes to the ABI are allowed. The ABI is the binary interface that compiled extension modules depend on. Packages built against rc3 should therefore work with the final 3.15.0.
The headline features of Python 3.15
These are the features the release announcement lists for 3.15:
| Feature | What it does |
|---|---|
| PEP 810 | Explicit lazy imports, which defer loading a module |
| PEP 814 | A built-in frozendict, a dictionary that cannot be changed |
| PEP 661 | A standard way to create sentinel values |
| PEP 798 | Unpacking inside comprehensions |
| PEP 686 | UTF-8 mode turned on by default |
| PEP 728 | Improvements to TypedDict for type hints |
| PEP 799 | A new statistical sampling profiler |
| JIT compiler | Still experimental, 7-8% faster on x86-64 Linux |
The blog also says frame pointers are now on by default. Those help profilers and debuggers trace a running program. The macOS installers include free-threading support, which lets Python run threads without the global interpreter lock.
Some of these changes were already known. Tech AI Wire covered how Python 3.15 soft-deprecates re.match() in September.
What this means for developers
You have one more week to test before 3.15.0 lands. Install rc3 and run your test suite against it now. If you hit a bug, file it before October 9, while the release team can still act on it.
Test anything that loads modules in unusual ways first. That includes plugin systems, import hooks and code that runs work at import time. These are the patterns most likely to notice a change in how imports load. The late blockers were in exactly that area.
Check text handling too. TechPulse's compatibility checklist names UTF-8 mode and lazy imports as the two biggest upgrade risks. With UTF-8 on by default, code that relied on the system's default text encoding can read or write files differently. Windows machines with a non-UTF-8 setup are the usual place this shows up.
If you maintain a package with compiled extensions, build your wheels against rc3. The ABI is now frozen, so wheels built today should install on the final release. That lets you publish 3.15 support on release day.
Plan your upgrade calendar around the new date. Python 3.10 reached end of life on October 1. Teams moving off it can target 3.14 now, or wait for 3.15.0 on October 9.
Sources
- Python 3.15.0 candidate 3 is here! - Python Insider
- Python 3.15: following tradition, let's have a surprise rc3! - Discussions on Python.org
- Python Release Python 3.15.0rc3 - Python.org
- Python 3.15 RC3: Upgrade Compatibility Checklist - TechPulse
Related articles

Python 3.10 hits end of life as five releases fix 8 CVEs
Python 3.10.22 is the last 3.10 release: the branch reached end of life on October 1, 2026, as 3.11 to 3.14 shipped fixes for up to eight CVEs.

Python Language Summit 2026 debates Rust and a new GC
The Python Language Summit 2026 reports are out: 47 core developers weighed Rust in CPython, a new garbage collector, a std namespace and faster startup.

Python documentation is now available in German
The Python docs now have a German edition at docs.python.org/de/3/. The core pages are 100% translated; the full set stands at 9.17%.
The daily brief
Three to five stories a day, and what each one means for the people who build software. Free, no spam.