First off, excellent name. Best name I've seen for a plugin in a while, and I think names matter a lot, so you're off to a great start.
I might be misunderstanding it, but I understand this plugin to have two parts:
Part 1 just takes the "git hooks" idea, and lets you implement them entirely within the gradle script. Getting git hooks to run properly on a new machine can be pretty tedious, and gradle handles problems like this wonderfully, so I think moving git hooks into a gradle plugin is a fantastic idea. It is easy to understand conceptually what is happening, but pretty tricky to actually do it. I think that's the sweet spot for build plugins - hard enough that you want a plugin, but easy enough that you can tell what is happening.
Part 2 is the staging task. I read the docs a couple times, and it seems like it has to be psychic or dig really deep into gradle's guts in order to understand what to "save". Also, if I already put some into the staging area, I'm a little worried about what might happen to it. Do I get an error, or does it just get clobbered? If something is hard to understand, it has to be really useful and really hard to build in order to justify getting through the docs. I might just be dumb, or maybe the docs just need a V2, but imo Part 2 is polluting Part 1.
I personally don't like the "staging area" concept, and I sorta wish git just did blob storage and nothing else - no scripts, line ending conversion, etc. So I'm not really your audience regardless, feel free to disregard. But I understand the value of git hooks, and I've worked with projects that use them extensively, and a plugin that does Part 1 is a no-brainer "let's use this". But Part 2 muddles things quite a bit, and would lead me to search for something simpler. Just my 2 cents, feel free to disregard, best of luck with your super-excellently-named project :)
First off, excellent name. Best name I've seen for a plugin in a while, and I think names matter a lot, so you're off to a great start.
I might be misunderstanding it, but I understand this plugin to have two parts:
Part 1 just takes the "git hooks" idea, and lets you implement them entirely within the gradle script. Getting git hooks to run properly on a new machine can be pretty tedious, and gradle handles problems like this wonderfully, so I think moving git hooks into a gradle plugin is a fantastic idea. It is easy to understand conceptually what is happening, but pretty tricky to actually do it. I think that's the sweet spot for build plugins - hard enough that you want a plugin, but easy enough that you can tell what is happening.
Part 2 is the
staging
task. I read the docs a couple times, and it seems like it has to be psychic or dig really deep into gradle's guts in order to understand what to "save". Also, if I already put some into the staging area, I'm a little worried about what might happen to it. Do I get an error, or does it just get clobbered? If something is hard to understand, it has to be really useful and really hard to build in order to justify getting through the docs. I might just be dumb, or maybe the docs just need a V2, but imo Part 2 is polluting Part 1.I personally don't like the "staging area" concept, and I sorta wish git just did blob storage and nothing else - no scripts, line ending conversion, etc. So I'm not really your audience regardless, feel free to disregard. But I understand the value of git hooks, and I've worked with projects that use them extensively, and a plugin that does Part 1 is a no-brainer "let's use this". But Part 2 muddles things quite a bit, and would lead me to search for something simpler. Just my 2 cents, feel free to disregard, best of luck with your super-excellently-named project :)