[Python-Dev] PEP 407 / splitting the stdlib (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Thu Jan 19 12:17:51 CET 2012


On Thu, 19 Jan 2012 11:03:15 +1000 Nick Coghlan <ncoghlan at gmail.com> wrote:

1. I believe the PEP currently proposes just taking the "no more than 9" limit off the minor version of the language. Feature releases would just come out every 6 months, with every 4th release flagged as a language release.

With the moratorium suggestion factored in, yes. The PEP insists on support duration rather than the breadth of changes, though. I think that's a more important piece of information for users.

(you don't care whether or not new language constructs were added, if you were not planning to use them)

I don't like this scheme because it tries to use one number (the minor version field) to cover two very different concepts (stdlib updates and language updates). While technically feasible, this is unnecessarily obscure and confusing for end users.

As an end user I wouldn't really care whether a release is "stdlib changes only" or "language/builtins additions too" (especially in a language like Python where the boundaries are somewhat blurry). I think this distinction is useful mainly for experts and therefore not worth complicating version numbering for.

2. Brett's alternative proposal is that we switch to using the major version for language releases and the minor version for stdlib releases. We would then release 3.3, 3.4, 3.5 and 3.6 at 6 month intervals, with 4.0 then being released in August 2014 as a new language version.

The main problem I see with this is that Python 3 was a big disruptive event for the community, and calling a new version "Python 4" may make people anxious at the prospect of compatibility breakage. Instead of spending some time advertising that "Python 4" is a safe upgrade, perhaps we could simply call it "Python 3.X+1"?

(and, as you point out, keep "Python X+1" for when we want to change the language in incompatible ways again)

So in August this year, we would release 3.3+12.08, followed by 3.3+13.02, 3.3+13.08, 3.3+14.02 at 6 month intervals, and then the next language release as 3.4+14.08. If someone refers to just Python 3.3, then the "at least stdlib 12.08" is implied. If they refer to Python stdlib 12.08, 13.02, 13.08 or 14.02, then it is the dependency on "Python 3.3" that is implied.

If I were a casual user of a piece of software, I'd really find such a numbering scheme complicated and intimidating. I don't think most users want such a level of information.

Regards

Antoine.



More information about the Python-Dev mailing list