/ domm

I hack Perl for fun and profit

Follow me on twitter!
Atom Icom ... on Atom!
03.04.2021: Two Dist::Zilla questions (META.yml; user config)

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).

Two of my decisions might have been not too smart (as indicated by various pull requests), so I'm now looking for feedback...

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 META.yml and META.json?

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...

Comments (via senph)

03.01.2021: Bulk downloading all episodes of a podcast
12.12.2020: Advent of Code Day 12 - sailing to a pause
11.12.2020: Advent of Code Day 11 - slow SeatGoL
10.12.2020: Advent of Code Day 10 - trillion jolts
09.12.2020: Advent of Code Day 9 - while learning
08.12.2020: Advent of Code Day 8 - running code
07.12.2020: Advent of Code Day 7 - baggy recursion
06.12.2020: Advent of Code Day 6 - simple counting
05.12.2020: Advent of Code Day 5 - hard fail
>>>>>>>>>>
<