Subject: | pod coverage test failure with Moose 0.26 and Pod-Coverage 0.18 |
Hi,
as reported in Debian bug #445805, http://bugs.debian.org/445805 ,
t/pod_coverage.t is failing for us with Moose 0.26 and Pod-Coverage 0.18:
t/pod_coverage................
# Failed test 'Pod coverage on MooseX::Getopt::OptionTypeMap'
# in /usr/share/perl5/Test/Pod/Coverage.pm at line 126.
# Coverage for MooseX::Getopt::OptionTypeMap is 75.0%, with 1 naked
subroutine:
# meta
# Looks like you failed 1 test of 3.
This is due to a change in Moose internals in 0.26. The function
MooseX::Getopt::OptionTypeMap::meta() is indeed missing documentation,
this was just not detected earlier.
The meta() function created by Moose is now no longer a constant
anonymous subroutine but rather a closure. As I understand it, the pod
coverage test happened to work earlier because
MooseX::Getopt::OptionTypeMap::meta() function was an alias for
MooseX::Getopt::Meta::Attribute, and Pod::Coverage would skip it when
walking the symbol tree.
Suprisingly, upgrading to Pod::Coverage 0.19 fixes this, since
it changes the check for imported functions and as a result skips
the meta() functions too.
The trivial fix is to add the missing documentation. There's also
Pod-Coverage-Moose available; using it might be a good idea since
it's specialized to Moose testing (and lists those meta() functions as
'trusted', ie. not requiring documentation.)
Thanks for your work,
--
Niko Tyni (Debian Perl Group)
ntyni@iki.fi