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

Reply via email to