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

Reply via email to