Submodules for language bindings (was: Github?)

W. Trevor King wking at tremily.us
Thu May 8 16:35:30 PDT 2014


On Fri, May 09, 2014 at 12:45:27AM +0200, Suvayu Ali wrote:
> On Thu, May 08, 2014 at 03:29:31PM -0700, W. Trevor King wrote:
> > On Fri, May 09, 2014 at 12:00:46AM +0200, Suvayu Ali wrote:
> > > One of my TODOs is to also package the ruby bindings, and
> > > notmuch-vim.  The only thing preventing me now is my
> > > unfamiliarty with ruby, and Fedora packaging guidelines for
> > > ruby-gems.
> > 
> > I think this is one argument argument in favor of submodules,
> > because they make it easy to treat the bindings as separate
> > packages.  Once you have separate packages, it's easy to delegate
> > packaging (e.g. “I don't use the Ruby bindings, so I'm not going
> > to maintain the Ruby-binding package.  I'll leave that to Alice,
> > who likes Ruby, but is less familiar with $distro's Python
> > packaging”).
> 
> Well as far as my understanding of rpm goes, sub-packages are
> prefered here rather than independent packages.  I believe the
> reason is again easier dependency tracking[1]; all sub-packages
> share the same source rpm, so no explicit `Requires' in the spec
> file.

It looks like sub-packages share a single spec file with the main
package [1].  That means you'll have to have authors with the full
range of binding-language expertise to bump that spec file (assuming
there are any changes that require bumps).  For example, Gentoo's
Python eclasses have gone through a few revisions in the last year or
two, and I wouldn't expect one person to stay on top of the latest
packaging styles for every language with notmuch bindings.  I think
the benefit of having separate packages (and spec files, or ebuilds,
or whatever) is that you can release notmuch-0.18 without worrying
about all those bindings, and leave it to the other maintainers (who
might include you) to independently package notmuch-python-0.18,
notmuch-ruby-0.18, notmuch-go-0.18, ….  With only three sets of
bindings, it doesn't really matter, but I think you'll want the weaker
coupling of stand-alone packages by the time you hit a dozen
languages.  “Bump an explicit 'Requires'” certainly seems like a lower
barrier than “package Go bindings idiomatically for Fedora” ;).

Cheers,
Trevor

[1]: http://www.rpm.org/max-rpm/ch-rpm-subpack.html

-- 
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://notmuchmail.org/pipermail/notmuch/attachments/20140508/b84fc3fa/attachment.pgp>


More information about the notmuch mailing list