The more I dive into tools like Puppet, the more I really want to use them everywhere. I've been getting closer to the provision-able development machine lately.
I typically develop in java. Though the whole gradle ecosystem seems to have embraced the wrapper, I think it's reasonable to expect that development and CI machines come with gradle. Checking out the puppet forge lead me directly to puppet-gradle, which was already built and did 90% of what I wanted.
The last 10% involved 5 pull requests, learning how to use rspec-puppet, and unexpectedly being listed as a contributor to the project. It feels great, to say the least.
I like to get involved with projects by submitting small fixes. I know how much it means to me when someone sends a pull request my way, and I doubt I'm the only one who feels this way. My first contributions were extra small:
- #3 broken link in README
- #4 fixing a bundler deprecation warning
- #5 ignoring a generated file that was not checked in
- #9 updating the default gradle version to current
It was at this point I noticed a feature was missing that I'd really like.
I don't like to use the daemon with gradle in CI or in development. It's there to speed up development, and while the intent is great, I've had some caching issues that were just enough to lose faith in the daemon. On top of this, it's reasonable to always force CI to do a clean build, caching nothing.
By default puppet-gradle will install the daemon. As of pull request #12, it's a configurable, tested parameter.
Thanks a lot to gini, who definitely made me feel like contributions were welcome. I certainly enjoyed making them! And if you're looking to provision a machine with gradle, take a look at puppet-gradle!