Adventures with Dist::Zilla - 3 - Can't Get No Satisfaction
I am still slowly working my way through Dist::Zilla attempting to get the config that works for me...
I suspect that the plethora of PluginBundles::personid are down to it being very hard to slightly modify a config other than by writing it out in full or by nasty filtering gymnastics...
For example I've been building a Task:: module for work - this pulls in everything I want as a base system on our servers. I started with an existing Task module, git cloned it, and modified it into the form I wanted - bringing along the initial Dist::Zilla config and changing that to suit as well.
The dist.ini file worked well for it - I just wanted to make 3 changes:-
- Use my own timezone rather than the embedded configured one
- Specify version numbers rather than using the AutoVersion
- Not upload to CPAN - this is internal (and experimental) only
The config fragment I ended up with was this:-
[NextRelease]; -- Use JQUELIN's bundle but without auto version numbering
; -- and with NextRelease removed (time zone issues)
; -- and with the actual PAUSE upload suppressed (private module)
[@Filter]
-bundle = @JQUELIN
-remove = AutoVersion
-remove = NextRelease
-remove = UploadToCPAN
weaver = task; -- we need a releaser module, so here is a fake one...
[FakeRelease]
which just feels too fiddly and as though I am sifting through the internals of the system.
Maybe I am just too fussy...
I think the personal pluginbundles are mostly for ease of management. If I decide to change my plugins, I don't want to update every one of my dist.ini files. That wouldn't be DRY and dzil is all about DRY.
The other reason is that there are so many plugins that finding a dist.ini that suits your style is a big N choose K factorial problem. It's usually easier to design your own bundle than to try to take slices of other people's bundles (which might themselves change over time) and modify them.
I generally recommend that people write out their dist.ini in full until they understand how the different plugins work and find a default set that they like. That's when it's time to make a PluginBundle
The other way that many people are customizing dzil is by contributing patches to each other's plugins. If some plugin has some default that you want to be able to change, the community of plugin-writers is (so far) pretty open to contributions.
And for anyone worried that Dist::Zilla seems hard, make sure you work through the Choose Your Own Tutorial on dzil.org and come ask questions on #distzilla on irc.perl.org.
-- dagolden