Le 2012-09-13 00:18, Allan McRae a écrit :
On 13/09/12 10:00, Stéphane Gaudreault wrote:
Python 3.3.0 should be released around September 22. I would like to
take this opportunity to implement some of the recommendations of the
PEP 394 [1]. This PEP was mostly done in reaction to what Arch did to
the /usr/bin/python symlink (in summary, most python devs are against
the move to python3 as a default at this time).
In short:
python2 should refer to some version of Python 2.x
python3 should refer to some version of Python 3.x
python should refer to the same target as python2 but may refer to
python3 on some bleeding edge distributions
This means that we should never have a reference to '#!/usr/bin/python'
in any of our packages. All those reference should be changed to
/usr/bin/python2 to refer to Python 2.x and /usr/bin/python3 for Python
3.x. The idea here is that a system without any python symlink should
work without problem. Maybe namcap could be used to detect wrong shebang ?
This is necessary as far as I am concerned.
Another possibility, suggested by Allan, would be to go even further and
use /usr/bin/python3.3 and /usr/bin/python2.7 for all shebangs. Then
/usr/bin/python can point to any version and /usr/bin/python2 and
/usr/bin/python3 can point to any pyhton2.x and python3.x respectively.
These numbers in the shebangs will be changed when python bump is
version number as we need to rebuild almost everything anyway.
I'm leaning towards that being to much effort. Just using
python2/python3 should be enough.
One thing not mentioned in this email is that we really need to sort out
the package naming in the repos. Two options:
python-foo
python2-foo
or
python3-foo
python2-foo
I personally would go for the first option, under the assumption that
python4 will not exist for many years.
Allan
I did not mentioned the packages name because I am fine with the statu
quo on this. If there is a concensus that we want to change the naming,
I would suggest
- change the name of the python pkg -> python3
- Change the package names with the following structure:
pkgbase = python-something
pkgname = ('python2-something' 'python3-something')
- If a package only has python 2 or 3 version, it could follow a similar
structure :
pkgbase = python-something
pkgname = ('python3-something') OR pkgname = ('python2-something')
Stéphane