Let's make a plan for python3.0 in Fedora 10+

James Antill james.antill at redhat.com
Mon Jun 2 14:45:42 UTC 2008


On Sun, 2008-06-01 at 17:36 -0400, Jeremy Katz wrote:
> Toshio Kuratomi wrote:
> > The python programming language is going to be releasing a new version 
> > sometime around the time of the Fedora 10 release.  Unlike past 
> > releases, this one will have wide-spread backwards incompatibility in 
> > the python language itself.  We need to think about how we want to pull 
> > the new language into the distribution and porting of existing 
> > apps/modules.  Here's a proposal to start us off but I hope geppetto 
> > (the python maintainer) and ivazquez (who maintains python3.0 packages 
> > in his spare time[1]_) will weigh in with their thoughts.
> 
> So, while this is a large and incompatible change, there are lots of 
> other large and incompatible changes that we've managed over the years. 
>     And in most of those, we've been far better off with actually making 
> a transition rather than trying to keep two different things around.

 While you obviously have more direct experience than I, can you think
of a case where a change was this large and incompatible?

> This is even _more_ true with things which are a framework that lots of 
> other packages provide modules for -- things like apache, perl, python, 
> and more.  So in contrast, I think that we should evaluate python 2.6 
> for Fedora 10 (it seems reasonable, but I will defer to the current 
> python maintainer's judgement :-).

 I completely agree.
 In theory the change will be smaller and less incompatible if you first
port to the subset of python-2.6.z that is most compatible with
python-3.y.z, however I've not seen anyway to test that you've
successfully done this apart from inspecting the code by hand.

>   And the move to python 3.0 will need 
> to wait until there's either
> a) sufficient reason for us to do a lot of legwork to get there or
> b) enough upstreams are "buying in"
> 
> > * python3000 modules should have a separate namespace from python2.x 
> > modules.  The packaging committee will need to decide on that 
> > (python3-foo, python3000-foo, python3k-foo are possibilities. 
> > python3.0-foo should not be considered as 3.x versions should not have 
> > the same backwards incompatibilities that 2.x->3.x has.)
> 
> Except that many python modules are just included in with packages or in 
> the same source tree.  This then ends up with a need to build multiple 
> versions of python modules and that way lies massive amounts of pain. 
> It was a huge enough pain for just a very small number of modules in the 
> python 1.5 -> python 2 transition.  With the vastly greater number of 
> modules these days, it becomes far far more difficult.

 Right, all of the bindings will be a big pain point (does swig support
py3k yet?).
 Also having every package that uses python be renamed from foo to
py3k-foo is horrible ugliness we'll have to live with forever.

> > * Porting to python3000 will occur at some point but that should be a 
> > post-Fedora 10 feature that we decide on after python-3.0 final has been 
> > released.  We will also need to discuss whether to port our tools 
> > piecemeal or altogether at that time and to what extent (if any) we will 
> > allow splitting from any upstreams that only support python-2.x.
> 
> It's not as simple as that.  What happens if (just to make up an 
> example), anaconda and rhpl move to python 3 but no other tools do? 
> Especially given that other tools depend on rhpl.  Either a) the other 
> tools have to be ported or b) multiple copies of the same code have to 
> be maintained.  The latter is filled with losing.  The former is 
> plausible, but it is going to be a big effort and we have to 
> consistently commit to it across the board.

 Probably the most interesting python application is yum, as if it
breaks you can't easily update/install to fix anything, and it currently
depends on:

pygpgme              - binding
python-iniparse
rpm-python           - binding
urlgrabber
yum-metadata-parser  - binding

...now all of those and yum need to move to the "py3k language" as one
unit, and as far as I can see there's no way we can do that
automatically without renaming everything (at which point we don't need
to).

-- 
James Antill <james.antill at redhat.com>
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.fedoraproject.org/pipermail/devel/attachments/20080602/ea1cef06/attachment.bin 


More information about the devel mailing list