On Thu, 2008-05-29 at 21:17 -0700, Toshio Kuratomi wrote:
The python programming language is going to be releasing a new version sometime around the time of the Fedora 10 release. Unlike past releases, this one will have wide-spread backwards incompatibility in the python language itself. We need to think about how we want to pull the new language into the distribution and porting of existing apps/modules. Here's a proposal to start us off but I hope geppetto (the python maintainer) and ivazquez (who maintains python3.0 packages in his spare time[1]_) will weigh in with their thoughts.
.. _[1]: http://ivazquez.fedorapeople.org/packages/python3000/
== Proposal ==
- We should review and add the python3000 package to Fedora devel ASAP
so people can work out any bugs with the packaging before F10 release.
Agreed... but I'm obviously biased ;)
- python3000 will not be in the default install for F10. It should not
conflict in any way with the python-2.x package we ship. We should not port our system tools (system-config-*, anaconda, yum, etc) to python3000 for F10.
Agreed. Instead, we should work on porting them to at least 2.6 (if not 3.0 outright) for F11.
- In F10 modules should not be shipped for python3000 unless upstream is
taking patches for python3000/has a python3000 compatible release branch.
Agreed. We don't want the burden of maintenance.
- python3000 modules should have a separate namespace from python2.x
modules. The packaging committee will need to decide on that (python3-foo, python3000-foo, python3k-foo are possibilities. python3.0-foo should not be considered as 3.x versions should not have the same backwards incompatibilities that 2.x->3.x has.)
Agreed. I started using "python3000-" myself, but I'm flexible.
== Rationale and Notes ==
- python3000 is backwards incompatible with python2.x. Unicode strings,
print becoming a function, exception changes, removal of old-style classes, and many other changes will prevent nearly all python2.x programs and modules from functioning in python3000 without source code changes. In this way, it is practically a new language.
To be clear, it will be incompatible with Python 2.5 or earlier. Python 2.6[1] is a way station between 2.5 and 3.0, and can be used to help any porting efforts.
[1] http://docs.python.org/dev/whatsnew/2.6.html