Analysis of Python 2.7 support in Natty

Scott Kitterman ubuntu at kitterman.com
Fri Feb 4 21:04:26 UTC 2011


On Thursday, February 03, 2011 03:56:00 pm Barry Warsaw wrote:
> I've tried to send this to the list several times, but it hasn't gone
> through. I received no responses, but now at least I'm glad to know that
> it wasn't y'all ignoring me, just lists.ubuntu.com. ;) Let's see if I've
> cleared up my mail issues...
> 
> Rather than resend, I'll just summarize the current state as I know it.
> 
> Over the last couple of weeks, I did some analysis on the archive, looking
> for packages that depend on Python, but didn't include Python 2.7 support.
>  I wrote some scripts at lp:~barry/+junk/pydeps and specifically the
> deps2.py script.
> 
> While the script isn't perfect, I think it's good enough to determine where
> we are with main.  The script produces a few false positives, but from
> spot checking the output, I found no false negatives.  The summary is that
> right now, I know of no packages in Natty main that explicitly depend on a
> Python < 2.7.  There are a few that depend on > Python 2.6; that's not
> ideal, but I think it's fine, and possibly moot (see below).
> 
> (The first time I tried to send this message on 2011-01-24, there were a
> few packages that were broken but AFAIK, all have been fixed now.)
> 
> I have not done a similar analysis on universe.
> 
> This is just the first level of Python 2.7 support analysis.  The next test
> I ran was to actually install in a Natty VM all main packages that depend
> on Python, looking for failures-to-install.  A recent example was bug
> 685476 on mgltools-viewerframework.  This included an assignment to
> __debug__ as an attribute of an object, which is not allowed in Python 2.7
> (it wasn't strictly legal in 2.6 either, but the interpreter did not
> prevent it until 2.7).  These are the kinds of bugs you can only find when
> you install the package because they only show up when the modules are
> byte-compiled.
> 
> Since my first attempt at emailing this summary, I've fixed a number of
> packages that had these kinds of install-time failure.  Examples included
> kubuntu-full, python-avogadro, python-qscintilla2, and python-vigra (since
> demoted by Colin).  As of today, all have been fixed and are now
> installable.
> 
> It's still possible that packages have incompatibilities with Python 2.7,
> but you can only find them when you use the code, and that's not something
> I can reasonably test.  So, if you encounter bugs related to Python 2.7
> support, please file them as usual against the offending package, and add
> the official 'python27' tag to the bug.
> 
> So now that Natty main support for Python 2.7 looks pretty good, the
> question is: do we drop Python 2.6 from Natty?
> 
> Pro-removal:
> 
>  * It reduces the CD space requirements by including only one shared
> library per extension module.  I forget exactly how much can be reclaimed,
> though IIRC doko posted some numbers on that (10MB or thereabouts?).
>  * Makes our life simpler by only having to support one Python 2 version
> from here on out, and that being the one supported by upstream Python long
> term.
> 
> Con-removal:

I understand why Canonical cares about Launchpad and how easily it can be 
upgraded to 12.04 when the time comes.  They solved this with a PPA for 
upgrade to 10.04 and I think that's a sufficient solution.  I don't think we 
need to concern ourselves with it.

The much bigger con is that we don't know how well Python 2.7 is really going 
to work.

 - The package update analysis for Universe/Multiverse is incomplete at best.
 - Even if packages build, we don't know what runtime issues they will have 
until users have used them a bit.
 - Debian has not even started to transition to 2.7 (except a very limited 
number of packages in experimental) and so we don't have the benefit of their 
work on the transition.

The major benefit associated with removal is getting a little CD space back.  
Since all the ISOs are down to where they fit without this, I think we 
shouldn't worry about it so much for this cycle.  I'm all for dropping it 
early (like during the toolchain phase) of Natty +1, but I don't see much in 
the way of benefit with removal now while I do see significant risks.

Scott K



More information about the ubuntu-devel mailing list