Python’s experimental JIT compiler has been riding along in CPython’s main branch since Python 3.13. It’s off by default and easy to forget about. In June, the Steering Council decided that the JIT needs a proper standards-track PEP, and it set a six-month clock to make that happen. Otherwise, the JIT gets taken back out of main.
The JIT debate wasn’t the only relevant news this month. Python 3.14.6 and 3.13.14 shipped their routine bug fixes, and Python 3.15 picked up two more betas on its way to a fall release. The wider ecosystem kept pace, with security fixes from Django and Starlette, and fresh releases across the data stack from scikit-learn and Polars. Conference season is heating up too, with EuroPython 2026 landing in Kraków in mid-July.
Time to dig into the Python news from the past month!
Join Now: Click here to join the Real Python Newsletter and you’ll never miss another Python tutorial, course, or news update.
Python Releases and PEP Highlights
The most notable news this month is a deadline rather than a new feature. The Steering Council put the JIT compiler on notice, while the rest of the release news—two maintenance drops and two more 3.15 betas—was quieter by comparison.
The Steering Council Puts the JIT on Notice
CPython’s JIT compiler arrived in Python 3.13 as an experimental, off-by-default feature, backed only by the informational PEP 744. In June, the Steering Council announced that this arrangement has run its course.
No new JIT functionality can merge into main until the community approves the project through a standards-track PEP, and that PEP has roughly six months to materialize. If it doesn’t, then the JIT code comes out of main, and development continues somewhere else.
The council’s reasoning is less about the code and more about the commitments around it. Its list of missing pieces includes:
- Committed long-term maintainers
- A security review
- Debugging and out-of-process tooling support
- Defined runtime guarantees
There’s also a process point underneath it all:
…experiments should not be done on the main branch of CPython without a backing PEP. (Source)
The forthcoming PEP will need to spell out who maintains the JIT, how it coexists with CPython features like free threading, profilers, and debuggers, and what counts as success.
That last question is where the community discussion got lively. The current JIT delivers roughly an 8–9 percent geometric-mean speedup on x86-64 Linux and 12–13 percent on AArch64 macOS, but individual benchmarks swing from a 15 percent slowdown to better than a 100 percent speedup.
JIT lead Ken Jin floated a long-term target of around 20 percent, or as he put it, “one-half to one-quarter of PyPy.” For context, contributors measured PyPy at roughly 50 percent faster than CPython 3.15 on macOS, and 80–90 percent faster on x86-64 Linux. Either way, the JIT isn’t there yet, and the council wants a clear-eyed plan before it commits. Side by side, the gap is stark:
Even the JIT’s optimistic 20 percent target barely dents PyPy’s lead, and today’s modest gains leave it well short of either mark.
Note: The JIT still disables itself the moment you start threads, so it doesn’t yet play nicely with free-threaded Python. Making those two flagship projects work together is exactly the kind of guarantee the new PEP will need to address.
It’s a healthy moment for the project. Forcing a real maintenance and security story now beats discovering the gaps after the JIT is on by default, so here’s hoping the extra rigor sets the JIT up for a strong future.
Two Maintenance Python Releases and Two Betas
While the JIT debate simmered, the release managers kept the regular cadence going. Python 3.14.6 and 3.13.14 both shipped on June 10, with around 179 and 240 bug fixes, respectively. Neither is a security release, so there’s no fire drill here, just the usual steady stream of fixes that make it worth staying current on the latest bugfix version.
On the pre-release front, Python 3.15.0b2 landed on June 2, the second of four planned betas. The feature set is frozen, so these betas are about stabilizing what’s already in.
Note: Now that the 3.15 feature set is locked, running your test suite against the beta is the single most useful thing you can do for the release. Install the pre-release in an isolated environment, and file anything that breaks while there’s still time to fix it.


