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

Bug #751908, tox, and bin-only Python packages



Back in June 2014, I filed bug #751908, which Piotr closed as wontfix.  This
is really related to an open question in Python packaging concerning a
standard naming scheme for packages which provide Python applications
(e.g. /usr/bin scripts) whether or not they also provide importable libraries,
although it's trickier when they don't (e.g. tox).

AFAICT, Debian Python Policy is silent on this.

The example that sparked issue #751908 was tox, which when I initially
packaged it, I called the binary package python-tox.  I did this because,
while the package does not provide any publicly importable modules, I felt it
was presumptuous to claim a rather generic name like 'tox' as the binary
package.  As it turns out, almost 3 years later there are no other claims on
binary package name 'tox' in the archive, so my concern might have been
unnecessary.

The reason I opened the bug was because of dh_python3's behavior that the
normal set of renames (e.g. usr/lib/python3.X/dist-packages to
usr/lib/python3/dist-packages) isn't done for binary packages named with the
python- prefix.

I follow and largely agree with Piotr's reasoning for closing bug wontfix, but
that still doesn't help. ;)  This is biting me today as I try to fix the tox
source package so that it will build in a world with two supported Python 3
versions, as is the case in Ubuntu 15.10 currently.  The hack in d/rules I had
been using breaks with multiple versions of Python 3.

I can fix the hack, or I can rename the binary package to 'tox'.  I'm strongly
inclined to the latter, with either a dummy transitional package or a
provides/replace/conflicts transition.  I'm happy to hear your thoughts on
that, but let's talk about the larger issue.

Should there be a naming convention for Python packages which only provide an
executable?

Clearly they can't be called 'python-foo' or 'python3-foo'.  We're reserving
those names for binary packages that provide importable libraries of the
appropriate language version.

Ideally you could just claim 'foo' but there may be problems with that.  'foo'
might collide with some other existing package name.  In other cases,
maintainers might consider it presumptuous and not very friendly to claim a
generic name.   What should we recommend?  Do we need to recommend anything,
or do we just let the maintainer decide?

At the very least, DPP must proscribe using python-foo or python3-foo.

Cheers,
-Barry

Attachment: pgprvBG0LCTtw.pgp
Description: OpenPGP digital signature


Reply to: