Friday 4 September 2015

Python 3.5 transition update

Here's an update on the Python 3.5 transition ongoing in Wily. To summarize,
in 15.10, we have enabled Python 3.5 as a supported Python 3 version, with
Python 3.4 still as the default. Early in X we plan on switching to Python
3.5 as the default and at some point dropping Python 3.4. We currently plan
on only carrying Python 3.5 into the next LTS.

For the most part, code that's compatible with Python 3.4 should work with
Python 3.5 but there are a few gotchas to watch. The ones I've seen in the
wild in the Ubuntu and Debian archives (as well as my own upstreams) are
summarized here:

https://wiki.python.org/moin/PortingToPy3k/34to35

That's not everything that might trip you up, but it's a good start. Don't
forget that Python 3.5 final is scheduled for release in just 9 days, and I
expect that to be met. Doko will likely upload 3.5 final to Wily when it's
released.

https://www.python.org/dev/peps/pep-0478/

How does Ubuntu look currently? Of course, the Wily archive has full details,
with Python 3.5 as supported, but we also have a PPA that is tracking package
builds with Python 3.5 as default. Full details are available here:

https://launchpad.net/~pythoneers/+archive/ubuntu/py35asdefault/+packages

We're especially interested in the status of packages seeded in ubuntu,
ubuntu-core, ubuntu-desktop-next, ubuntu-server, and ubuntu-touch. The
following summary report[*] shows FTBFS in these seeds, and also the other
*buntu flavors, as shown by seeded-in-ubuntu(1). Bugs have been assigned to
all FTBFS, and manually attached here.

Not all FTBFS are Python 3.5-as-default related. Some package haven't been
rebuilt in a while and would fail in Wily anyway, for various reasons. See
the bugs for details. Some packages upstream are still not compatible with
Python 3.5.

If you have expertise or interest in any of these packages, or are just
looking to help with the health of the archive, or the coming LTS plans for
Python, please get in touch! Follow up here, or ping me in IRC (nick: barry).

Enjoy!
-Barry

Overall PPA success rate: 943 of 1089 - 86.59%

Seeded packages requiring a fix:
autopilot 1.5.1+15.10.20150902.1-0ubuntu1 Failed to build
LP: #1488715
FTBFS in PPA only due to testtools in PPA failures

boost1.58 1.58.0+dfsg-0ubuntu5 Build for superseded Source
It actually builds, though it registers as a failure due to "Build for
superseded Source".

checkbox 0.18-0ubuntu2 Failed to build
LP: #1491590

deja-dup 34.0-1ubuntu3 Failed to build
FTBFS in PPA only due to libunity rebuilt in PPA FTBFS.

genshi 0.7-3 Failed to build
LP: #1492359 - in progress in Debian

libunity 7.1.4+14.10.20140808-0ubuntu1 Failed to build
LP: #1491542
Built in archive, would actually fail if rebuilt.

ply 3.4-5 Failed to build
LP: #1491620

pyjunitxml 0.6-1.1build1 Failed to build
LP: #1491635

python-babel 1.3+dfsg.1-5 Failed to build
LP: #1491878

python-cliff 1.13.0-0ubuntu1 Failed to build
LP: #1491888

python-django 1.7.9-1ubuntu4 Failed to build
Requires Django 1.8 transition, which we won't get to in Wily. We should
just version pin << 3.5 for any Django package needing rebuilds.

python-testtools 1.4.0-0ubuntu1 Failed to build
LP: #1491874 and LP: #1488710
Would FTBFS in main archive if rebuilt. Upstream 1.8.0 doesn't help.

ubiquity 2.21.27 Failed to build
LP: #1492261

ubuntu-push 0.68+15.10.20150814.1-0ubuntu1 Failed to build
LP: #1475612

unity-scopes-shell 0.5.5+15.10.20150826-0ubuntu1 Failed to build
LP: #1492287

Additional FIXME report for seed edubuntu
cssutils 1.0-2 Failed to build
LP: #1492289

gramps 4.2.0~dfsg-1 Failed to build
LP: #1492304

pykde4 4:4.14.2-0ubuntu4 Failed to build
LP: #1492332

Additional FIXME report for seed kubuntu
kubuntu-driver-manager 15.04ubuntu3 Failed to build
LP: #1474539

pykde4 4:4.14.2-0ubuntu4 Failed to build
LP: #1492332

Additional FIXME report for seed xubuntu
menulibre 2.1.0-0ubuntu1 Failed to build
LP: #1492353

mugshot 0.2.5-1 Failed to build
LP: #1492355


[*] Generated by this script:
https://git.launchpad.net/~barry/+git/ppascripts/tree/ppa-status