MakeMaker:make test vs make dist

时间:2011-03-18 19:10:12

标签: perl cpan makemaker

假设我使用module-starter创建了一个目录,并编写了几个额外的模块和测试。

make test然后会在t/中的所有模块的lib/中运行所有测试,但是make dist将只将MANIFEST中提到的文件打包到tar.gz中。

所以我最近通过运行make test && make dist并且仍然得到了破损的包裹而被烧毁了。

我的问题是:我错过了什么,或者这可以被报告为MakeMaker中的一个小错误? (Makefile.PL似乎依赖于此)。

2 个答案:

答案 0 :(得分:5)

您可以使用make disttest来创建MANIFEST的分发目录(相当于make distdir)并在其中运行make test。这可以保证您运行的文件与将要发送的文件相同。

我还重建了我的MANIFEST作为发布的一部分,这需要保持您的MANIFEST.SKIP最新。

总而言之,我的基本发布脚本是:

perl Makefile.PL
make manifest
make disttest
make dist

答案 1 :(得分:3)

在发布包之前运行make distcheck。这会警告您MANIFEST可能遗漏的任何内容。

某些模块在构建过程中生成文件(包括lib/下),因此MANIFEST中缺少的文件不一定会导致make dist失败。