ShipIt vs Dist :: Zilla的优点/缺点是什么?

Chr*_*oms 10 perl software-distribution dist-zilla

几个月前我开始使用Dist :: Zilla.但是,在YAPC :: NA,有人提到他们使用的是ShipIt.那么今天我在github的 miyagawa的cpanminus目录中注意到了一个.shipit文件,所以我决定再研究一下......

我最初的印象是ShipIt有一个Dist :: Zilla可用的子集,但我不想妄下结论.那么,对于那些对两者都有过经验的人来说,ShipIt vs Dist :: Zilla的优点/缺点是什么?

在perlmonks交叉

rjb*_*jbs 7

我是Dist :: Zilla的作者.

在选择继续编写Dist :: Zilla之前,我对ShipIt进行了非常广泛的评估,最初它们几乎涵盖了相同的问题空间:完成构建和上传CPAN发行版的所有无聊工作.除了ShipIt之外,Dist :: Zilla现在拥有的所有功能都是后来添加的,或多或少.

如果您只需要ShipIt的功能,我仍然建议您强烈考虑Dist :: Zilla,原因很简单:可攻击性.如果我不能写新的东西,我会使用ShipIt,但我发现它没有记录,很难扩展.它的插件不够通用,核心行为对你的工作方式做了太多假设.

Dist :: Zilla的灵感来自于这个问题:它将所有内容都变成了一个插件,每个插件都有一个非常非常小的界面,因此它的假设会被强制限制.

ShipIt优于Dist :: Zilla的一个好处是ShipIt(据我所知)没有插件可以改变你实际编写代码的方式.这意味着您的文档看起来仍然相同,您仍然会有Makefile.PL,等等.一些黑客不喜欢这么多基于DZ的dists从根本上改变了如何从源库中测试和构建CPAN代码的假设.ShipIt永远不会改变它.

这是可能的避免使用任何插件等用蒸馏水::吉拉,但总的来说我的经验是,人们使用它们,几乎总是以这种或那种形式.