[Python-Dev] Py 3.6 on Ubuntu Zesty

Barry Warsaw barry at python.org
Tue Feb 7 17:38:43 EST 2017


On Feb 07, 2017, at 02:15 PM, Mike Miller wrote:

>Does anyone know why Python 3.6 is not the default Python 3 under the
>upcoming Ubuntu Zesty, or what may be holding it back?

I guess that would be me. :)

>Is there anyone that could give it a nudge?  It's in the repos but not as
>python3:
>
>http://packages.ubuntu.com/zesty/python3
>http://packages.ubuntu.com/zesty/python3.6

I posted about this on the ubuntu-devel mailing list:

https://lists.ubuntu.com/archives/ubuntu-devel/2017-January/039648.html

It's in the Zesty (and actually Yakkety) archives so that we can do the test
rebuilds described in the above message.  But it's not yet a "supported"
version, which means that while most pure-Python third party modules should be
importable, anything with an extension module will not be.  On Debian and
derivatives, we share what is essentially site-packages among all *installed*
versions of Python 3, which doesn't necessarily mean that those packages will
work, but they should be available on the import path with no extra work.
Packages may still need to be functionally ported to Python 3.6 of course.

However, because extension modules need to be recompiled by the Ubuntu build
daemons, they only get done for "supported" versions.  That term has a
specific meaning in the Debian Python packaging sense, but I don't think the
details are important (ask if you're interested).

"Supported" is a step before "default", which is where we change the
/usr/bin/python3 symlink.  This step does not require an archive rebuild.
Still for now you can `apt install python3.6` and run it via
/usr/bin/python3.6 with the above caveats of course.  It's functional enough
to build venvs (you might want the python3.6-venv package), and tox will work,
so it's everything folks should need to do porting work.

Here's another page collecting some information:

https://wiki.ubuntu.com/Python

With a 9-12% build failure (again, forgetting about whether the packages
actually work), it's enough that given where we are in the cycle, supporting
Python 3.6 is not feasible.  Debian Stretch just entered freeze so any work we
do in Ubuntu to make packages Python 3.6 compatible will eventually have to be
synced back to Debian, since they can't be uploaded there directly until
Stretch is released.  Zesty itself enters feature freeze on Feb 16, so that's
another looming deadline on the amount of work we can accomplish this cycle.

My plan is to enable Python 3.6 as a supported version early in the Zesty+1
cycle, hopefully before the first archive rebuild.  I don't know whether
Stretch will be released by then, but we'll deal with as we have before if
that's the case.  In the meantime, this should give upstreams a couple of more
months to continue to port, and it will give us a full cycle to work on
porting packages in Ubuntu.  I plan for 18.04 LTS to ship only Python 3.6
(similarly for Debian Stretch+1).  Dropping Python 3.5 does require an archive
rebuild, but it's much less risky than adding a new version.

The best way to help right now is to work with upstreams to port to Python 3.6
if necessary.  You can see our test rebuild results here:

https://launchpad.net/~pythoneers/+archive/ubuntu/python-rebuilds/+packages

Anything with a red X means the package failed to build.  That usually flexes
at least the upstream's own unittests, but there may be deeper issues and
other tests that fail, which may or may not hold up individual packages, and
anything that depends on them.

The Fedora/RH ecosystem probably has their own list, which I'd expect to
mostly overlap with ours, but I don't have those links handy.

Cheers,
-Barry


More information about the Python-Dev mailing list