[Fedora-packaging] Proposal: naming convention for Python 3 packages and subpackages

BJ Dierkes wdierkes at 5dollarwhitebox.org
Wed Nov 4 08:49:40 UTC 2009


On Oct 29, 2009, at 5:27 PM, David Malcolm wrote:

> (NB: I hope that we'll eventually be in a place where we can cut over
> embedders and users of python (e.g. gedit, gdb, mod_python etc) from 2
> to 3; I'm _not_ suggesting we do anything to their names.  Obviously
> such a move is a long way off)
>
>> This seems fine even though it's a bit redundant: python3-pygtk2 and
>> python3-pygpgme.
>
> We could combine:
>  - the "always use a python3-" rule I invented just above (ahem) and
>  - the "When in doubt, use the name of the module that you type to
> import it in a script" advice from the python module guidelines.
>
> This would make the above examples be "python3-gtk" and "python3- 
> gpgme"
>

My issue with a 'always use a python3-' rule is that the naming  
convention, to me, clarifies what the package is.  For example:

	python3-GeoIP => A python 3 library installed to site_packages
	mod_python3 => An Apache module built against/for python 3


Suggesting such a package should be 'python3-mod_python' might be  
confusing.  Where as mod_python3 makes more sense.  It also serves to  
keep the organization of packages similar.  For example:

	mod_python
	mod_python3 OR mod_python-python3 OR mod_python-py3


Will sit side by side in a yum list, or viewing a yum repo via  
browser... where as python3-mod_python would not list anywhere near  
mod_python.


>> What to do with things that have python in their suffix:
>> gstreamer-python => gstreamer-python3?  Or python3-gstreamer?  Or
>> python3-gstreamer-python?  Most of these are subpackages of existing
>> packages.
>
> Again, following the combination of the two rules above:
> "python3-gstreamer"

Not sure I agree here, because '-python' is a sub package of gstreamer  
(and personally I hate subpackages that don't share the base package's  
base name).  My vote would be for:

	gstreamer-python  (built against stock python)
	gstreamer-python3 OR gstreamer-python-py3 (built against python3)


>
>> A cornercase is the gnome-python2 package.  These are python  
>> bindings to
>> gnome2.  gnome-python2 is the upstream name.  For python3, do we want
>> python3-gnome-python2, python3-gnome2, python3-gnome-python2 ?
>> From my reading of "rpm -qi gnome-python2", the upstream name is
> "gnome-python", so perhaps "python3-gnome" is the thing to use here?
>

In the case of gnome-python2 where the '2' references the version of  
gnome it is built for... well I'd say that is just a complete hozer  
and we should convince upstream to change the name.  ;)


With regards to multiple versions of python in general, I'm  
maintaining such a setup currently via IUS [1] for RHEL/CentOS.  It is  
essentially the same idea..  python26 with sub-packages such as  
python26-simplejson, python26-elixir, etc...  as well as python31,  
python31-distribute.  Additionally, there is mod_python26, mod_wsgi- 
python26, and mod_wsgi-python31.  Not exactly applicable here in this  
thread, and there was no 'standards' discussion on naming conventions  
being that I'm currently the only developer... but regardless I wanted  
to point it out as perhaps a proof of concept of working with multiple  
versions of python (on RHEL/CentOS in my case).

For my purposes, and I don't know that this would follow Fedora  
ideals, my primary goal for python 3 was/is that the base package is  
available for use without effecting the system/stock python.  I  
honestly don't think it is that important at this point to push all  
the python packagers to rebuild/maintain python3 counterparts of their  
packages in order for python3 to be added.  With python3, and python3- 
distribute installed as a base, developers can begin testing/using/ 
building against python 3 and over time the supporting sub packages  
will be added as they become python 3 compatible.  With python3- 
distribute, users can install the necessary [read missing]  
dependencies via easy_install-3 (same as they would with pear/pecl for  
PHP for their additional needs).

[1] See: http://iuscommunity.org, http://launchpad.net/ius

---
derks





More information about the Fedora-packaging mailing list