[Python-Dev] Re: Stability and change (original) (raw)

Guido van Rossum guido@python.org
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 "experimental".

I'm moving the discussion to python-dev, since that's where I think it belongs.

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:

"""
Prohibitions

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 do so.

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:

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/)