我已经在不同时间阅读了Dist::Zilla上的文档和一些博客文章。我从未对自己对它的理解充满信心。
在回答另一个问题时,@ Ether提出了将Crypt-SSLeay转换为使用Dist::Zilla
的可能性。
那么,我在哪里可以找到一个简明的指南,向我展示如何将现有的CPAN模块转换为使用Dist::Zilla
?问题是否有意义?
Makefile.PL
的{{1}}做了很多工作(很多似乎没有必要,我正在尝试修剪它)来找到特定于平台的Crypt-SSLeay
和include
目录,用于推断安装它的机器上的OpenSSL版本。如果我使用lib
?
答案 0 :(得分:10)
Dist::Zilla Choose Your Own Tutorial在Converting 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 over MakeMaker :: Awesome是因为它可以为测试目的构建你的dist而不必dzil build
。对于必须在每次微小更改后重建的XS模块,这是一个巨大的胜利。
答案 1 :(得分:8)
这些是迄今为止我发现最有帮助的网站,因为我正在转换CPAN发行版,我将继续使用它作为学习练习。我还没到那里,但到目前为止我还没有遇到过任何超级棘手的事情!
此外,irc.perl.org上的#toolchain和#distzilla频道充满了乐于助人的人,包括Dist :: Zilla的作者和其他相关工具。