假设我使用module-starter
创建了一个目录,并编写了几个额外的模块和测试。
make test
然后会在t/
中的所有模块的lib/
中运行所有测试,但是make dist
将只将MANIFEST
中提到的文件打包到tar.gz中。
所以我最近通过运行make test && make dist
并且仍然得到了破损的包裹而被烧毁了。
我的问题是:我错过了什么,或者这可以被报告为MakeMaker中的一个小错误? (Makefile.PL似乎依赖于此)。
答案 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
失败。