From: Jon Seymour <jon.seymour@gmail.com>
To: "Motiejus Jakštys" <desired.mta@gmail.com>
Cc: Michael J Gruber <git@drmicha.warpmail.net>,
Junio C Hamano <gitster@pobox.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: RFC: a plugin architecture for git extensions?
Date: Wed, 27 Apr 2011 19:59:33 +1000 [thread overview]
Message-ID: <BANLkTi=UCGkQaOF7c0Ks6315gygacMzfyQ@mail.gmail.com> (raw)
In-Reply-To: <20110427093627.GH2709@jakstys.lt>
2011/4/27 Motiejus Jakštys <desired.mta@gmail.com>:
> On Wed, Apr 27, 2011 at 06:40:07PM +1000, Jon Seymour wrote:
>> On Wed, Apr 27, 2011 at 6:15 PM, Jon Seymour <jon.seymour@gmail.com> wrote:
>> > On Wed, Apr 27, 2011 at 5:57 PM, Michael J Gruber
>> > <git@drmicha.warpmail.net> wrote:
>> >
>> The idea would be to maintain a registry of "git package descriptors".
>> The descriptors would be a copy of the whatever descriptor an
>> activated package would be described by, but probably simply a git
>> config text file, since we already have the tools to parse those.
>>
>> Such a descriptor would have hints about how to use a real package
>> manager to get the actual package, but would not actually contain any
>> files from the package itself.
>
>>
>> So, for example, the package source might be bundled in git-core
>> contrib/ directory, fetchable as a git repo, fetchable as a tar ball,
>> fetchable as an apt-get package, as brew package etc. The idea is that
>> gpm would know enough about invoking a real package manager to handle
>> the actual distribution details.
>
> Let me check If I get this right:
> Say I am a maintainer of enchanced git log -- git logx. It is one .c
> file, which has to be simply compiled (cc -o git-logx logx.c).
>
> If I want to maintain the package in a way you are suggesting, I have to
> prepare deb, rpm, tarball, zipball, brew (what ever it is, sorry for
> non-intelligence) and what not. Otherwise, I lose users? *ball is not
> an option, since we are supporting different architectures and cannot
> distribute compiled files (unless statically compiled for all
> architectures we know, which is not good for obvious reasons).
>
> Morevoer, different debs for different debian releases (if package
> depends on libc version)?
>
> Although this looks very nice from user point of view, it would be a
> pain for the extension maintainer... Though it's only one C file.
>
I don't see why. You wouldn't be forced to maintain one of those
packages, anymore than you
are now. If you can, you just publish a git url, and your job is done.
If your tool requires
compilation, you have already solved the distribution problem for the
package managers you choose to support.
All I am suggesting you do is that you list pointers to these
packages, which gpm could then use to actually do the installation for
you.
The thing I really care about is: once the package has been installed
locally, how do I activate it and makes its features available to the
git runtime, without having to futz around with my PATH, MANPATH etc?
Yes, this is user focused. I want users of my tool to be able to something like:
git pm install gitwork
or perhaps:
git pm install git://github.com/jonseymour/gitwork
And then start using it. I want the git completions to be there, I
want the man pages to be there. I want the scripts to be
there. In my case, there I really shouldn't have to do anything other
than point at a git url, get the package transported
to a local directory and activate it.
I want to tell my users what they need to do to install my extension
without having to have variants of the instructions for zip/tar
people, apt-get people, brew people, MAC ports people, yum people etc.
Yes, for compiled stuff, someone has to prepare the packages. But once
they are prepared, use whatever package manager the user uses to
install it and expose the gpm config required to activate it.
> I think shipping it in contrib/ and having extension system is a better
> option. Though it leaves a hole for dependencies -- if my logx depends
> on boost or imagemagick, we don't want make git depend on it...
>
Unless I am misunderstanding something about how contrib/ is managed
that still requires Junio to be in the loop, which defeats one of my
objectives here - which is to allow anyone to contribute and share
their own extensions without being bottlenecked by someone else's
release cycle.
jon.
next prev parent reply other threads:[~2011-04-27 9:59 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-27 3:36 RFC: a plugin architecture for git extensions? Jon Seymour
2011-04-27 3:58 ` Jonathan Nieder
2011-04-27 5:06 ` Jon Seymour
2011-04-27 5:07 ` Junio C Hamano
2011-04-27 5:10 ` Jon Seymour
2011-04-27 5:17 ` Junio C Hamano
2011-04-27 5:33 ` Jon Seymour
2011-04-27 5:37 ` Jon Seymour
2011-04-27 5:39 ` Junio C Hamano
2011-04-27 5:42 ` Jon Seymour
2011-04-27 7:15 ` Jon Seymour
2011-04-27 7:57 ` Michael J Gruber
2011-04-27 8:15 ` Jon Seymour
2011-04-27 8:40 ` Jon Seymour
2011-04-27 9:36 ` Motiejus Jakštys
2011-04-27 9:59 ` Jon Seymour [this message]
2011-04-27 10:48 ` Motiejus Jakštys
2011-04-27 10:21 ` Carlos Martín Nieto
2011-04-27 10:44 ` Jon Seymour
2011-04-27 11:38 ` Fredrik Gustafsson
2011-04-27 11:57 ` Jon Seymour
2011-04-27 22:32 ` Pau Garcia i Quiles
2011-04-27 22:47 ` Jon Seymour
2011-04-27 11:01 ` Ævar Arnfjörð Bjarmason
2011-04-27 11:42 ` Jon Seymour
2011-05-13 19:32 ` Enrico Weigelt
2011-04-27 12:08 ` Andreas Ericsson
2011-04-27 12:50 ` Jon Seymour
2011-04-27 13:07 ` Felipe Contreras
2011-04-27 13:59 ` Jon Seymour
2011-04-27 14:52 ` Andreas Ericsson
2011-04-27 15:36 ` Jon Seymour
2011-04-27 16:13 ` Jon Seymour
2011-04-27 17:07 ` A Large Angry SCM
2011-04-28 3:07 ` Jon Seymour
2011-04-28 3:26 ` Jon Seymour
2011-04-28 5:04 ` Jon Seymour
2011-04-28 6:15 ` Jon Seymour
2011-04-28 16:16 ` david
2011-04-29 3:35 ` Jon Seymour
2011-04-27 19:16 ` Motiejus Jakštys
2011-04-27 19:19 ` Motiejus Jakštys
2011-04-27 17:34 ` Junio C Hamano
2011-04-27 18:28 ` Junio C Hamano
2011-04-27 18:49 ` Drew Northup
2011-04-27 19:42 ` Joey Hess
2011-04-27 20:16 ` Drew Northup
2011-04-27 21:38 ` Junio C Hamano
2011-04-27 22:08 ` Jonathan Nieder
2011-04-27 22:32 ` Jon Seymour
2011-04-28 9:07 ` Andreas Ericsson
2011-04-27 23:27 ` Junio C Hamano
2011-04-27 23:42 ` Jonathan Nieder
2011-04-28 0:10 ` Junio C Hamano
2011-04-28 0:50 ` Jon Seymour
2011-04-28 0:54 ` Jon Seymour
2011-04-28 0:55 ` david
2011-04-28 2:08 ` Jon Seymour
2011-04-28 2:15 ` Jon Seymour
2011-04-28 2:49 ` Jon Seymour
2011-04-28 9:25 ` Andreas Ericsson
2011-04-28 10:56 ` Jon Seymour
2011-04-28 11:11 ` Jonathan Nieder
2011-04-28 11:20 ` Jon Seymour
2011-05-05 21:41 ` David Aguilar
2011-05-05 21:53 ` Junio C Hamano
2011-05-05 23:51 ` Jon Seymour
2011-05-06 4:47 ` Junio C Hamano
2011-05-06 6:20 ` Jon Seymour
2011-05-06 6:56 ` Jonathan Nieder
2011-05-06 7:03 ` Jonathan Nieder
2011-05-06 14:07 ` Jon Seymour
2011-05-06 14:17 ` Jonathan Nieder
2011-05-06 14:29 ` Jon Seymour
2011-05-06 14:50 ` Jonathan Nieder
2011-05-08 4:28 ` Jon Seymour
2011-05-08 6:49 ` Jonathan Nieder
2011-05-08 7:42 ` Jon Seymour
2011-05-06 17:23 ` Jeff King
2011-05-07 8:24 ` John Szakmeister
2011-05-08 4:44 ` Jon Seymour
2011-05-09 7:35 ` Jeff King
2011-05-09 7:49 ` Jon Seymour
2011-05-09 8:12 ` Jeff King
2011-05-09 8:45 ` Jon Seymour
2011-05-09 10:44 ` Jeff King
2011-05-09 11:07 ` Jon Seymour
2011-05-09 11:13 ` Jon Seymour
2011-05-09 11:24 ` Jeff King
2011-05-09 11:28 ` Jon Seymour
2011-05-09 12:21 ` Jeff King
2011-05-09 22:50 ` Jon Seymour
2011-05-08 13:13 ` Jon Seymour
2011-05-09 4:36 ` Miles Bader
2011-05-14 12:51 ` David Aguilar
2011-04-28 9:11 ` Andreas Ericsson
2011-04-28 10:38 ` Jon Seymour
2011-04-28 7:40 ` Pau Garcia i Quiles
2011-04-28 8:09 ` Jon Seymour
2011-04-28 9:11 ` Pau Garcia i Quiles
2011-04-28 9:42 ` Jon Seymour
2011-04-28 0:06 ` Jon Seymour
2011-04-28 0:08 ` Jon Seymour
2011-04-27 21:29 ` Motiejus Jakštys
2011-04-27 21:47 ` Jon Seymour
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='BANLkTi=UCGkQaOF7c0Ks6315gygacMzfyQ@mail.gmail.com' \
--to=jon.seymour@gmail.com \
--cc=desired.mta@gmail.com \
--cc=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).