From: Jon Seymour <jon.seymour@gmail.com>
To: Andreas Ericsson <ae@op5.se>
Cc: Junio C Hamano <gitster@pobox.com>,
Jonathan Nieder <jrnieder@gmail.com>,
Joey Hess <joey@kitenet.net>,
Git Mailing List <git@vger.kernel.org>,
david@lang.hm, Pau Garcia i Quiles <pgquiles@elpauer.org>
Subject: Re: RFC: a plugin architecture for git extensions?
Date: Thu, 28 Apr 2011 20:56:15 +1000 [thread overview]
Message-ID: <BANLkTikKp9-uFGLavBT0UA5+maV5xiEJZA@mail.gmail.com> (raw)
In-Reply-To: <4DB9329E.7000703@op5.se>
On Thu, Apr 28, 2011 at 7:25 PM, Andreas Ericsson <ae@op5.se> wrote:
> On 04/28/2011 04:49 AM, Jon Seymour wrote:
>> On Thu, Apr 28, 2011 at 12:15 PM, Jon Seymour<jon.seymour@gmail.com> wrote:
>>> Then a command like:
>>>
>>> git install gitwork
>>>
>>> would trivially work across all distributions precisely because the
>>> distribution has provided the implementation of the git install
>>> interface contract that git-core has helpfully mandated.
>>>
>>
>> Or better yet, git-core could provide a trivial git install
>> implementation that selects between different distribution manager
>> supplied plugins selected according to some heuristic, allowing
>> several distribution managers to happily manage plugins in the same
>> git instance.
>>
>> I have to ask.
>>
>> Is such an architecture really "absolutely horrid"? Is it "crap"? Really?
>>
>
> Yes, because it forces all distributions to name their extensions
> the same and it forces all distributions to carry the same extensions.
False.
Distributions maintain a N:1 registry of git plugin names to
distribution specific package names. This registry would most
naturally be maintained by the author who maintains the git package,
but of course, such responsibilities could be delegated to others if
required.
During installation, the package manage aware "install" plugin
consults such a registry to determine which packages need to be
installed in order to obtain the requested plugin. It then asks the
package manager to install said packages.
> It also makes it impossible to support 3rd party extensions that core
> git doesn't know about and that aren't already packaged, unless you
> want the "git install" command to have knowledge about all package
> management systems and *very, very good* heuristics when guessing what
> a particular extension is called on that system.
>
Again false. That is the role of the registry that is maintained by
some package author.
> What will happen though is that the distributions will happily ignore
> that and the "git install" command will fail for some extensions on
> some distributions.
Yes, but it can fail in a extremely precise way. In those cases, it
could fall back another package manager
such as one that is capable of checking out a git repo and running make install.
I realise that most people could not accomplish such a task without
writing vast amounts of spaghetti code, but there you go.
>
> Besides that, it forces users to install git from their distribution
> packages so we're hard-shafting the git developers who usually have
> at least some installations done from source.
>
No it doesn't. My suggestion allows deploy by drop-in configuration to
a subdirectory of plugins/ followed by the invocation of a command
such as.
git plugin activate foobar
I realise this may "hard-shaft" the git developers who are unable to
invoke a git command, but I guess they could also put such a command
in their make install scripts. Now there's an idea.
> We just went far beyond "absolutely horrid" and into the realms of
> "steaming pile of abominably manure-like ideas whose inventor should
> be slapped silly for their own good".
>
Thanks, I'll add that to my vocabulary of terms that git developers
use when they let fly to their emotions for completely unaccountable
reasons. I'd suggest,. perhaps "grow up", but that would strike some
as rude. So, I won't.
> So let's get back to the basic wish you have here. You want people
> to be able to easily find, download and install "git work" so that it
> works nicely with man-pages and all.
>
What is so hard about:
app install plugin.
Forget git. Forget git work.
What is so hard about the concept of an application providing a
facility that allows it to request, merely request, the installation
of a plugin for itself by what ever happens to be the users choice of
package manager or distribution.
Is such a concept really, fundamentally flawed?
if so, replace "git" with "linux", "app" with "apt-get", "plugin" with
"git-core" and explain to me why
apt-get install git-core
is such a bad idea.
Yes, different levels of abstraction, but the principles are the same.
Like it or not, git is a platform, there is absolutely no reason why
it can't have sane plugin manager, other than complete lack of
imagination.
> The wiki-page with known extensions and the patch to core git so that
> "make install" can put man-pages in the right directory are the first,
> simplest and smallest steps that takes us the farthest towards that
> wish without burdening people you have no control over with more labor.
> In short; It's both good engineering and polite to implement that and
> then consider what new possibilities open up and see what people do
> with those possibilities. You might be surprised.
Yep, that's what unix package management was like before people
invented the idea of package managers.
How quaint.
jon.
next prev parent reply other threads:[~2011-04-28 10:56 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 [this message]
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=BANLkTikKp9-uFGLavBT0UA5+maV5xiEJZA@mail.gmail.com \
--to=jon.seymour@gmail.com \
--cc=ae@op5.se \
--cc=david@lang.hm \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=joey@kitenet.net \
--cc=jrnieder@gmail.com \
--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).