【问题标题】:Where can I find the cpanfile format definition?在哪里可以找到 cpanfile 格式定义?
【发布时间】:2013-07-17 09:47:29
【问题描述】:

我们考虑使用 MinillaDist::Milla 进行 perl 开发。声明依赖是通过cpanfile 完成的。我希望找到关于可以声明什么以及如何声明的确切定义。但是

  • perldoc cpanfile: 仅显示主要用法。 “SEE ALSO”部分没有帮助。

  • perldoc Module::CPANfile: 与 cpanfile 相同。

  • perldoc cpanfile-faq:没有确切语法的解释或指向它的链接,只有

熟悉的 DSL 语法

这是一种新的文件类型,但格式和语法并不是全新的。 它可以声明的元数据正是“Prereqs”的子集 CPAN 元规范。

语法从 Module::Install 中借鉴了很多。 Module::Install 是一个 轻松声明模块元数据(例如名称、作者和 依赖关系。 cpanfile 格式只是为了提取依赖关系 到一个单独的文件中,这意味着大多数开发人员都是 熟悉语法。

有人知道在哪里可以找到cpanfile 语法/格式的准确描述吗?

【问题讨论】:

  • 真的无处可去。去骂宫川。 :)
  • @hobbs:我不想大喊大叫。世界并不完美,Perl 及其世界也是如此。我只是很惊讶没有找到文档。

标签: perl perl-module


【解决方案1】:

我安装了Module::CPANFileperldoc cpanfileperldoc cpanfile-faq 可用。

cpanfile 的 POD 状态:

[the] cpanfile specification (this document) is based on Ruby's
Gemfile http://gembundler.com/man/gemfile.5.html specification.

cpanfile 手册页中的链接已损坏。它应该指向:http://bundler.io/v1.3/man/gemfile.5.html

cpanfile 旨在“向后兼容”Module::Install DSL 语法,并且“可转换为 CPAN::Meta::Prereqs”并受CPAN::Meta Spec v.2 等启发。

据我了解,cpanfile 在某种程度上是一种“元格式”,适用于一系列 TIMTOWTDI 方法(请参阅miyagawa's blog describing cpanfile),与Module::Install 兼容,并且主要是自我记录。例如,如果您在包含META 文件的目录中运行mymeta-cpanfile,它将为您构建一个cpanfile;您可以编写一个脚本来描述CPAN::Meta::Prereqs 的先决条件,然后$file->save('cpanfile'); 编写一个cpanfile

至于Dist::Milla,在教程中(参见Dist::Milla 中包含的POD)miyagawa 指出 “如果您决定手动构建 [a] 新的cpanfile,则格式大多兼容Module::Install 的要求 DSL”。本教程还提供了一个简短的示例。

我认为让miyagawa 在分发文档中澄清cpanfile 规范/格式的状态和用例是公平的。那和更多的例子会回答像你这样的问题。他已经完成了这方面的大部分工作 - 只是不是全部在一个地方。

【讨论】:

  • “基于”是什么意思?相同的语法、相同的语义、扩展的 perl 特性……?我想阅读 PERL 的确切格式/定义,或者我必须阅读 ruby​​ gem 规范 ;-) !顺便提一句。链接已损坏。
  • @katastrophos:但是你没有为断开的链接写问题——好吧,我写了。
  • @SlavenRezic:你是对的。使用该链接,您将被重定向到bundler.io/man/gemfile.5.html,这是一个“找不到页面”站点。您必须转到主页并从那里开始搜索(我没有这样做)。
  • @SlavenRezic 和 katastrophos - 我修复了链接并使用cpanfile github 在上游添加了一个拉取请求。干杯
  • 谢谢@G.Cito。有趣的是(比如 Module::Install 的依赖处理)。不幸的是,它没有回答我的问题。我很好奇结果。如果没有文档,人们在哪里知道如何使用 cpanfile?
猜你喜欢
  • 2022-01-10
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
  • 2016-01-14
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多