Lately, we're doing a lot of work on some for-now internal tools that operate on CPAN archives as a whole. They're sort of like CPAN::Mini and CPAN::Mini::Inject, writ large.
Doing stuff like unpacking an entire CPAN mirror to analyse its contents and prereqs is a real drag, though. We also need a lot of specific test cases, like "Do we get things right when the file is Foo-Bar-0.01.tar.gz but META.yml says the version 0.001, but no module actually has either of those versions?" (What is the right behavior in this scenario? I'm afraid I can't disclose that information.) ExtUtils::FakeMaker builds distributions out of various kinds of input. The only sort of useful input right now is a META.yml file. You describe a dist in META.yml format and it builds it for you, using a lot of assumptions if needed. Here's an example META.yml used in the test cases: --- #YAML:1.0 name: Mostly-Auto abstract: nothing to see here This produces a dist with a Makefile.PL (using EUMM), a manifest, a useless test, files in lib, etc. It also has its own META.yml which is NOT the same as the input, but rather a complete file. Right now this code is pretty slapdash, and requires 5.10. In the future, I might make it work on 5.8 and I will certainly add way, way more test cases. That's all! I hope someone else finds it useful. -- rjbs
