假设我使用 . 创建了一个目录module-starter
,并从那以后编写了几个额外的模块和测试。
make test
然后将在中的所有模块上运行所有测试,但只会将中提到的文件打包到 tar.gz中。t/
lib/
make dist
MANIFEST
所以我最近因为跑步make test && make dist
而被烧伤,但仍然得到一个破损的包裹。
我的问题是:我是否遗漏了什么,或者这可以报告为 MakeMaker 中的一个小错误?(Makefile.PL 似乎依赖于哪个)。
您可以使用make disttest
它将从 MANIFEST(相当于make distdir
)创建一个分发目录并make test
在其中运行。这可以保证您运行的文件与将要交付的文件相同。
作为发布的一部分,我还重建了我的 MANIFEST,这需要使您的 MANIFEST.SKIP 保持最新。
总而言之,我的基本发布脚本是:
perl Makefile.PL
make manifest
make disttest
make dist
make distcheck
在发布包之前运行。这将警告您您的MANIFEST
.
一些模块在构建过程中生成文件(包括 under lib/
),因此在 中丢失的文件MANIFEST
不一定会导致make dist
失败。