I've got a M::B subclass that forces itself into configure_requires. This subclass also uses version.pm. Parse::CPAN::Meta cannot handle the resulting META.yml (example attached), which means that current CPANPLUS cannot install any distribution that uses my subclass.
I filed a bug against Parse::CPAN::Meta: https://rt.cpan.org/Ticket/Display.html?id=46148. This is Adam's response:
This is not a bug in Parse::CPAN::Meta. The "YAML Tiny" subset of YAML that is used for META.yml forbids the use of anchors or embedded objects (regardless of whether they are version.pm or otherwise). This is a bug in Module::Build, it forgot to serialize the version object in configure_requires before writing it into the META.yml. Module::Build should probably do this in the general case anyway, objects shouldn't be getting past it into the file.
So, what's the prevailing opinion on this?
--- name: My-Constants version: v1.10.146560 author: - 'Blah <bl...@blrfl.com>' abstract: Placeholder module for distribution dealing with general sets of constants. license: restrictive configure_requires: My::Module::Build: &1 !!perl/hash:version original: v1.10.146560 qv: 1 version: - 1 - 10 - 146560 requires: Exporter: 0 Readonly: 0 Readonly::XS: 0 strict: 0 utf8: 0 version: 0 warnings: 0 build_requires: English: 0 File::Find: 0 File::Slurp: 0 File::Which: 0 IPC::Open2: 0 My::Module::Build: *1 My::Utilities::Testing: 0 Perl::Critic::Bangs: 0 Perl::Critic::More: 0 Perl::Critic::Swift: 0 Perl::MinimumVersion: 0 Pod::Spell: 0 Regexp::Parser: 0 Test::Class: 0 Test::Compile: 0 Test::More: 0 Test::Perl::Critic: 0 Test::Pod: 0 Test::Pod::Coverage: 0 Text::ParseWords: 0 charnames: 0 parent: 0 dynamic_config: 1 provides: My::Constants: file: lib/My/Constants.pm version: v1.10.146560 My::Constants::Boolean: file: lib/My/Constants/Boolean.pm version: v1.10.146560 My::Constants::Character: file: lib/My/Constants/Character.pm version: v1.10.146560 My::Constants::Time: file: lib/My/Constants/Time.pm version: v1.10.146560 generated_by: Module::Build version 0.33 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4