Shipping Python 3 on the 12.04 LTS CD

Registered by Barry Warsaw

This blueprint has been superseded. See the newer blueprint "Python 3 only on the 12.10 desktop CD" for updated plans.

Python plans for 12.04 LTS: Python 3.2 and 2.7 only. We dropped 3.1 in Oneiric and 2.6 in Precise. For 12.04 the goal is at least one desktop application destined for the default installation (i.e. CD images) to be ported to Python 3. Long term (14.04 LTS), we want Python 3.2 only on the CD, with 2.7 still available in main.

Blueprint information

Status:
Complete
Approver:
Steve Langasek
Priority:
High
Drafter:
Barry Warsaw
Direction:
Approved
Assignee:
Barry Warsaw
Definition:
Superseded
Series goal:
Accepted for precise
Implementation:
Started
Milestone target:
milestone icon ubuntu-12.04-beta-1
Started by
Barry Warsaw
Completed by
Barry Warsaw

Whiteboard

Work Items:
[allison] Move package dependency display script over to crontab: POSTPONED
[broder] Talk with ScottK and look into splitting python-qt4 by Qt modules (http://bugs.debian.org/535759): TODO
[barry] Jumpstart talks with upstream about namespace PEPs: DONE
[barry] Figure out how to improve sharing of generally useful 2to3 fixers or avoid 2to3: DONE
[jr] Work with barry and PyQt4 upstream about py3 port and QtDBus: DONE
[barry] bug #893091 (port dbus-python to python 3): DONE
[barry] Identify initial application to port: DONE
[barry] Port update-manager to Python 3: POSTPONED
[barry] Identify u-m Python dependency stack: DONE
[barry] research upstream Python 3 support for dependencies: DONE
[barry] python-boto, port or kill off: POSTPONED
[barry] dbus-python, make package available in PPA: DONE
[barry] dbus-python, upload python3 support to main: DONE
[kitterman] PyQt4, build and package Python 3 support: DONE
[barry] In PyQt4, add python3-qt4-dbus after dbus-python is done: DONE
[barry] gconf, port or kill it off: POSTPONED
[cjwatson] python-gnupginterface, port, or just call subprocess directly: POSTPONED
[barry] PyKDE4, build and package Python 3 support: POSTPONED
[barry] defer, request syncpackage latest from debian: DONE
[barry] aptdaemon, port to Python 3, submit upstream, and package: POSTPONED
[barry] python-apport, port to Python 3 and package: POSTPONED
[cjwatson] python-debian, port to Python 3 and package (patch sent to Debian but needs review): POSTPONED
python-mock, check upstream, package and/or port: DONE
[barry] python-feedparser, package Python 3 support: DONE
[barry] lsb-release, switch to `import platform`: POSTPONED
[barry] follow up w/piotr about python-multibuild status: DONE
[barry] wadllib, add python 3 packaging for new upstream release: DONE
[barry] update python-keyring to 0.7.1 (includes py3 support): DONE
[cjwatson] port oauth to python 3: POSTPONED

Precise notes: postponing all remaining work due to impending feature freeze and barry shifting gears to stable+1 maintenance. As time allows, I'll remark specific items as INPROGRESS and continue working on landing those changes upstream and in Debian. Porting u-m will continue in earnest for the Q-cycle.

update-manager is the selected application. Here is its (Python) dependency stack, with Python 3 status and some additional notes after chatting w/mvo.

- python-boto (maybe just for ec2 testing?)
  status: port needed
  mvo: can kill it off

- PyQt4
  status: python3-pyqt4

- gconf
  status: unknown
  mvo: kill it off

- python-gnupginterface
  status: port needed
  mvo: or just call subprocess directly
  mitya57: there's a more active project, and it supports python3: http://code.google.com/p/python-gnupg/

- PyKDE4
  status: Python3 port exists upstream - needs packaging, not sure why port to Qt?
  mvo: port to qt

- aptdaemon
  status: unknown
  mvo: waiting for dbus, upstream wants to port it
       * a really good start

- python-apport
  status: pitti says problem_report.py needs bytes/str fixes

- python-debian
  status: pending upstream review; http://bugs.debian.org/625509

- python-mock
  status: done by upstream/Debian in 0.7.2-1

- ??? check_new_release_gtk
  tests/test_end_of_life.py:31
  mvo: probably already dead

- mvo: maybe get rid of lsb-release in favor of `import platform`

- mvo: update-manager-text should die

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.