【问题标题】:roxygen2 not fully updating DESCRIPTION fileroxygen2 未完全更新说明文件
【发布时间】:2012-03-21 06:25:30
【问题描述】:

我正在制作我的第一个包rlandscape,使用 Roxygen2 并尝试遵循普通的 Roxygen 小插图,因为 Roxygen2 没有。

the vignette(第3 页)一样,我创建了一个名为rlandscape-package.R 的文件,其中只包含包文档。在小插曲中,他们说

每个 Roxygen 描述块必须后跟一个语句,即使 描述文件或包的标题材料,而不是特定的 功能。 roxygen() 作为 NOOP(空语句)提供 对于这种情况。

但是,如果我使用roxygen() 跟随描述块,则调用package.skeleton 会产生Error in eval(expr, envir, enclos) : could not find function "roxygen"。因此,我尝试完全保留 roxygen() 调用,并用 NA 替换它,这两者似乎产生相同的结果:package.skeleton() 成功运行(包括 rlandscape-package.R 作为 code_files 之一论点),然后我可以roxygenize

> roxygenize("rlandscape", roxygen.dir = "rlandscape")
Updating collate directive in  /Users/Gregor/Dropbox/rlandscape/rlandscape/DESCRIPTION 
Updating namespace directives
Writing plot.landscape.Rd
Writing rland.Rd
Writing rland.gui.Rd
Writing makePoints.Rd
Writing rCluster.Rd
Writing rlandscape-package.Rd
Writing rlandscape.Rd

这似乎运行成功,但DESCRIPTION文件附加了“整理”字段,但与package.skeleton创建的内容相同。为什么描述文件的其余部分没有更新?

【问题讨论】:

  • 另一件事。使用 roxygen2,对于不跟随代码的文档块,我相信建议放置一个 NULL(如果使用较旧的 roxygen 包)。

标签: r roxygen2


【解决方案1】:

roxygen2 正在按预期工作,但当我第一次使用它来记录包时,我遇到了同样的困惑。需要理解的重要一点是混合中有几个不同的包描述文件。

  • 处理rlandscape-package.R 中的roxygen 标记时,它会在源包的man 目录中生成一个文件rlandscape-package.Rd。这反过来会生成您在键入 ?rlandscape?"rlandscape-package" 时看到的文档。

  • 源代码树顶层目录中的DESCRIPTION 文件是一个完全独立的野兽。尽管它恰好生成了一个您可以看到的帮助文件(通过help(package="rlandscape")),但它在指导包生产方面还有许多其他更重要的角色。 roxygen2 接触/影响它的唯一方式是collate_roclet() 函数(在您roxygenize() 您的包时执行)将与中的 Collat​​e 字段执行合并预先存在的DESCRIPTION 文件(如this pdf 第10 页所述)。

主要的信息是,即使使用 roxygen2,如果您想更改 DESCRIPTION 文件,您也需要直接编辑它。

【讨论】:

  • 差不多 2 年后,值得补充的是,devtools 包现在提供了像 create_description 这样的功能,用于自动创建描述文件。
  • 作为2019和2.2.1版本,没有功能create_description
猜你喜欢
  • 2014-06-29
  • 1970-01-01
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-25
  • 2015-01-17
  • 1970-01-01
相关资源
最近更新 更多