我该如何将Perl模块发布到CPAN?

18

我需要创建一个CPAN模块,但我不知道从何处开始或如何操作。我已经用Perl编写了我的模块,但是不知道如何继续。有人可以帮忙吗?


2
要开始,请参见perlnewmodDist::Zilla::Starter - Håkon Hægland
1
虽然我同意你提出的观点,@Chris,但我不同意它们适用于这个问题。每当有多种方法可以解决问题时,官方文档真的无法涵盖所有情况。在我的经验中,编程问题通常也归结于找到和识别正确的文档。在我看来,Stack Overflow 的一个优势就是提供这方面的帮助。这个问题促使我运用自己的知识并进行研究,并把它们写下来放在一个可以被找到的地方。以前没有人这样做过,如果没有这个问题,我也不会这样做。 - simbabque
考虑阅读 brian d foy 在 YAPC::EU 上的演讲中的这些幻灯片。我经常将此文档用作参考,它提供了理解 Perl 模块编写所需的所有内容。 - smonff
1个回答

20

在开始之前,您需要完成两件主要的事情。

首先,您需要创建一个PAUSE账户。PAUSE是维护CPAN内容的服务。它有点过时,但可以从这里开始阅读并了解相关信息。它归结为选择一个名称、创建一个帐户并等待批准。

接下来,您需要决定如何打包您的模块。您可以选择使用各种工具或自己构建分发。

  • perlnewmod对此进行了一些解释,并建议使用Module::Starter,这是一个非常基础的工具。
  • Dist::Zilla是一个非常大的分发构建器,具有许多插件,可以为您创建文档、运行各种测试,通过您的git自动列出贡献代码的人员名单,以及其他一系列功能。还有一些中间工具。
  • 我经常使用Minilla,它可以生成新的模块脚手架,运行您的测试,创建分发并将其上传到CPAN,但不提供其他功能。

您可能还想阅读我链接的每个工具的“参见”部分。它们互相指向。尝试一下,选择适合您的工具。

然后,您需要为您的分发选择一个名称。PAUSE页面上有一些指导方针。

确保包含有用的文档,编写测试,并将代码放在github上。将其放入元数据文件中。

最后,您需要将其打包,然后上传到PAUSE。打包是一个具有特定名称的tarbal。您可以手动创建它,也可以使用上述工具之一。

上传可以通过网站手动完成,也可以使用像 cpan-upload 这样的命令行工具或者如果包含此功能,则可以使用 bundler 进行上传。过一段时间,您会收到来自 PAUSE 的电子邮件,告诉您它已经在等待索引(CPAN Upload: ...),然后它会显示在 metacpan.org 上。当它准备好时,您将收到来自 PAUSE 的另一封电子邮件(PAUSE Indexer report ...)。

再过一段时间,您可能会收到来自 CPAN testers 的电子邮件,它会对所有新上传物进行烟雾测试,并针对多个平台进行测试。有时候会出现问题,您会听到相关消息。这就是为什么拥有良好的测试非常重要。

以下是一些额外的资源:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接