ShipIt 与 Dist::Zilla 的优点/缺点是什么?
-
25-09-2019 - |
题
我开始使用 地区::齐拉 几个月前。然而,在 YAPC::NA 有人提到他们使用 装运它 反而。然后今天我注意到宫川的里面有一个.shipit文件 github 上的 cpanminus 目录, ,所以我决定再研究一下......
我的初步印象是 ShipIt 具有 Dist::Zilla 可用功能的子集,但我不想过早下结论。那么,对于那些有过两者经验的人来说,两者的优点/缺点是什么? 装运它 与 地区::齐拉?
解决方案
我DIST ::吉拉的作者。
我评估ShipIt相当广泛的选择先走,并写DIST ::吉拉面前,最初他们几乎涵盖了一模一样的问题空间:做建筑和上传CPAN分布的所有枯燥繁重的工作。所有的功能,DIST ::吉拉现在有超过ShipIt是后来增加,更多或更少的
如果你只需要ShipIt的功能,我的还是的建议你认真考虑DIST ::吉拉,一个很简单的道理:可编程性。如果我能的不的写一些新的东西,我会一直使用ShipIt,但我发现它是未公开,难以扩展。它的插件是不是通用的不够,核心行为让你想如何工作太多的假设。
DIST ::吉拉是专门通过此问题的启发:它把一切都成一个插件,每个插件被赋予了非常非常小接口,使得它的假设将强制限制
ShipIt超过DIST ::吉拉的一个好处是,ShipIt有(据我所知)没有插件,这将改变你实际编写代码的方式。这意味着你的文档将仍然看起来是一样的,你仍然有Makefile.PL
,等等。一些黑客不喜欢有这么多的基于DZ-dists中从根本上其源库改变如何假设测试和编译代码CPAN。 ShipIt永远不会改变这一点。
这是可能的避免使用任何插件等用蒸馏水::吉拉,但总的来说我的经验是,人们的做的使用它们,几乎总是以这种或那种形式。
其他提示
据我所知,我的初步印象是正确的。
ShipIt 提供的功能 释放 分布:
- 跟踪版本号
- 与版本控制集成
- 上传到CPAN
- 在编辑器中显示变更日志文件,以便您可以在发布之前对其进行编辑。
默认情况下,Dist::Zilla 提供使用单个命令将发行版上传到 CPAN 的功能(即 dzil release
)。Dist::Zilla 还具有以下功能 创造 新的发行版(即 dzil new My::New::Module
)。它还自动生成许多我以前必须手动维护的文件。
使用插件,Dist::Zilla 似乎能够提供 ShipIt 可用的大部分(如果不是全部)功能。使用插件添加全新功能也相对容易。