During the great RT will be shutdown craze earlier this year, I updated my Dist::Zilla setup to use a custom author bundle (Dist::Zilla::PluginBundle::Author::DOMM) so I can unify my Dist::Zilla config in one place (instead of copying
dist.ini from project to project, adding & modifying it from time to time, but never backporting improvements to older projects).
META.yml vs META.json?
I stopped generating
META.yml files and now only generate
META.json. As far as I can tell, the contents of those two files is identical, so I think it should be enought to include the data once per dist (and I prefer JSON to YAML...)
Of course, CPANTS now complains about the missing
META.yml. (Which is of course ironic, because it was me who first implemented this CPANTS metric...)
Maybe some other (old?) tools still need
META.yml? So should I again produce both
Dist::Zilla user config?
During my deep dive into Dist::Zilla plungins and author bundles, I learned that Dist::Zilla looks for per-user configuration in
~/.dzil/config.ini. So I moved some general information (my name & email, default license) from all my
dist.ini files into this central config file.
But it seems that this makes contributing to my dists even harder, as the
dist.ini file included in the dist now is invalid. Contributors will get a (helpful) error message when running
dzil build, but this is yet another hurdle for potential contributors. I've already got two pull requests to "fix" this.
On the one hand I would prefer to keep the global config file, so I can easily change data. On the other hand I could just as well run a small command to change whatever value I might want to change on multiple files (using this hot new tool called "Perl", which makes mangling text in multiple files very easy) and thus make contributions easier.
How are other CPAN authors handling this?
Or is it all Dist::Zilla's fault?
Some people (like brian d foy in this thread about Distar, a simpler authoring tool (but it works with ExtUtils::MakeMaker, which is a module I don't want to touch..)) argue that Dist::Zilla is too complex and make contributing very hard (because potential contributors now need to install a lot of Dist::Zilla plugins).
But I actually like Dist::Zilla a lot (esp after finally coming up with a PluginBundle that fits my workflow). So I will keep using Dist::Zilla, but would really appreciate any feedback on my two questions (
META.yml and user config).
You can either enter a comment below (if my homegrown comments system works..), or via reddit
Update: user config vs github
After applying another patch supplied by Paul Cochrane that adds some github testing hooks, it seems to be clear that depending on the user config is a bad idea. Surprisingly, github will NOT set up a
~/.dzil/config.ini so it can "contribute" to my dist (by running it's test suite), see eg here
So I guess I will stop using the global config file...