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