[arch-dev-public] [RFC] Python 3.3.0 and PEP 394

Rashif Ray Rahman schiv at archlinux.org
Fri Sep 14 09:00:14 EDT 2012


Xyne didn't appear to have write access so passing on his message as follows:

---------- Forwarded message ----------
From: Xyne <xyne at archlinux.ca>
Date: 14 September 2012 19:57
Subject: Re: [arch-dev-public] [RFC] Python 3.3.0 and PEP 394


Rashif Ray Rahman wrote:

>Good one, we must provide for that. Nevertheless, what I meant was
>_not_ to have:
>
>python-qt
>python2-qt
>python-gtk
>python2-gtk
>
>But to have:
>
>pyqt
>python2-pyqt
>pygtk
>python2-pygtk
>
>As we have now. Prepending 'python' everywhere is fine, as long as the
>'pyX' name remains. Now the ideal scenario would be:
>
>John: Fetch me 'pyalpm'
>Pacman: Do you want python(3)-pyalpm or python2-pyalpm?
>
>Now that I look at it that way prepending 'python' would be better.


I also think that prefixing "python" in all cases makes sense. The prefix
indicates that it is a library/module in our naming scheme and omitting it even
in the case of naming redundancy (e.g. python-py*) creates exceptions to an
otherwise uniform rule.

I also strongly support the idea of using

python3-foo
python2-foo

even if Python 4 may be a long way off. It is a consistent naming scheme that
is completely unambiguous and it will avoid considerable hassle when Python 4
is finally released.

I think simple rules should be preferred and in the case of python
libraries/modules the simplest one is this:

python<version>-<project name>

e.g. "python3-pyalpm"

Both the version and project name are clear, and it is fully searchable with
Pacman.

When a user is looking for a Python package, the user is not looking for a
given project but rather a specific implementation of that project that is
compatible with their own project. The user doesn't just want "foo", the user
wants an implementation of "foo" in e.g. Python 3. It does indeed make sense to
ask the user which version he wants (python2-foo or python3-foo?).

The last argument that I have for always including the version number in the
"python" prefix is that Python 2 and Python 3 are effectively different
languages. There should be a unique prefix associated with each language for
consistent naming, and that prefix should be permanent to avoid compatibility
issues in the future. "python3-" clearly indicates that the package is for the
Python 3 language. "python-" is a much more nebulous term that simply indicates
that the package is for some version of Python that depends on when the package
was created.

The KISS approach here comes at the cost of a single character ('3') in
some package names. Given all the hassle that it saves, I think it is clearly
worth a few hundred bytes.

Regards,
Xyne
---------- Forwarded message ----------


--
GPG/PGP ID: C0711BF1


More information about the arch-dev-public mailing list