Hi all,
It seems the current python modules naming guideline is ambiguous, different package maintainers use different naming conventions. It have also caused much controversy between submitter and reviewer which is just a waste of time, so I think it's worth to write a new python/python3 modules naming guideline for fedora. The purpose of this discussion is decreasing inconsistent package names of python modules in fedora. Personally, I don't mind how to name a package in fedora as long as the naming guideline is clear and won't create much divergence.
e.g. 1. https://bugzilla.redhat.com/show_bug.cgi?id=603245 The module name for this package is zmq, the tarball name for this package is pyzmq. The submitter determined to use python-zmq as the pkgname, however there are some other choice for the pkgname(e.g. pyzmq, python-pyzmq)
2. https://bugzilla.redhat.com/show_bug.cgi?id=623425 The module name for this package is Pyside, the tarball name for this package is pyside. The submitter determined to use python-pyside as the pkgname, however there are some other choice for the pkgname(e.g. python-PySide, pyside, PySide)
3. https://bugzilla.redhat.com/show_bug.cgi?id=608509 The module and tarball name for this package is subvertpy. the submitter determined to use subvertpy as the pkgname, however there are some other choice for the pkgname(e.g. python-subvertpy)
4. https://bugzilla.redhat.com/show_bug.cgi?id=606019 The module name for this package is setuptools, the tarball name for this package is distribute. The submitter determined to use python-distribute as the pkgname, however the current maintainer want to keep the name of python-setuptools.
There are also some other divergence in fedora repos, e.g. sympy/python-simpy, python-pycurl/pyflakes etc. There are much more inconsistency if we consider python and python3 modules, e.g. PyQt4/python3-PyQt4 pyke/python3-pyke.
I remember David Malcolm already wrote a naming guideline proposal for python3 modules one year ago[1], no one objects his proposal, so I think we can write a new packaging guideline draft based on his proposal.
First of all, I think we should remove exception rule from guideline - "There is an exception to this rule. If the upstream source has "py" (or "Py") in its name, you can use that name for the package" since we have several python runtimes in fedora/EPEL(e.g. python2/python3 for F13+ python2.4/2.6 for EPEL5) now.
Here is my draft refer to the debian naming policy[2]: Packages of python modules (thus they rely on python as a parent) use a slightly different naming scheme. They should be preferably named python-$NAME where the $NAME is the name of the module that you type to import it in a script, but this is not required if the package ships multiple modules. In the latter case the maintainer chooses the name which represents the package most (e.g. the upstream tarball or project name from which this software came). There is an exception to this rule, if the python module has a period '.' in its name, we should replace it with a dash '-' since '.' is not an acceptable separator for fedora.
Examples: python-zmq/python3-zmq (tarball name pyzmq) python-gtk/python3-gtk (tarball name pygtk) python-PyQt4/python3-PyQt4 (tarball name PyQt) python-MySQLdb/python3-MySQLdb (tarball name MySQL-python) python-twisted-core (tarball name TwistedCore, the package ships multiple modules) python-twisted-news (tarball name TwistedNews module name twisted.news) python-AppTools (tarball name AppTools, the package ships multiple modules)
[1]http://lists.fedoraproject.org/pipermail/python-devel/2009-October/000191.ht... [2]http://www.debian.org/doc/packaging-manuals/python-policy/ch-module_packages...
Thought?
Regards, Chen Lei
When we've talked about this before, in the Packaging Committee we haven't really cared to stipulate one proper way that maintainers must follow since there's several possible ways which all seem equally valid. Inconsistency by itself is not a problem. If it's causing an issue then it would be something the packaging committee would address.
Note that the packaging committee last discussed this several years ago so people might be more amenable to some parts of your proposal -- In particular, whether to mandate python-pyfoo or allow pyfoo was contentious before and new things have emerged (namely, that python3 packages must prefix with python3-). However, we'd likely grandfather existing pyfoo packages in so they wouldn't have to rename. I personally don't htink the other parts of your proposal make the guidelines more clear but the packaging committee as a whole would decide this so you're welcome to propose it.
The way to propose to the packaging committee is to write a proposal on the wiki and then put in a ticket at https://fedorahosted.org/fpc You can also send an email to the packaging@lists.fp.o mailing list to generate discussion on list.
-Toshio
On Wed, Sep 15, 2010 at 10:11 AM, Chen Lei supercyper1@gmail.com wrote:
Hi all,
It seems the current python modules naming guideline is ambiguous, different package maintainers use different naming conventions. It have also caused much controversy between submitter and reviewer which is just a waste of time, so I think it's worth to write a new python/python3 modules naming guideline for fedora. The purpose of this discussion is decreasing inconsistent package names of python modules in fedora. Personally, I don't mind how to name a package in fedora as long as the naming guideline is clear and won't create much divergence.
e.g.
The module name for this package is zmq, the tarball name for this package is pyzmq. The submitter determined to use python-zmq as the pkgname, however there are some other choice for the pkgname(e.g. pyzmq, python-pyzmq)
The module name for this package is Pyside, the tarball name for this package is pyside. The submitter determined to use python-pyside as the pkgname, however there are some other choice for the pkgname(e.g. python-PySide, pyside, PySide)
The module and tarball name for this package is subvertpy. the submitter determined to use subvertpy as the pkgname, however there are some other choice for the pkgname(e.g. python-subvertpy)
The module name for this package is setuptools, the tarball name for this package is distribute. The submitter determined to use python-distribute as the pkgname, however the current maintainer want to keep the name of python-setuptools.
There are also some other divergence in fedora repos, e.g. sympy/python-simpy, python-pycurl/pyflakes etc. There are much more inconsistency if we consider python and python3 modules, e.g. PyQt4/python3-PyQt4 pyke/python3-pyke.
I remember David Malcolm already wrote a naming guideline proposal for python3 modules one year ago[1], no one objects his proposal, so I think we can write a new packaging guideline draft based on his proposal.
First of all, I think we should remove exception rule from guideline - "There is an exception to this rule. If the upstream source has "py" (or "Py") in its name, you can use that name for the package" since we have several python runtimes in fedora/EPEL(e.g. python2/python3 for F13+ python2.4/2.6 for EPEL5) now.
Here is my draft refer to the debian naming policy[2]: Packages of python modules (thus they rely on python as a parent) use a slightly different naming scheme. They should be preferably named python-$NAME where the $NAME is the name of the module that you type to import it in a script, but this is not required if the package ships multiple modules. In the latter case the maintainer chooses the name which represents the package most (e.g. the upstream tarball or project name from which this software came). There is an exception to this rule, if the python module has a period '.' in its name, we should replace it with a dash '-' since '.' is not an acceptable separator for fedora.
Examples: python-zmq/python3-zmq (tarball name pyzmq) python-gtk/python3-gtk (tarball name pygtk) python-PyQt4/python3-PyQt4 (tarball name PyQt) python-MySQLdb/python3-MySQLdb (tarball name MySQL-python) python-twisted-core (tarball name TwistedCore, the package ships multiple modules) python-twisted-news (tarball name TwistedNews module name twisted.news) python-AppTools (tarball name AppTools, the package ships multiple modules)
[1]http://lists.fedoraproject.org/pipermail/python-devel/2009-October/000191.ht... [2]http://www.debian.org/doc/packaging-manuals/python-policy/ch-module_packages...
Thought?
Regards, Chen Lei _______________________________________________ python-devel mailing list python-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/python-devel
2010/9/16 Toshio Kuratomi a.badger@gmail.com:
When we've talked about this before, in the Packaging Committee we haven't really cared to stipulate one proper way that maintainers must follow since there's several possible ways which all seem equally valid. Inconsistency by itself is not a problem. If it's causing an issue then it would be something the packaging committee would address.
Note that the packaging committee last discussed this several years ago so people might be more amenable to some parts of your proposal -- In particular, whether to mandate python-pyfoo or allow pyfoo was contentious before and new things have emerged (namely, that python3 packages must prefix with python3-). However, we'd likely grandfather existing pyfoo packages in so they wouldn't have to rename. I personally don't htink the other parts of your proposal make the guidelines more clear but the packaging committee as a whole would decide this so you're welcome to propose it.
I think we can only rename pyfoo packages which are already ported to python3 (e.g. PyQt4) currently, very few packages are affected by this proposal IMHO. If a exsited pyfoo/foopy packages want to add support to python3, then we can rename them one by one to keep a consistent name with their corresponding python3 modules. However, we can mandate all new pyfoo/foopy packages add python- prefix ( it seems you also like this idea that append python- prefix to all python2 modules?[1] ). If FPC don't like this proposal, at least we should not allow foopy packages to apply exception rules to pkgname, I think python-scipy is more consistence than scipy.
From Fedora naming guideline - "They should take into account the
upstream name of the python module. This makes a package name format of python-$NAME. When in doubt, use the name of the module that you type to import it in a script. " So currently package submitters are free to choose either upstream name or module name, I'd like an opinion from FPC that which name is preferred or highly recommended for a python module - module name which we type to import it in a script or upstream name which is mostly considered as tarball name, the naming guideline is ambigous in this point. In Debian, they always use module names unless the package ships multiple python modules, it seems dmalcolm and tomspur also like this naming convention. Personally, I also like this proposal, howerer I can also acceptable use upstream name as a perfer as long as FPC detemines which naming convetion are preferred. e.g. python-zmq/python-PySide(module name) or python-pyzmq/python-pyside(upstream name) looks good for me, python-zmq/python-pyside is considered as inconsistence, there are more exsited example in fedora repos.
I'm not a native English speaker, maybe my statement is not clear enough. But I think ambigous statement is not trivial to Fedora naming guideline (the name of a particular package is unimportant though) , after all the purpose of naming guildeline is providing a consistent naming convetion for the whole Fedora distribution. I hope some volunteers can help me to write a formal guideline draft.
[1]http://lists.fedoraproject.org/pipermail/python-devel/2009-October/000193.ht...
Regards, Chen Lei
python-devel@lists.fedoraproject.org