Python35Transition

Differences between revisions 2 and 3
Revision 2 as of 2015-07-01 15:47:51
Size: 1886
Editor: mail
Comment:
Revision 3 as of 2015-07-01 17:11:22
Size: 1979
Editor: mail
Comment:
Deletions are marked like this. Additions are marked like this.
Line 20: Line 20:
gnome-pkg-tools uses Python 3 only in its `pkg-gnome-compat-desktop-file` file, which isn't critical for pygobject. Current rebuild solution is to remove the `python3` and `python3-gi` Depends in pkg-gnome-tool's `debian/control.in` file, upload that, then rebuild pygobject, then re-upload a fixes pkg-gnome-tool. gnome-pkg-tools uses Python 3 only in its `pkg-gnome-compat-desktop-file` file, which isn't critical for pygobject. Current rebuild solution is to remove the `python3` and `python3-gi` Depends in pkg-gnome-tool's `debian/control.in` file, upload that, then rebuild pygobject, then re-upload a fixes pkg-gnome-tool.  Reported as Debian bug [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=790782|#790782]]

Python 3.5 Transition

For Ubuntu 16.04 LTS and Debian Stretch, we want to transition to Python 3.5 as the default (and possibly only) Python 3 version.

* Here is the announcement of the transition plan. * Here is a list of compatibility issues we've seen in the wild.

Other issues

There are some other interesting issues in performing this transition. Many packages haven't been built for a while, and just get copied to the new distro version's archive, so they are only rebuilt during transitional events such as this one. One of the most pernicious problems is circular dependencies. Because all packages in the cycle need to be rebuilt, we have to break the cycle with a temporary upload, and then re-enable the cycle causing problem. Ideally of course, there would be no cycles, but that's not what we see in practice.

Here are some cycles we've seen, along with how we broke them. The binary package is listed first, with the source package (where different) in parentheses.

python-sphinx (sphinx) -> python3-gi (pygobject) -> python3-cairo (py3cairo) -> python-sphinx

sphinx only needs python3-gi for the test suite, so the cycle was broken by disabling this particular test in the transitional upload to the rebuild PPA for sphinx. Dmitry Shachnev says "Search for 'jstest' in debian/rules and comment out that line".

python3-gi (pygobject) -> gnome-pkg-tools -> python3-gi

gnome-pkg-tools uses Python 3 only in its pkg-gnome-compat-desktop-file file, which isn't critical for pygobject. Current rebuild solution is to remove the python3 and python3-gi Depends in pkg-gnome-tool's debian/control.in file, upload that, then rebuild pygobject, then re-upload a fixes pkg-gnome-tool. Reported as Debian bug #790782

Python/Python35Transition (last edited 2015-07-15 15:25:14 by mail)