Releasing Python 3.15.0

Table of Contents
Prologue #
Like last year, I livetooted the release of Python 3.15.0. Here it is in blogpost form!
Two weeks #
Two weeks until Python 3.15.0 final!
#Python
#Python315
Fri, Sep 18, 2026, 00:30 EEST
One week #
One week until Python 3.15.0 final!!
What are you most looking forward to?
#Python
#Python315
Tue, Sep 22, 2026, 21:17 EEST
Python 3.15.0 release day! #
First blocker, we’re getting 503s on docs.python.org and buildbot.python.org, the latter of which is needed to check the tier 1 and 2 buildbots are passing, needed for a release.
It’s a certificate issue from an incompatible pyOpenSSL upgrade. We’re waiting for the US to wake up and poke it with a stick.


#Python
#Python315
Thu, Oct 1, 2026, 14:19 EEST
Red #
The US woke up and they’re both back up!
Now, there’s one tier 1 failure to check.


#Python
#Python315
#release
Thu, Oct 1, 2026, 14:22 EEST
Flaky #
RuntimeError: join took too long: <Process name='Process-2107' pid=2290504 parent=2276730 started daemon>
Looks like a flaky test, and python/cpython#157184 has a fix to increase a timeout. Will try restarting for now.
#Python
#Python315
#release
Thu, Oct 1, 2026, 14:25 EEST
Green #
That passed, the buildbots are back to green ✅️

Next, issues/PRs with release-blocker label.
One is a straightforward docs update, I marked as blocker so I don’t forget, to change future tense to present.
Then three last-minute lazy import blockers that need a closer look.

#Python
#Python315
#release
Thu, Oct 1, 2026, 15:11 EEST
Traditional surprise rc3 #
Following recent tradition, I’m going to add a surprise third release candidate!
It makes sense to include the last-minute lazy-import fixes in 3.15.0 final.
It also makes sense to give time to test them properly, so today’s planned 3.15.0 final is postponed, and I’m going to release a 3.15.0rc3 tomorrow, assuming everything is in place.
And then 3.15.0 final will follow about week later. Exact date to be announced.
We’re nearly there! 🤞
#Python
#Python315
#release
Fri, Oct 2, 2026, 00:49 EEST
Missing backport #
The three lazy blockers are finally merged into main, two have been backported to
3.15, but wait, the third failed,
because it depends on some tests not yet backported.
Okay, backport created, merge conflict fixed, CI is now spinning, and automerge enabled. That’ll merge in about 15 mins, then we can update it into the last blocker PR, that should merge about 30 mins later, and rc3 can begin!
#Python
#Python315
#release
Fri, Oct 2, 2026, 20:58 EEST
rc3 #
Get yer rc3 here!
You know the drill: please test and report bugs!
Library maintainers, join the Cool Testers’ Club 😎 and add 3.15 to your test matrix.
Python 3.15.0 final planned for 2026-10-09.
#Python
#Python315
#release
Sat, Oct 3, 2026, 00:14 EEST
Python 3.15.0 release day (second attempt)! #
✅️ Release date updated in What’s New in Python 3.15
✅️ No release blockers
✅️ No deferred blockers
✅️ Buildbots all green

#Python
#Python315
#release
Fri, Oct 9, 2026, 13:03 EEST
Cooldowns #
Pydantic finally added support for Python 3.15 yesterday, and aiohttp on Monday, so I could use Python 3.15 rc3 to run the release scripts and release Python 3.15.0 final!
But… I’m going to respect our seven-day cooldown, and stick with 3.14.
You also use cooldowns for your dependencies, right?
#Python
#Python315
#release
Fri, Oct 9, 2026, 13:12 EEST
blurb bug #
Pushing the big launch button:
.venv/bin/python run_release.py --repository ../cpython --ssh-user hugovk --release 3.15.0
… and immediately ran into a bug with our changelog tool blurb, because we’ve had no
new NEWS fragments since rc3 :)


This needs a fix in blurb, a new PyPI release, and then the docs lockfile regenerated and backported to 3.15.
Fix PR: python/blurb#92
#Python
#Python315
#release
Fri, Oct 9, 2026, 13:43 EEST
blurb fix #
OK, merged and released (really easy using Trusted Publishing), lockfile updated and backported.
Restarted the release and that’s better now.
A temporary branch and tag has been pushed to my fork, and I need to verify the release commit does not contain any unexpected changes.
All looks good. Next to start the installer and artifact builds.
#Python
#Python315
#release
Fri, Oct 9, 2026, 14:21 EEST
Installers #
The release artifact build failed, need to bump blurb in that lockfile too.
Like this: python/release-tools#451
Now restarted that workflow with the existing CPython tag, no need for retag.
This builds source+docs tarballs and Android+iOS artifacts. Takes ~30 mins.

Ned Deily has started the macOS installer builds. And I’ve started the Windows installer builds, takes ~2 hours.

#Python
#Python315
#release
Fri, Oct 9, 2026, 14:56 EEST
SBOM #
In the meantime, the GitHub Actions build has finished, SBOMs created and some things uploaded.

The Windows process has paused a couple of times, awaiting button clicks to approve signing of binaries. The whole release team gets emails about this, so no sneaking out signed releases. 🥷


#Python
#Python315
#release
Fri, Oct 9, 2026, 16:04 EEST
Nearly there #
Windows complete, tags pushed upstream, Sigstore signing done, adding files to python.org… nearly there…
#Python
#Python315
#release
Fri, Oct 9, 2026, 17:11 EEST
Out now #
🐍🚀 Out now: Python 3.15.0 final!
💤 Lazy imports!
🧊 frozendict builtin!
💂 sentinel builtin!
📉 Tachyon
profiler!
🖼️ Frame pointers everywhere!
🛅 Unpacking in comprehensions!
🗣️
UTF-8 as the default encoding!
🛞 Stable ABI for free-threading!
🆕 Package
startup config files!
⌨️ TypedDict & TypeForm!
🐎 Faster JIT!
🎨 More
colour!
🚌 & more!
Huge thanks to the Sovereign Tech Agency supporting my work as release manager and enabling another smooth release!

#Python
#Python315
#CPython
#release
Fri, Oct 9, 2026, 17:23 EEST
It’s not over yet! #
I updated PEP 790, which also updates the PEPs API, which is used to point the docs at /3/ to 3.15, kicked off a docs build: docs.python.org/3/
Unpin one toot and pin another to my profile.
(3.14 might not be the newest, but we can still celebrate with pie!)
And then unlock the 3.15 branch so the core team can start merging 185 PRs that didn’t get in during RC.
#Python
#Python315
#release
Fri, Oct 9, 2026, 18:27 EEST
Also #
✅️ update 3.15 label
✅️ rebuild devguide
to update: devguide.python.org/versions/
✅️
unlock 3.15 branch
And I think that’s it!
Hey, @savannah, you’re up next with the first 3.16 alpha on Tuesday! 🚀
#Python
#Python315
#Python316
#release
Fri, Oct 9, 2026, 18:58 EEST