[Python-Dev] Re: Stability and change
Guido van Rossum
Sat, 06 Apr 2002 10:48:19 -0500
On c.p.py, Alex Martelli wrote:
> Linus Thorvalds seems to have done pretty well with picking TWO
> middle grounds -- two parallel tracks for Linux, "stable" and
I'm moving the discussion to python-dev, since that's where I think it
Personally, I hate the way Linux releases are numbered (I can never
tell which one is stable and which one isn't). But I could get used
to it if we used the micro version number to indicate stability -- in
particular, 2.2 would be experimental, and 2.2.1 and following would
be stable; 2.3 would be experimental, and 2.3.1 stable.
This would require only a very slight change of policy: PEP 6 would
have to be renamed from "Bug Fix Releases" to "Stable Releases". It
wouldn't even have to loosen up its prohibitions; quoting:
Patch releases are required to adhere to the following restrictions:
1. There must be zero syntax changes. All .pyc and .pyo files
must work (no regeneration needed) with all patch releases
forked off from a feature release.
2. There must be zero pickle changes.
3. There must be no incompatible C API changes. All extensions
must continue to work without recompiling in all patch releases
in the same fork as a feature release.
Breaking any of these prohibitions requires a BDFL proclamation
(and a prominent warning in the release notes).
This doesn't prevent us to evolve the standard library. It doesn't
prohibit adding new built-in functions, although I'd be reluctant to
It would, however, require a big change in how we present new releases
to the world. Currently, Once 2.x is out, anything running 2.(x-1) is
labeled obsolete, or at least oldfashioned. That needs to change!
The website needs to present at least two options:
- Bleeding edge (e.g. 2.3 alpha, or 2.3 once it's out)
- Stable (e.g. 2.2.1)
There may be more options: Zope 2 currently requires 2.1.2 and will
require 2.1.3 as soon as it's out; other people still swear by 1.5.2.
(I don't think that the 1.6 and 2.0 lines are still popular.)
--Guido van Rossum (home page: http://www.python.org/~guido/)