PEP 2026: Calendar versioning for Python

I touched upon it but could more explicitly reject a four-(or more)-part version in the PEP. The proposal is to retain the familiar three-part 3.x.y shape for backwards compatibility:

And to minimise ecosystem changes:

Addressed under non-goals: I propose 3.YY.micro where YY is the year of initial release, and micro is incremented for bugfix/security releases.

For example, 3.26.0 is the initial release in October 2026, 3.26.2 is the second bugfix release in February 2027. We retain the 3.YY for each feature release based on initial release; remember we support five feature releases at a time.

This is similar to Ubuntu’s micro: 22.04.0 was the initial release in 2022, 22.04.2 was a bugfix release in 2023.

Sure, but we’re not designing from scratch. Why not those? To avoid breaking code that expects a three-part, two-dot version starting with 3 and followed by two parts of 1-2 digits; and:


However we’d be able to point to a clear statement saying “the major is always 3, minor is the year”, which I feel is much better than the ambiguous and confusing “major is bumped for really major changes in the language, minor for less earth-shattering changes”.


But when will we bump the major version? There is confusion around this. What exceptional, earth-shattering changes warrant a bump to 4? It comes up from time to time, but there’s little appetite for it and we don’t want to repeat 2-to-3. From the summit discussion:

“Python 3 is a brand at this point, and we should stick to it” said Guido van Rossum after sharing concerns that changes to the major version would break the ecosystem more than changes to the minor version. Others voiced concerns about changing the major version “3” including in the “python3” binary and for packaging such as “abi3” tag.

The proposal makes clear the major is always 3; there’ll be no Python 4.

Indeed, but this isn’t the only reason. We bump the minor every year without fail. We’re unlikely to bump the major. I propose we do something useful with the minor.

2 Likes