On Wed, 2018-05-23 at 08:30 -0700, Brian C. Lane wrote:
On Wed, May 23, 2018 at 02:55:40PM +0200, Jan Kurik wrote:
> = Proposed System Wide Change: Move /usr/bin/python into a separate
> package =
>
https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_sep
> arate_package
>
> === Motivation ===
>
> The meaning of the python command is ambiguous: it might mean
> either
> Python 2 or Python 3, depending on context. The upstream
> recommendation (PEP 394), which we try to follow in Fedora, is that
> users -- not distros, and not sysadmins -- should be in control of
> the
> python command.
I'm opposed to this change. I see no reason to complicate things
because
some other distributions (Arch) have inadvisedly redirected
/usr/bin/python to python3. This whole mess violates the principle of
least surprise -- as a user of python what do you expect
/usr/bin/pythong to do? You expect it to run the python2 interpreter.
Any 3rd party programs that users install will also expect this, so
this
change will cause their applications to fail.
I think the rules can be distilled down to this:
* New python2 programs use /usr/bin/python2
* New python3 programs use /usr/bin/python3
* Leave /usr/bin/python pointing to /usr/bin/python2 for legacy
programs
There is no good reason to make this change. Leaving it as it is now
doesn't break anything.
I agree. This is breaking working programs on purpose (again).
TL;DR: this proposal disregards a very important approach for
transitioning. Having a program that is compatible with Python2 *and*
Python3.
"Shebang -- a python story" (genre: drama, horror).
Preface: Python decides to depracate a wildly used, interpreted
language and force users to migrate to a different language
(the "new" version).
Act1: #!/usr/bin/python gets hijacked to either mean Python2 or
Python3. Python2-only users are advised to explicitly use
python2.
Problems:
- python2-only user are required to fix their working
programs.
- "python2" binary might not even be available
Act2: After users already accepted that /usr/bin/python means v2 or v3,
/usr/bin/python gets discourage or removed.
Btw, why was it then not left alone in the first place?
The major problem is, many projects still cannot afford to only target
v2 or v3. For example, RHEL7 is v2-only, F29 is (possibly) v3-only.
Migrating to v3 at once is easy. The problem for a project is to
supporting a variety of systems.
This becames a real problem, solely because python community pulls the
plug on python2 long before python3 is ubiquitously available. Yes,
Python3 is 10 years old, but still not everywhere.
A sensible approach for a project to solve this problem is to write in
a python2-and-3 compatible subset. But wbyen discouraging
"#!/usr/bin/python" it's not generally possible to find a suitable
interpreter.
Apologies for being snarky, but IMO the python transision is handled
badly.
have a nice day,
Thomas