【问题标题】:Where can I find a concise guide to converting an existing CPAN module to use Dist::Zilla?在哪里可以找到将现有 CPAN 模块转换为使用 Dist::Zilla 的简明指南?
【发布时间】:2011-04-29 09:17:57
【问题描述】:

我曾多次阅读Dist::Zilla 上的文档和一些博客文章。我对自己的理解从来没有信心。

在回答另一个问题时,@Ether 提出了将Crypt-SSLeay 转换为使用Dist::Zilla 的可能性。

那么,我在哪里可以找到一份简明指南,向我展示如何将现有 CPAN 模块转换为使用 Dist::Zilla?这个问题有意义吗?

更新:

Crypt-SSLeayMakefile.PL 做了很多工作(很多似乎没有必要,我正在尝试修剪它)来查找特定于平台的 includelib 目录,以推断 OpenSSL 的版本在安装它的机器上。如果我使用Dist::Zilla,如何包含该功能?

【问题讨论】:

  • 如果你有很多 Makefile.PL 逻辑,最好保留它而不是使用 Dist::Zilla 来生成它。您可以根据需要使用尽可能多或尽可能少的 dzil,并且仍然像以前一样手动执行其他操作。考虑到 dzil 不是特别擅长为您构建复杂的 Makefile.PL,我建议您坚持使用已有的 Makefile.PL,其余部分使用 dzil。
  • 为什么要转换为 Dist::Zilla?我不是说你不应该,但如果它只是为了新的和闪亮的,我会说跳过它。我喜欢我的简单 Module::Release,即使它不是新的性感。
  • 另外,对于复杂的构建系统,我建议迁移到 Module::Build。子类化和添加额外的目标真的很容易。尝试配置事物而不尝试构建事物的“show_libs”排序目标可能是一个很好的调试步骤。即使是“mail_setup_to_developers”目标也可能很好:)
  • @brian 我不一定想转换为Dist::Zilla。该建议在其他地方出现,我认为这可能是我最终弄清楚的好机会。另一方面,您的Module::Build 建议很棒。
  • 我会说你先在其他东西上尝试 Dist::Zilla,这样你就可以在无关紧要的地方犯很多错误。 :)

标签: perl cpan dist-zilla


【解决方案1】:

Dist::Zilla Choose Your Own TutorialConverting a Dist to Dist::Zilla 上有一个页面。它没有提到的一件事是我的VersionFromModule 插件,如果您想复制许多人使用 MakeMaker 的方式,该插件很有用,发行版从主​​模块获取其版本号。 (许多人使用 dzil 的另一种方式,dist.ini 中的版本和一个将其粘贴到模块中的插件,但任何一种方式都有效。)

如果我需要一个比 dzil 生成的更复杂的 Makefile.PL,我会切换到 Module::Build 并使用我的 ModuleBuild::Custom 插件,这让我可以编写自己的 Build.PL 并让 dzil 像先决条件一样放入元数据.

MakeMaker::Awesome 插件让您可以使用 Makefile.PL 执行类似的操作,但这并不是我想要的。相反,我编写了一个MakeMaker::Custom 插件,它的工作原理与我的ModuleBuild::Custom 插件非常相似。的最大优势 MakeMaker::Custom 优于 MakeMaker::Awesome 的原因在于,它可以为测试目的构建您的 dist,而无需执行 dzil build。对于每次小改动后都必须重新构建的 XS 模块来说,这是一个巨大的胜利。

【讨论】:

  • 我会牢记MakeMaker::Awesome,因为我可能会辜负它的精彩。 ;-)
【解决方案2】:

这些是迄今为止我发现最有帮助的网站,因为我正在转换我共同维护的 CPAN 发行版以使用它,作为学习练习。我还没有,但到目前为止我还没有遇到任何超级棘手的问题!

此外,irc.perl.org 上的#toolchain 和#distzilla 频道也有很多乐于助人的人,包括 Dist::Zilla 和其他相关工具的作者。

【讨论】:

    猜你喜欢
    • 2019-09-24
    • 2013-05-03
    • 2011-03-05
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 2021-12-31
    • 2021-07-05
    • 2016-06-18
    相关资源
    最近更新 更多