On Sat, Feb 5, 2011 at 9:43 PM, Michael G Schwern <schw...@pobox.com> wrote: >> CPAN::Meta is an optional dependency, so tests that would need it just >> skip if not available. > > The change log says this which needs to be discussed. > > INCOMPATIBLE CHANGES > * META and MYMETA files will only be created if CPAN::Meta is > installed to ensure consistent and valid META file generation > [David Golden] > > Making it an optional dep on CPAN::Meta will silently make META files > inconsistent on CPAN. I don't have CPAN::Meta installed. If I hadn't looked > at the change log I likely wouldn't have noticed until somebody told me my > releases were missing their META files. One of the reasons the META file > works so well is authors have to do nothing.
It could be a PREREQ_PM and still skip tests if not installed. That would solve the problem for all but the particular case of a local::lib bootstrap of a modern EU::MM into a perl before 5.8.9. And that could be rectified by local::lib also bootstrapping CPAN::Meta once EU::MM is installed. > Here are the options I see. First, make it use CPAN::Meta if available and if > not fall back to a built in one. MakeMaker already has a copy of YAML::Tiny > in ExtUtils::MakeMaker::YAML. The slightly inconsistent data is better than > no data at all. No. I'm on a campaign to eradicate copies of YAML::Tiny in core and have Jesse's support for that. We now have CPAN::Meta::YAML and that is the standard tool to be used by everything that needs it. > Another option would be to put CPAN::Meta into inc. Unfortunately, CPAN::Meta > has dependencies. Can they all be put into inc? CPAN::Meta::Tiny? Yes, everything can be put into inc. The only tricky one is version.pm and even that can have a pure-perl version put there. I haven't tested it that way, but I'm 95% sure it will work. It bloats EU::MM's dist a bit, but that's the price of backwards compatibilty. -- David