----- Original Message -----
On Thu, Dec 04, 2014 at 12:51:40AM +1000, Nick Coghlan wrote:
>
> On 4 Dec 2014 00:38, "Bohuslav Kabrda" <bkabrda(a)redhat.com> wrote:
> > - (This is not really related to the switch, but more of a general
> > remark) In
> [4], it says that "python 3 version of the executable gains a python3-
> prefix".
> This is IMO bad, since upstream projects tend to name the versioned
> binaries
> "foo-3.4, foo-3" or "foo3.4, foo3". We should accept one of
these - I'm not
> really certain which one of them. I tried to discuss this several times on
> distutils-sig mailing list, but without reaching a consensus. Either way,
> prefixing with python3- doesn't make sense to me, because it's not similar
> to
> any upstream way and you don't find the binaries under their names using
> tab
> completion (e.g. foo<tab> doesn't tell you about python3-foo).
>
> Agreed.
>
> CPython & pip use the "foo3.4, foo3" convention, so that seems enough
of a
> reason to use that convention by default. We may want a "unless upstream
> does
> it differently" caveat though.
>
Second caveat here is that currently we use version suffixes to denote
a command coming from a compat package. If we make this change we need to
address that as well. So, you might have sphinx-build, sphinx-build-2,
sphinx-build-2.7, sphinx-build-3, and sphinx-build-3.4 for the python
interpreter. If you need a forwards or backwards compat package you might
also have an 0.9 and 1.1 that you need to tack on. Possible solution here:
use a "v" prefix for the compat package's version. So if the default
package is 1.1, you would have the python-sphinx0.9 and python3-sphinx0.9
packages provide:
* sphinx-build-v0.9
* sphinx-build-2-v0.9
* sphinx-build-2.7-v0.9
* sphinx-build-3-v0.9
* sphinx-build-3.7-v0.9
I'd rather see sphinx-build-v0.9-3.4. IMO keeping the Python version at the very end
in every case is better. In other words, the binary would normally be
"sphinx-build-0.9" and we just append "-3.4" to it.
Also, this makes me realize more arguments to append Python version with dash, not without
it:
1) sphinx-build-v0.93.4 would be very confusing (I do understand that this is a downstream
problem, but see the following point)
2) Similarly, if there is an upstream whose entry_point/script ends with a number (pep8
for example), it'd be highly confusing to use the notation without dash, it would
yield pep83.4 assuming the upstream community would accept this scheme. This feels just
wrong.
Also an addition: It would be great for us to always have a
"major version
number
only" script name. Currently there's a few packages (python3-nose, I'm
looking at you) that only provide the MAJOR.MINOR form ie: nosetests-3.4.
That means scripts (user scripts as well as spec files) have to change
whenever we update python3 to a new major release. Having the major only
form for all of these binaries will alleviate that. Packagers can just
create a symlink if upstrean doesn't provide the -MAJOR version.
I do agree that we should have that, although you can now use
nosetests-%{python3_version}.
> > - As for binaries/scripts in /usr/bin (assuming there are
both python2
> > and
> python3 versions), the unversioned files should point to python2 version.
> This
> aligns with /usr/bin/python still pointing to python2.
>
> This also aligns with CPython & pip conventions. Between them, only
> "pyvenv"
> runs under Python 3 by default, and that's only because it doesn't exist in
> Python 2.
>
One exception to this, I think, should be 2to3. Or perhaps python-tools
should stop shipping 2to3 and the other /bin/ scripts which python3-tools
ships and are not needed in two versions (Not sure if any of those scripts
actually need to be carried in two versions.. pygettext.py might need to be
tested to be sure the python3 version can handle all sorts of python2
strings correctly).
Agreed, it's been on my todolist for quite some time to make 2to3 from python3-tools
*the* 2to3.
-Toshio
--
Regards,
Slavek Kabrda