Python 3
John Barstow
jbowtie at amathaine.com
Thu Jun 24 23:11:23 BST 2010
On Fri, Jun 25, 2010 at 6:19 AM, Danny van Heumen
<danny at dannyvanheumen.nl> wrote:
> (Small disclaimer: I'm not that familiar with python, but am interested
> to learn and I think this thread is particularly interesting. The
> following question came to my mind. Okay, so it might be rubbish - if so
> just say it and I'll shut up :) ...)
>
> I'm wondering. If 2.4 <--> 3.1 is too broad to support, and 2.6 is
> better suited to convert to 3.x, since it supports some of the 3.x
> constructs.
>
Really what this tends to point up is the need to branch the code when
we decide we want to start supporting 3.x
If I were a theoretical release manager doing hypothetical releases, I
would imagine something like this (using inflated release numbers to
drive home the point this is just an example!):
bzr 4.4 - last release supporting python 2.4/2.5 - you won't be able
to upgrade anymore until you upgrade your python version.
bzr 4.6 - first release to support python 3.x using 2to3. Requires
minimum version of python 2.6
bzr 4.4.1 - point release of legacy branch where someone was paid to
backport a feature from 4.6
bzr 5.10 - last release with python 2.x support - you won't be able to
upgrade anymore until you upgrade your python version.
bzr 5.12 - first release without python 2.x support *at all*...
Honestly, there's no downside to saying that release X is going to
require Python 2.6; people who depend on an older version of python
just don't upgrade their installation of bazaar. Anyone sufficiently
motivated can backport code to the legacy branch (say, to accommodate
a new wire protocol), upgrade python without official distribution
support (you *can* compile python on a RHEL box when you need a newer
version!), or petition for a compatibility mode (please provide a bzr
2.2 server on legacy.launchpad.net, here's a bundle of money...)
Frankly, things like native NTLM support can't be integrated cleanly
while you support Python 2.4 (you need the MD4 support in the newer
hashlib module for the pure python implementation). As it is, last
time I checked Bazaar 1.6 was the only version available in any RHEL5
repository, so I'm not sure waiting for RHEL6 is really going to make
a difference.
So are we reluctant to drop Python 2.4/2.5 support because we have no
guarantee of backwards compatibility in the wire protocol and/or
branch format? I don't really see us dropping 2a support just because
we make a move to Python 2.6. Or would we lose major contributors who
are unable to upgrade their version of Python?
More information about the bazaar
mailing list