From: Jon Seymour <jon.seymour@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Jonathan Nieder <jrnieder@gmail.com>,
Junio C Hamano <gitster@pobox.com>,
David Aguilar <davvid@gmail.com>, Andreas Ericsson <ae@op5.se>,
Joey Hess <joey@kitenet.net>,
Git Mailing List <git@vger.kernel.org>,
"david@lang.hm" <david@lang.hm>,
Pau Garcia i Quiles <pgquiles@elpauer.org>
Subject: Re: RFC: a plugin architecture for git extensions?
Date: Sun, 8 May 2011 14:44:54 +1000 [thread overview]
Message-ID: <BANLkTikDVBgOqd1U=qSL99U3K8EtLVTxtw@mail.gmail.com> (raw)
In-Reply-To: <20110506172334.GB16576@sigill.intra.peff.net>
On Sat, May 7, 2011 at 3:23 AM, Jeff King <peff@peff.net> wrote:
> On Sat, May 07, 2011 at 12:07:14AM +1000, Jon Seymour wrote:
>
>> I think the problem we are trying to solve is this: how to make it as
>> easy as possible to install, and get operational, an extension to git.
>>
>> If git supported the concept of a standard place to put extensions,
>> then it could be as simple as:
>>
>> unzip -d $(git --plugins-dir) plugin.zip
>>
>> with no need to configure or choose a prefix and no need to edit the
>> an .profile or .bashrc to permanently add a directory to the PATH.
>
> This seems slightly backwards to me. You are asking git "where should
> plugins go?" and then putting them there. But that leaves no room for
> plugins going in _multiple_ places. IOW, the usual hierarchy of:
>
> 1. distribution-packaged extensions (in /usr/share/git/plugins)
>
> 2. local system-wide extensions (in /usr/local/share/git/plugins)
>
> 3. per-user extensions (in $HOME/.gitplugins)
>
Actually, that was part of my RFC - how to let git find places where
plugins may be installed.
Your suggestions seem good to me.
> It seems like we should not be asking git, but _telling_ git about where
> our plugins are. I understand that you don't want the user to have to do
> any additional steps, and I think that is a reasonable goal. But can't
> that be easily accomplished by:
>
> 1. The git wrapper learns to look in a set of plugin paths, something
> like:
>
> foreach path in (list of plugin paths)
> foreach plugin in "path/*"
> add plugin/bin to PATH
> add plugin/man to MANPATH
>
> 2. At compile time, we give some stock system directories like
> /usr/share/git/plugins and /usr/local/share/git/plugins.
> Distribution packages of git override as appropriate for the target
> system.
>
> 3. We always check $HOME/.gitplugins by default.
>
All seems reasonable, assuming that there is a consensus that we need
to do something other than recommend installation into /usr/local (or
the platform equivalent) and I am not sure that is a given at this
point.
> 4. Users can set GIT_PLUGIN_PATH in the environment if they want to do
> something fancy (they can also always just set PATH and MANPATH
> manually if they want, too).
>
If the need for multiple plugin directories were accepted, then I
wonder if there might not be some advantages for the configuration of
this path being in git configuration rather than an environment
variable? Again, assuming only git, this would provide installation
helpers with a standard way to make git aware of such directories that
does not depend on the particulars of the platform on which git is
installed.
> This is how many systems already work. For example, look at how vim
> handles plugins.
>
> Distro-packaged extensions obviously know where to go (the packager
> knows their distro's rules). People with personal extensions don't have
> to know anything special; their packages go in $HOME/.gitplugins.
>
> In general I would expect /usr/local/share/git/plugins to be pretty
> standard, and not needing of being repeated for admins who want to
> install something system-wide. But if you want to be really thorough,
> then your "git --plugins-dir" should probably report the "system-wide
> but not distro" directory for that (but I would call it something like
> "git --system-plugins-dir" or something to make it more clear).
>
I think that your suggestion of --system-plugins-dir is a good one for
the reasons you suggest.
> -Peff
>
next prev parent reply other threads:[~2011-05-08 4:45 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
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 [this message]
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='BANLkTikDVBgOqd1U=qSL99U3K8EtLVTxtw@mail.gmail.com' \
--to=jon.seymour@gmail.com \
--cc=ae@op5.se \
--cc=david@lang.hm \
--cc=davvid@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=joey@kitenet.net \
--cc=jrnieder@gmail.com \
--cc=peff@peff.net \
--cc=pgquiles@elpauer.org \
/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).