roxygen2没有完全更新描述文件

时间:2012-03-02 18:34:43

标签: r roxygen2

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

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

  

每个Roxygen描述块必须后跟一个语句,甚至   标题材料,用于描述文件或包代替特定文件   功能。 roxygen()作为NOOP(null语句)提供   对于这种情况。

但如果我使用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文件附加了“Collat​​e”字段,但与package.skeleton创建的字段相同。为什么描述文件的其余部分没有更新?

1 个答案:

答案 0 :(得分:30)

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

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

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

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