在CRAN提交中放置包装晕影的位置?

时间:2012-09-07 20:51:45

标签: r cran package-development

Writing R Extensions Manual开始,我读到了

  

从R 2.14.0开始,Sweave源的首选位置是   源包的子目录vignet,但为了兼容性   使用早期版本的R,将查找晕影源   inst / doc如果没有晕影。

但是,当我创建包源的vignettes子目录时,当我运行devtools::check()R CMD check时,我会收到Package vignette(s) without corresponding PDF的警告。如果我将小插图(.Rnw和.pdf)放在inst/doc中,则检查完成后无需投诉。我尝试在已安装的打包中查看我的库,但没有看到任何名为vignettes的目录。我还应该使用已弃用的位置吗?

2 个答案:

答案 0 :(得分:20)

您将.Rnw来源放在vignettes/中,但是您错过了一个关键步骤;不要检查源树。预期的工作流程是构建源tarball,然后检查tarball。构建tarball将创建小插图PDF。

R CMD build ../foo/pkg
R CMD check ./pkg-0.4.tar.gz
例如,

将从../foo/pkg中的源代码构建源包tarball,在当前目录中创建.tar.gz包,并附加包名和版本。然后在该源包上运行R CMD check

如果您希望为您构建的插图将其放入vignettes/并构建源包。在将来某个日期,R Core可能会删除从inst/doc构建小插图的功能,因此请立即使用建议的位置,并避免直接检查来源。

答案 1 :(得分:13)

我也很难解释这一点。

我认为您应该将.Rnw文件放在vignettes/中,并将PDF(适当压缩)放在inst/doc/中,如果您仔细阅读,则在技术上与文档一致。 (也就是说,它说来源应该进入vignettes/。我没有看到它在多少单词中所说的内容,你应该将相应的PDF放在inst/doc/中,但它没有说出来,而这种解释似乎让R CMD check感到高兴......)

该解决方案在@ GavinSimpson的答案中(即一个人应该构建tarball然后检查它,而不是检查源目录本身)。 (我的两分钱是,如果R-core正式弃用(并最终删除)直接来源检查而不是混淆我们所有的基础......可能是最好的。)