我的一个模块未满足 CPANTS 政策meta_yml_has_provides
文档指出:
将此发行版中包含的所有模块添加到 META.yml 字段“provides”中。 Module::Build 或 Dist::Zilla::Plugin::MetaProvides 会自动为您执行此操作。
在使用 ExtUtils::MakeMaker 时如何将其应用到我的 CPAN 模块?
你可以这样做:
use ExtUtils::MakeMaker;
use Module::Metadata;
WriteMakefile(
...
META_ADD => {
provides => Module::Metadata->provides(version => '1.4', dir => 'lib'),
},
...
);
但是您的最终用户还需要依赖 Module::Metadata。您可能想添加一些仅供作者使用的逻辑以供生产使用。 YMMV.
我不确定这是否真的值得。也许 MakeMaker 应该对此有内置支持。
以防万一有人需要 MakeMaker 解决方案,您还可以将提供内容添加到 Makefile.PL 中的 META_MERGE 信息中,如下所示:
META_MERGE => {
"meta-spec" => { version => 2 },
provides => {
'Your::Module1' => {file => 'lib/Your/Module1.pm', version => x.y},
'Your::Module2' => {file => 'lib/Your/Module2.pm', version => x.y},
},
版本标签是可选的,如果维护起来太繁琐的话。