我开始使用 Dist::Zilla几个月前。然而,在 YAPC::NA 有人提到他们使用 ShipIt反而。然后今天我注意到miyagawa 的cpanminus directory on github 中有一个.shipit 文件。 ,所以我决定再研究一下...
我最初的印象是 ShipIt 具有 Dist::Zilla 可用功能的一个子集,但我不想草率下结论。所以,对于那些在这两个方面都有经验的人来说,ShipIt 的优点/缺点是什么?与 Dist::Zilla ?
crossposted at perlmonks
最佳答案
我是 Dist::Zilla 的作者。
在选择继续编写 Dist::Zilla 之前,我对 ShipIt 进行了相当广泛的评估,最初它们涵盖了几乎完全相同的问题空间:完成构建和上传 CPAN 发行版的所有无聊的繁重工作。 Dist::Zilla 现在除了 ShipIt 之外的所有功能,或多或少都是后来添加的。
如果您只需要 ShipIt 的功能,我仍然建议您强烈考虑 Dist::Zilla,原因很简单:可破解性。如果我不能写新东西,我会使用 ShipIt,但我发现它的文档不足且难以扩展。它的插件不够通用,核心行为对您希望如何工作做出了太多假设。
Dist::Zilla 特别受到这个问题的启发:它把所有东西都变成了一个插件,每个插件都被赋予了一个非常非常小的接口(interface),这样它的假设就会受到强制限制。
ShipIt 相对于 Dist::Zilla 的一个好处是 ShipIt(据我所知)没有插件可以改变您实际编写代码的方式。这意味着您的文档看起来仍然一样,您仍然会有 Makefile.PL
, 等等。一些黑客不喜欢这么多基于 DZ 的 dist 从根本上改变了如何从其源存储库测试和构建 CPAN 代码的假设。 ShipIt 永远不会改变这一点。
可以避免在 Dist::Zilla 中使用任何此类插件,但总的来说,我的经验是人们几乎总是以一种或另一种形式使用它们。
关于perl - ShipIt 与 Dist::Zilla 的优势/劣势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3410108/