How do we get to Python 3 and do we go through 2.7 first?

Python 2.7 is supposed to be released in June 2010 We should probably at least have python2.6 and python2.7 available in M.

  • Debian feature freeze is soon, not an option for them to have 2.7 available.
  • Introducing 2.7 as an available version but not the default is less work, but results in larger packages and deleting things from the CD.
  • Intermediate option is to make 2.7 available but not a supported version so that none of the packages bloat. Current scheme is that packages are built for all supported versions, can't build for a subset.
  • There is a plan for a rebuild test with 2.7
    • just a rebuild doesn't guarantee working
    • there is a test to import every single module
  • Why is 2.7 important?
    • significant testing library improvements for app developers
    • additional tools for helping with 2->3 transition

  • If we do a transition it should complete before feature freeze
  • criteria for 2.7 being a supported version in M is
    • ACTION: 100% rebuild success rate at feature freeze
    • ACTION: should evaluate size change due to extensions being built twice. Look at all CD flavors and count all python extensions and estimate size increase.
  • criteria for 2.7 being default in M is
    • have the same tests pass w/ 2.7 as default as today pass w/ 2.6

Python 3

  • We will need to support Python 2 in next LTS release
  • Will have a separate Python 3 stack, separate from Python 2, rather than instead of
  • Goal - have the desktop move to Python3 first. One benefit would be the whole desktop becoming UTF-8 compliant.
    • critical packages to accomplish this: gnome libraries. Port PyGI to python3. Move python2 applications to use PyGI.
    • ACTION: generate list of python applications that would need to be ported to python3 in order for python2 to be dropped from the CD. Not all flavors of Ubuntu will move at the same time, so for applications that appear on multiple flavors, they will need to support both 2 and 3.
  • Probably need separate binary packages, since otherwise you often need to duplicate the source as well as the extension modules.
    • some manual work to update control file deps, etc
    • some overhead in having more packages available
    • smaller individual packages, important for ISOs
  • We are being quite conservative with python2.6 for M, why not be more adventurous with python3 and ship 3.2beta1 instead of 3.1 for M (and pre-plan for updating to 3.2final post release), with goal of Python3.2 on desktop in 11.04
    • ACTION: Engage with python-dev upstream and PyGTK (bindings developers) to determine appetite for this plan.
  • There are some interlinking dependencies between (k)ubuntu-desktops such as usb-creator where the desktop apps are different but have a shared backend.
  • Try for desktop in Python3 for 11.04, because we are shooting for Python3 being default in 12.04 (next LTS)


MaverickMeerkat/TechnicalOverview/Python/Versions (last edited 2010-05-24 19:01:47 by barry)