如何将 Perl 模块发布到 CPAN?

Posted

技术标签:

【中文标题】如何将 Perl 模块发布到 CPAN?【英文标题】:How do I release a Perl module to CPAN? 【发布时间】:2021-09-14 04:19:00 【问题描述】:

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

【问题讨论】:

要开始使用,请参阅 perlnewmod 和 Dist::Zilla::Starter 虽然我同意@Chris 的观点,但我不同意它们适用于这个问题。每当有不止一种方法可以做到时,官方文档实际上并没有涵盖它。根据我的经验,编程问题通常也归结为查找和识别正确的文档。在我看来,Stack Overflow 的优势之一就是提供帮助。这个问题促使我利用我的知识并通过研究来支持它,并将它全部写在可以找到它的地方。以前没有人这样做过,如果没有这个问题,我也不会这样做。 考虑阅读来自 YAPC::EU 的 brian d foy 的演讲中的 those slides。我多次使用此文档作为参考,它提供了理解 Perl 模块创作所需的所有内容。 【参考方案1】:

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

首先,您需要创建一个PAUSE account。 PAUSE 是维护进入 CPAN 的内容的服务。它有点过时了,但请从here 开始并通读它。归结为选择名称、创建帐户并等待批准。

接下来,您必须决定如何打包您的模块。您可以从各种工具中进行选择,也可以自己构建您的发行版。

perlnewmod 对此稍作解释,并建议 Module::Starter,这是一个非常简单的工具。 Dist::Zilla 是一个非常大的发行版构建器,有很多插件可以为你创建文档和运行各种测试,自动列出谁通过你的 git 为你的代码做出了贡献,以及许多其他事情。中间还有一些工具。 我经常使用Minilla,它会创建一个新的模块脚手架、运行您的测试、创建一个 dist 并将其上传到 CPAN,但仅此而已。

您可能还想阅读我已链接的每个链接的“另请参阅”部分。他们指向对方。玩一玩,然后选择对你说话的那个。

那么你必须chose a name for your distribution。在我上面链接的 PAUSE 页面中有一些指导。

确保包含有用的文档、编写测试并将代码放在 github 上。将其放入the meta data file。

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

上传可以通过网站手动完成,使用像cpan-upload 这样的命令行工具,或者如果它包含该功能,则使用捆绑器。过了一会儿,您收到一封来自 PAUSE 的电子邮件,告诉您它在那里并等待索引(CPAN 上传:...),然后它显示在 metacpan.org。您将收到来自 PAUSE(PAUSE Indexer 报告 ...)的另一封电子邮件,告诉您何时准备就绪。

再过一段时间,您可能会收到来自CPAN testers 的电子邮件,它会针对众多平台对所有新上传的内容进行冒烟测试。有时东西坏了,你会听到的。这就是为什么进行良好的测试很重要的原因。

这里有一些额外的资源:

An old question about rolling your own dist and its directory structure A step by step tutorial that uses Minilla What happens when you upload to CPAN?

【讨论】:

以上是关于如何将 Perl 模块发布到 CPAN?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 root 权限的情况下安装 Perl 模块?

如何退出当前 CPAN 模块并打开一个新会话?

我用 CPAN 成功安装了一个模块,但是 perl 找不到它。为啥?

卸载 cpan 安装的所有 perl 模块

在 XAMPP for Windows 上从 CPAN 安装 perl 模块

centos环境下使用CPAN安装perl模块