【问题标题】:What are the strengths/weaknesses of ShipIt vs Dist::Zilla?ShipIt 与 Dist::Zilla 的优势/劣势是什么?
【发布时间】:2011-03-25 12:25:59
【问题描述】:

几个月前我开始使用Dist::Zilla。然而,在 YAPC::NA 有人提到他们使用 ShipIt 代替。然后今天我注意到miyagawa的cpanminus directory on github中有一个.shipit文件,所以我决定再看一下......

我最初的印象是 ShipIt 具有 Dist::Zilla 的一个子集,但我不想草率下结论。那么,对于两者都有经验的人,ShipIt 与 Dist::Zilla 的优势/劣势是什么?

crossposted at perlmonks

【问题讨论】:

  • 没有投票关闭,因为这些链接(或一般的 SO)似乎都没有涵盖 ShipIt
  • @Eric:如果问题相同,则应更新答案以包括 ShipIt。我对此一无所知,因此欢迎将其与其他知名打包引擎进行比较。
  • @Ether:我不认为建议的副本是相同的。第一个链接是一个广泛的推荐链接。第二个链接与这个特定问题无关第三个链接是一个比较问题,但不适用于上述任何一个模块构建器。他们特别要求对 2 个特定的模块构建器进行比较。
  • 上面的第一个链接应该包括Shipit,所以我认为这个问题应该合并到那个链接中,而不是在分散在多个帖子中的各种分发系统之间进行比较。跨度>

标签: perl software-distribution dist-zilla


【解决方案1】:

我是 Dist::Zilla 的作者。

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

如果您只需要 ShipIt 的功能,我仍然建议您强烈考虑 Dist::Zilla,原因很简单:可破解性。如果我能够不编写新的东西,我会使用 ShipIt,但我发现它的文档不足且难以扩展。它的插件不够通用,而且核心行为对您希望如何工作做出了太多假设。

Dist::Zilla 特别受到这个问题的启发:它将所有东西都变成了一个插件,并且每个插件都被赋予了一个非常非常小的接口,这样它的假设就会受到强制限制。

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

可以避免在 Dist::Zilla 中使用任何此类插件,但总的来说,我的经验是人们确实几乎总是以一种或另一种形式使用它们。

【讨论】:

    【解决方案2】:

    据我所知,我最初的印象是正确的。

    ShipIt 提供发布发行版的功能:

    • 跟踪版本号
    • 与版本控制集成
    • 上传到 CPAN
    • 在编辑器中显示更改日志文件,以便您在发布前对其进行编辑。


    默认情况下,Dist::Zilla 提供了使用单个命令(即dzil release)将分发上传到 CPAN 的能力。 Dist::Zilla 还具有创建新发行版的功能(即dzil new My::New::Module)。它还会自动生成许多我过去必须手动维护的文件。

    使用插件,Dist::Zilla 似乎能够提供大部分(如果不是全部)ShipIt 可用的功能。使用插件添加全新功能也相对容易。

    【讨论】:

      猜你喜欢
      • 2011-02-08
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 2019-12-23
      • 2011-11-06
      • 2013-01-08
      • 2015-02-24
      • 2011-02-07
      相关资源
      最近更新 更多