I have a small problem with the semantics here, I have made some modules, all of which use Test::Pod, Test::Pod::Coverate, Test::YAML::Meta and Test::NoWarnings. For the experimental Kwalitee indicator *build_prereq_matches_use* to be true, I had to add them to the build_requires part of the Meta.YML. There are two problems with this:

Most of the scripts are in the 'xt' directory, so they wouldn't even be called during build 99 out of 100 times. (Only I use them), still they have to be listed as requirements for the build process.

The test script also run without Test::NoWarnings, so it is not really a requirement either.

If you are pedantic about this, you could even argue that testing itself is _not_ a requirement for the whole build process. (Just don't run make test)

So there are two ways to solve this:

Either remove them from the Kwalitee indicator (which would be bad).

Or add some more options, like "build_recommends". Or you could even add something like:

build_recommends
test_requires
test_recommends
extended_test_requires
extended_test_recommends

And how do I petition the Module::Build author to put this in the spec (optional of course)

*build_prereq_matches_use* would have to check those fields as well.

P.S.: *build_prereq_matches_use* doesn't alert me about a missing ExtUtils::MakeMaker, that is kind of wrong, since it is the only module *required* to run the build process.

Marc "Maluku" Lucksch

__END__

For the example above that would be this:

build_requires:
        ExtUtils::MakeMaker:    0
test_requires:
        Test::More:             0
test_recommends:
        Test::NoWarnings:       0
extended_test_requires:
        Test::Differences:      0
extended_test_recommends:
        Test::Pod:              0
        Test::Pod::Coverage:    0
        Test::YAML::Meta:       0

Reply via email to