Re: Python naming guidelines clarification

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

 




----- Original Message -----
> From: "Jan Včelák" <jvcelak@xxxxxxxxxxxxxxxxx>
> To: "Development discussions related to Fedora" <devel@xxxxxxxxxxxxxxxxxxxxxxx>
> Sent: Thursday, January 21, 2016 12:40:47 PM
> Subject: Re: Python naming guidelines clarification
> 
> On Wed, Jan 20, 2016 at 11:54 PM, Zbigniew Jędrzejewski-Szmek wrote:
> > Yes, the guidelines apply to the source rpm name too. Those
> > srpms should be called python-*, because they contain python libries.
> 
> OK. Thank you.
> 
> And what is the best current practice if the library contains some
> utilities. Should the utilities land in the python{2,3}-name package?
> Should it land in both?
> 
> To give you an example, the ripe.atlas.sagan ships a utility
> parse_abuf. I'm currently removing it from the package as the upstream
> is going to deprecate it with the next release. But theoretically,
> should the utility be included in python2-ripe-atlas-sagan as
> parse_abuf2 and in python3-ripe-atlas-sagan as parse_abuf? Or would it
> be better for instance to create a package ripe-atlas-sagan which will
> contain just the Python 3 version of the utility?
> 

As I suggested in my email before, package just one version running on
Python3 (if supported) when utility provides same functionality whether run
with Python3 or Python2.

There are special cases when you have to provide bin files for both major
versions of python, good example is python-pip (python3-pip installs python3 
modules, python2-pip installs python2 modules).

Here are conventions for naming executables and some mentions about 
Python2/Python3 executables conflicts:
https://fedoraproject.org/wiki/Packaging:Python#Naming

I believe that your confusion (you are not alone) is caused by misleading
example specfile in python packaging guidelines and lack of verbosity
about such cases, I already tried to argue about changing it 
https://fedorahosted.org/fpc/ticket/558#comment:6



Lets assume python project named `example` which ships executable `example`:

1. `example` is pure application, supports Python3 -
I package it as `example` with executable `example` running on Python3, all
backend libraries will be also packaged under `example` rpm as they are not meant
to be used as libraries in other projects

2. `example` is application and it also ships libraries which may be used in
other projects -
I package it as `example` which will ship executable `example` running on Python3, 
I will build it for both Python2 and Python3 and package its libraries under
python2-example and python3-example, (hence `example` will require `python3-example`)

3. `example` is application with different behaviour for both major python versions -
I package `example` as `python-example` with `python2-example` and `python3-example`
subpackages carrying both backends libraries and executables, unversioned executable
`example` will be packaged under `python2-example` (hence running on python2).

I hope it makes sense :)

> Jan
> --
> devel mailing list
> devel@xxxxxxxxxxxxxxxxxxxxxxx
> http://lists.fedoraproject.org/admin/lists/devel@xxxxxxxxxxxxxxxxxxxxxxx


--
Robert Kuska
{rkuska}
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
http://lists.fedoraproject.org/admin/lists/devel@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