Re: Added META.json and MYMETA.json support to EU::MM
On 2011.2.6 11:52 PM, David Golden wrote: 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 risks a circular dependency loop which I don't trust CPAN installers, particularly older ones, to gracefully get themselves out of. 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. META generation has to continue to work, and I agree it would be best to have everything normalize on one thing. I went through the process of bundling up all CPAN::Meta's deps into inc. It's not hard, it's this through the whole tree: export MAKEMAKER_SRC=/path/to/makemaker/src export PERL5LIB=$MAKEMAKER_SRC/lib:$MAKEMAKER_SRC/inc/:$MAKEMAKER_SRC/t/lib perl5.6 Makefile.PL LIB=$MAKEMAKER_SRC/inc/ make test make install I've pushed my work so far into a cpan_meta branch. https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker/commits/cpan_meta I hit a snag on Storable. That isn't core until 5.8 and there's no pure Perl alternative. Something will have to be done about that. Thoughts? -- Stabbing you in the face for your own good.
Added META.json and MYMETA.json support to EU::MM
I've pushed commits to the Perl Toolchain Gang repo on github that add support for creating META.json and MYMETA.json files. In addition, all META file creation now goes through CPAN::Meta to ensure valid, standardized metafiles. CPAN::Meta is an optional dependency, so tests that would need it just skip if not available. As with my work on Module::Build, the version 2 CPAN Meta files are just upconversions of version 1.4 data. This gets the ball rolling with META.json files, without requiring potentially substantial API revisions that I think are just too risky a couple weeks before the Perl 5.14 freeze. Michael -- I think it would be great if we could get a dev version released this week so we can see how it smokes and then merge it into blead if it looks decent. In the meantime, encourage people to try it out from the repository. -- David
Re: Added META.json and MYMETA.json support to EU::MM
On 2011.2.6 7:57 AM, David Golden wrote: I've pushed commits to the Perl Toolchain Gang repo on github that add support for creating META.json and MYMETA.json files. In addition, all META file creation now goes through CPAN::Meta to ensure valid, standardized metafiles. Thank you for doing that work! 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. 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. 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? Michael -- I think it would be great if we could get a dev version released this week so we can see how it smokes and then merge it into blead if it looks decent. Between work and Test::Builder2, I have no time for MakeMaker. But you have PAUSE co-maint now. -- A: Yes. Q: Are you sure? A: Because it reverses the logical flow of conversation. Q: Why is top posting annoying in email?