MakeMaker:make test 与 make dist

发布于 2024-10-24 03:43:43 字数 402 浏览 7 评论 0原文

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

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

所以我最近因为运行 make test && 而被烧伤了。 make dist 仍然得到一个损坏的包。

我的问题是:我是否遗漏了某些内容,或者这可以报告为 MakeMaker 中的小错误? (Makefile.PL 似乎依赖于哪个)。

Let's say I've created a directory using module-starter, and written several additional modules and tests since.

make test would then run all tests in t/ on all modules in lib/, however make dist will only pack files mentioned in MANIFEST into tar.gz.

So I got burnt recently by running make test && make dist and still getting a broken package.

My question is: am I missing something, or this can be reported as a minor bug in MakeMaker? (Which Makefile.PL seems to rely upon).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

巨坚强 2024-10-31 03:43:43

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

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

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

perl Makefile.PL
make manifest
make disttest
make dist

You can use make disttest which will create a distribution directory from the MANIFEST (equivalent to make distdir) and run make test in that. This guarantees you're running against the same files as will be shipped.

I also rebuild my MANIFEST as part of making a release, which requires keeping your MANIFEST.SKIP up to date.

All in all, my basic release script is:

perl Makefile.PL
make manifest
make disttest
make dist
栖竹 2024-10-31 03:43:43

在发布软件包之前运行 make distcheck。这将警告您 MANIFEST 中可能缺少的任何内容。

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

Run make distcheck before you release your package. This will warn you about anything potentially missing from your MANIFEST.

Some modules generate files during the build process (including under lib/), so files missing in the MANIFEST shouldn't necessarily cause make dist to fail.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文