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

Re: ghi: please review (new package, CLI interface to GitHub issue tracker)



On Wed, Apr 27, 2016 at 08:32:18PM +1000, Dmitry Smirnov wrote:
> On Tuesday, 26 April 2016 11:31:45 AM AEST Antonio Terceiro wrote:
> > On Tue, Apr 26, 2016 at 08:24:39AM +1000, Dmitry Smirnov wrote:
> > > It is true that for now there are no packages depending on "ruby-ghi".
> > > But eventually there are may be some packages that need it. Since library
> > > is exposed to global name space it is better to install it by proper
> > > library package.
> > 
> > We don't do that.
> 
> I see... I'm quite surprised that (unlike Perl, Python and Golang packages)
> package name convention means so little in Ruby... I wonder what good "ruby-" 
> is for in package names if it is OK to ship executables in any package 
> including library packages (like packages "ruby-fission" and "ruby-minitar" 
> that trigger lintian warnings "application-in-library-section" and "library-
> package-name-for-application") as well as to ship Ruby libraries in packages 
> without "ruby-" in their names...

That's not true, or fair.

I can point you to countless examples of applications written Perl and
Python whose libraries can be loaded from the global namespace, or Perl
and Python libraries that also provide executables.

on my system:

$ dpkg -S /usr/bin/* 2>/dev/null | grep -c '^python3\?-'
60
$ python -c 'import ansible; print "OK"'
OK

$ dpkg -S /usr/bin/* 2>/dev/null | grep -c ^lib.*-perl
32
$ perl -e 'import Debian::Debhelper::Buildsystem; print "OK\n"'
OK

$ dpkg -S /usr/bin/* 2>/dev/null | grep -c ^ruby-
53
$ ruby -e 'require "rake"; puts "OK"'
OK

and archive-wide:

$ apt-file search /usr/bin/ | sed -e '/^\(python3\?-\|ruby-\|lib\S*-perl\)/!d; s/:.*//; s/.*perl$/perl/; s/python3\?.*/python/; s/^ruby-.*/ruby/' | sort  | uniq -c
    525 perl
   1145 python
    137 ruby

The point when choosing the name is what the main use of the package: if it is
mainly used by applications and libraries via `require`, even it provides a few
binaries, it is a library package (ruby-foo). If the main use is via its
binaries, than it is an application package (foo).

of course sometimes this is overlooked, as seems to be the case of
ruby-fission; but most of the over a thousand of Ruby packages are in the right
bucket.

Attachment: signature.asc
Description: PGP signature


Reply to: