Subject: Re: RFC: a plugin architecture for git extensions?

From: Andreas Ericsson <[email-masked]>
Date: Thu, 28 Apr 2011 11:25:50 +0200

On 04/28/2011 04:49 AM, Jon Seymour wrote:
> On Thu, Apr 28, 2011 at 12:15 PM, Jon Seymour<[email-masked]>  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.
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.

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.

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.

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".

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.

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.

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.