Python

Differences between revisions 1 and 2
Revision 1 as of 2010-05-17 14:14:16
Size: 5753
Editor: 216-15-33-194
Comment:
Revision 2 as of 2010-05-17 15:28:40
Size: 5877
Editor: 216-15-33-194
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Meerkats and Pythons are best friends, and this page is the central place to go to follow how well the two will get along for Ubuntu 10.10. We had several sessions at [[UDS-M]] concerning our plans for Python in Meerkat; see below for links to the relevant blueprint pages. We'll summarize the decisions here, and track progress for the community on these pages. Note that since these decisions also impact Debian, folks from that community are welcome to participate as well. Meerkats and Pythons are best friends, and this page is the central place to go to follow how well the two will get along for Ubuntu 10.10. We had several sessions at [[UDS-M]] concerning our plans for Python in Maverick; see below for links to the relevant blueprint pages. We'll summarize the decisions here, and track progress for the community on these pages. Note that since these decisions also impact Debian, folks from that community are welcome to participate as well.
Line 19: Line 19:
There are several competing views on which versions of Python should be included in Meerkat. OT1H, Lucid was an LTS, so we should be bold (some would say "maverick") in our choices now to blaze a trail for future releases. OTOH, we need to consider the impact of our choices on Debian and ensure that we don't just dump a bunch of work on their lap. My own view is that we should lead an aggressive charge to the latest versions of Python for Meerkat, but we should back that up with lots of testing and data gathering so we will have a high degree of confidence of success, both for Ubuntu and Debian. There are several competing views on which versions of Python should be included in Meerkat. OT1H, Lucid was an LTS, so we should be bold (some would say "maverick") in our choices now to blaze a trail for future releases. OTOH, we need to consider the impact of our choices on Debian and ensure that we don't just dump a bunch of work on their lap. My own view is that we should lead an aggressive charge to the latest versions of Python for Maverick, but we should back that up with lots of testing and data gathering so we will have a high degree of confidence of success, both for Ubuntu and Debian.
Line 21: Line 21:
''Ideally'', Meerkat would support Python 2.6, 2.7, and 3.2 (beta), with Python 2.7 as the default. Python 2.7 is [[http://www.python.org/dev/peps/pep-0373/|currently schedule for final release]] on July 3, 2010, which should fit in nicely with the 10.10 release cycle, though the exact details of the latter are [[https://undacuvabrutha.wordpress.com/|still being determined]]. Python 3.2 will not reach [[http://www.python.org/dev/peps/pep-0392/|final release]] until after 10.10 is released, but it will be in beta by then and we can issue SRUs to get Ubuntu on Python 3.2 final when it's ready. '''Ideally''', Maverick would support Python 2.6, 2.7, and 3.2 (beta), with Python 2.7 as the default. Python 2.7 is [[http://www.python.org/dev/peps/pep-0373/|currently schedule for final release]] on July 3, 2010, which should fit in nicely with the 10.10 release cycle, though the exact details of the latter are [[https://undacuvabrutha.wordpress.com/|still being determined]]. Python 3.2 will not reach [[http://www.python.org/dev/peps/pep-0392/|final release]] until after 10.10 is released, but it will be in beta by then and we can issue SRUs to get Ubuntu on Python 3.2 final when it's ready.  (We should get pre-approval for these SRUs.)
Line 29: Line 29:
The current plan is to utilize existing infrastructure, and build new infrastructure where necessary, to heavily test the transition to Python 2.7 and 3.2, and to gather data to guide the final decision. Our guiding principle: if we can demonstrate 100% build and import success on Python 2.7 before Meerkat feature freeze, then we will make the switch. If not, then still the effort is not wasted as we'll make the switch for Meerkat+1. It is vitally important than any and all changes necessary to get to 100% success be pushed as far upstream as possible, i.e. to the upstream packages and to Debian. Debian is expected to enter freeze possibly by June 2010, so Python 2.7 is not an option for them. However, if we can lead the effort, provide metrics, and push changes upstream, we can greatly reduce the impact on them for their next release. The current plan is to utilize existing infrastructure, and build new infrastructure where necessary, to heavily test the transition to Python 2.7 and 3.2, and to gather data to guide the final decision. Our guiding principle: if we can demonstrate 100% build and import success on Python 2.7 before [[https://wiki.ubuntu.com/MaverickReleaseSchedule|Maverick feature freeze]] on August 12, 2010, then we will make the switch. If not, then still the effort is not wasted as we'll make the switch for Maverick+1. It is vitally important than any and all changes necessary to get to 100% success be pushed as far upstream as possible, i.e. to the upstream packages and to Debian. Debian is expected to enter freeze possibly by June 2010, so Python 2.7 is not an option for them. However, if we can lead the effort, provide metrics, and push changes upstream, we can greatly reduce the impact on them for their next release.

The Maverick Meerkat Big Python Page

Meerkats and Pythons are best friends, and this page is the central place to go to follow how well the two will get along for Ubuntu 10.10. We had several sessions at UDS-M concerning our plans for Python in Maverick; see below for links to the relevant blueprint pages. We'll summarize the decisions here, and track progress for the community on these pages. Note that since these decisions also impact Debian, folks from that community are welcome to participate as well.

Blueprints

Here are links to the relevant blueprints discussed at UDS-M. Note that due to scheduling issues, several smaller blueprints were combined but we'll likely track progress in the individual blueprints. Everything's linked so you should be able to find what you're looking for. The schedule blueprints contain a gobby transcription of the session, and of course, the sessions were recorded and should be available online if you want to watch them (link?).

Python versions

There are several competing views on which versions of Python should be included in Meerkat. OT1H, Lucid was an LTS, so we should be bold (some would say "maverick") in our choices now to blaze a trail for future releases. OTOH, we need to consider the impact of our choices on Debian and ensure that we don't just dump a bunch of work on their lap. My own view is that we should lead an aggressive charge to the latest versions of Python for Maverick, but we should back that up with lots of testing and data gathering so we will have a high degree of confidence of success, both for Ubuntu and Debian.

Ideally, Maverick would support Python 2.6, 2.7, and 3.2 (beta), with Python 2.7 as the default. Python 2.7 is currently schedule for final release on July 3, 2010, which should fit in nicely with the 10.10 release cycle, though the exact details of the latter are still being determined. Python 3.2 will not reach final release until after 10.10 is released, but it will be in beta by then and we can issue SRUs to get Ubuntu on Python 3.2 final when it's ready. (We should get pre-approval for these SRUs.)

In order to get there we need to know how Python 2.7 will impact the main and universe packages that depend on Python 2. What impact will switching to 2.7 have on packages that are currently ported to Python 2.6? A first place to start is with the What's New in Python 2.7 document. My initial scan of this indicate there might be a couple of small incompatibilities, but it should be nowhere near the difference moving from Python 2.5 -> 2.6. Remember that Python 2.7 is the last scheduled release of the Python 2 series, so it should be quite stable, backward compatible, and well supported for many years to come.

Because there are still few packages written and compatible with Python 3, we think moving to Python 3.2, while aggressive, is pretty safe and is in the best interest of developers, by providing the latest and greatest Python 3 version to encourage development and porting activities. Python 3 is clearly the future as far as upstream is concerned, and we want Ubuntu to be leading the charge.

Testing

The current plan is to utilize existing infrastructure, and build new infrastructure where necessary, to heavily test the transition to Python 2.7 and 3.2, and to gather data to guide the final decision. Our guiding principle: if we can demonstrate 100% build and import success on Python 2.7 before Maverick feature freeze on August 12, 2010, then we will make the switch. If not, then still the effort is not wasted as we'll make the switch for Maverick+1. It is vitally important than any and all changes necessary to get to 100% success be pushed as far upstream as possible, i.e. to the upstream packages and to Debian. Debian is expected to enter freeze possibly by June 2010, so Python 2.7 is not an option for them. However, if we can lead the effort, provide metrics, and push changes upstream, we can greatly reduce the impact on them for their next release.

Coordination

Where best to discuss and coordinate this ongoing work? Because of the reach to both Debian, and the upstreams of Python and the individual packages, there does not seem to be a good, single place to discuss this work. Here are some options and communities I plan on engaging:

If you can think of any additional (or better) places to discuss this work, please add it here.

MaverickMeerkat/TechnicalOverview/Python (last edited 2010-05-24 19:07:40 by 216-15-33-194)