Re: Finalizing Fedora's Switch to Python 3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 30 July 2017 at 10:02, Nick Coghlan <ncoghlan@xxxxxxxxx> wrote:

> Providing
> an unversioned "python" serves only to lure incautious programmers into
> using it where they should use a versioned name.

My aim is for folks to start thinking of a "/usr/bin/python" shebang
as being akin to writing "/bin/sh" instead of "/bin/bash": as the
author of the script, by deciding not to explicitly qualify your
shebang line you're saying "I'm not writing in either Python 2 *or*
Python 3, I'm writing in the hybrid subset of both of them". There
aren't many good reasons for a script in a distro package to do that
(they should just depend on the stack they want), but there are plenty
of good reasons for multi-distro scripts to be written that way.


If I am writing it as /bin/sh I am expecting that bash, zsh, etc are going to fall into POSIX conformant mode outlined many years ago. Then the script I run should work on everything from that SunOS-4.1.1 box needed for a 30 year old experiment or the brand new RHEL box. 

When that doesn't happen we normally see some person opening up bugs, complaining on lists and various other flames.  And the counter flames from people who are enjoying all the benefits of a newer shell that completely broke when /bin/sh was used versus /bin/bash or /bin/zsh. When a developer is working on bash, zsh internals they know that the /bin/sh must pass a set of standards set by some committee years ago. 

That last part is the issue missing here. Unless that gets decided, this problem is getting kicked down the road every time a major 'update' in syntax happens.

 

As time goes by, I'd expect the meaning of the unqualified variant to
shift slightly such that "/usr/bin/python" is taken to mean "written
in the oldest Python dialect that is still actively supported by
upstream and/or commercial vendors (or potentially even older than
that)" while "/usr/bin/python3" retains its current meaning of "run in
the default Python 3 stack" (with the two links thus becoming
functionally equivalent for systems that only have one Python stack
installed).

Cheers,
Nick.

--
Nick Coghlan   |   ncoghlan@xxxxxxxxx   |   Brisbane, Australia
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@lists.fedoraproject.org



--
Stephen J Smoogen.

_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux