From: Jon Seymour Date: Wed, 27 Apr 2011 05:33:57 GMT Subject: Re: RFC: a plugin architecture for git extensions? Message-ID: In-Reply-To: <7vsjt49stq.fsf@alter.siamese.dyndns.org> Hide quoted text - On Wed, Apr 27, 2011 at 3:17 PM, Junio C Hamano wrote: > Jon Seymour writes: > >>> So if you have /home/js/bin on your $PATH, you can install your "git-work" >>> script as /home/js/bin/git-work, and that should be sufficient. >> >> Yep, that's a start, but does not a a complete plugin architecture make :-) > > Please explain yourself. > So, I think at a very minimum, a plugin architecture should specify the file system layout of packages to be managed by a plugin/package manager. So, where to find scripts, where to find man pages, bash completions, configuration help etc. A slightly more functional architecture would provide support for unpacking package archives into a "standard" repository location and for removing unwanted plugins. A plugin architecture might specify a standard way to access extensions. (git blah is easy for local use, but what if a plugin grabs a "noun" that the core wants to use that "noun" itself in future. Perhaps gitx blah would be a better standard way to access extensions. But that is an aside, I am sure this question has been considered previously). An even more functional architecture would provide support for a global registry of plugins. I understand that git may not want to write its own package manager (how many times has that been done), but it'd be nice if competing "git package managers" had a standard target to deploy to. My thoughts about this are inspired by how the node project manages packages with its npm package manager and also the fact that I have several ideas on the boil at the moment that would definitely benefit from a standard way to manage these concerns. jon.