From 95f39dc7c0e2de5bdde6a9a3800cd3db4bb0c833 Mon Sep 17 00:00:00 2001 From: Suvayu Ali Date: Fri, 9 May 2014 13:39:51 +0200 Subject: [PATCH] Re: Submodules for language bindings (was: Github?) --- 65/3111c4b1ec48a884387739020d18d3879ba406 | 153 ++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 65/3111c4b1ec48a884387739020d18d3879ba406 diff --git a/65/3111c4b1ec48a884387739020d18d3879ba406 b/65/3111c4b1ec48a884387739020d18d3879ba406 new file mode 100644 index 000000000..412549abc --- /dev/null +++ b/65/3111c4b1ec48a884387739020d18d3879ba406 @@ -0,0 +1,153 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id D39B5431FBF + for ; Fri, 9 May 2014 04:40:03 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: -0.799 +X-Spam-Level: +X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5 + tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, + FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id 8EtMZsMQkPyQ for ; + Fri, 9 May 2014 04:39:59 -0700 (PDT) +Received: from mail-ee0-f42.google.com (mail-ee0-f42.google.com + [74.125.83.42]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client + certificate requested) by olra.theworths.org (Postfix) with ESMTPS id + DC29D431FBC for ; Fri, 9 May 2014 04:39:58 -0700 + (PDT) +Received: by mail-ee0-f42.google.com with SMTP id d49so2612405eek.29 + for ; Fri, 09 May 2014 04:39:56 -0700 (PDT) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; + h=sender:date:from:to:subject:message-id:mail-followup-to:references + :mime-version:content-type:content-disposition + :content-transfer-encoding:in-reply-to:user-agent; + bh=l0Gr4PjcqIANtJ4FzXyT8kyGEPj74ohrIzwm1qCyEdQ=; + b=zIMOIKfW2SW+au+CoVYfkJQL9J+kGUiJRfuOd+Iy3szJDMFzPWVfgy2i6LPnkL3dKj + ELpw9pjbmHtyJtobSYWNVGX/UXbpKS3HKGuRcEwA/Ivfm5d8OWJ5NbYu5eNVGJs4BqOG + EYhTisfhcLl4fFZWNqVMyHnO9HExzW6202ru9qStnvETgvSxpBDfgwTeLgKLTFsAqiV2 + Hll7Ma+MtlPT3dU/e8bbCKQUAAB67PZPa0cRR2/LGCPvSHM0OTZQCoc+8ChF37APwo8L + qWoFyFx8fmDmrkbA1dk+CtOxw+0qbMu7jX+hKuIJw7zXaGJeA4qJ5ORkxme5d/lJ33ng + aJeg== +X-Received: by 10.14.115.195 with SMTP id e43mr12870970eeh.76.1399635596087; + Fri, 09 May 2014 04:39:56 -0700 (PDT) +Received: from chitra.no-ip.org ([2001:610:120:3001:2ad2:44ff:fe4a:b029]) + by mx.google.com with ESMTPSA id u46sm10872267eel.1.2014.05.09.04.39.52 + for + (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); + Fri, 09 May 2014 04:39:53 -0700 (PDT) +Sender: Suvayu Ali +Date: Fri, 9 May 2014 13:39:51 +0200 +From: Suvayu Ali +To: notmuch@notmuchmail.org +Subject: Re: Submodules for language bindings (was: Github?) +Message-ID: <20140509113951.GD2634@chitra.no-ip.org> +Mail-Followup-To: notmuch@notmuchmail.org +References: + <20140508101325.GC23124@vilya.m0g.net> + + + <20140508203019.GA2374@chitra.no-ip.org> + <20140508212100.GD23124@vilya.m0g.net> + <20140508220046.GB2374@chitra.no-ip.org> + <20140508222931.GU28634@odin.tremily.us> + <20140508224527.GC2374@chitra.no-ip.org> + <20140508233530.GV28634@odin.tremily.us> +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8 +Content-Disposition: inline +Content-Transfer-Encoding: 8bit +In-Reply-To: <20140508233530.GV28634@odin.tremily.us> +User-Agent: Mutt/1.5.22.1 (2013-10-16) +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Fri, 09 May 2014 11:40:04 -0000 + +Hi Trevor, + +On Thu, May 08, 2014 at 04:35:30PM -0700, W. Trevor King wrote: +> 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” ;). + +You have a point, however I would still disagree. You seem to use +Gentoo, and I think what you say works better for Gentoo because it is a +source distribution. For binary distributions, this is a bit harder +(and limiting). To explain my point with RPM specifics, if I were to +use separate spec files, python-notmuch would have: + + Requires: notmuch >= + +As you can see this only allows for tracking dependency based on +official version numbers. With more bindings, many with different +version dependencies, this becomes quite cumbersome; more so when you +are doing snapshots (as I do for my repo[1]). As a packager, I think I +would prefer to learn different packaging guidelines, setup my spec file +and forget about it rather than continually follow all changes. But I +guess this is where you would argue with different responsible people, I +would not have to do all the thinking :-p. + +Anyway, whichever way the devs choose to go, I (and other packagers) +will adapt. + +Cheers, + + +Footnotes: + +[1] I would love to know if anyone here uses it. I announced it here + when I started it, but for all I know I could be the only user! :-p + +-- +Suvayu + +Open source is the future. It sets us free. -- 2.26.2