2012-09-07 46 views
20

Writing R Extensions Manual,我读到CRAN提交包放在哪里?

从R 2.14.0为Sweave源的优选位置是源包的 子目录小插图,但对于兼容性 与早期版本的R,晕影源如果短片不存在,将在 inst/doc中查找。

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

回答

20

你把.Rnw来源vignettes/你确实,但你错过了关键的一步;不要检查源代码树。预期的工作流程是构建源代码tarball,然后检查tarball。构建tarball将创建vignette PDF。

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

例如将建立从所述源的源包压缩包中../foo/pkg与所附包名和版本的当前目录创建.tar.gz包。然后在该源码包上运行R CMD check

如果你想为你自己制作的插图放在vignettes/并构建源码包。在未来的某个日期,R Core可能会从inst/doc中删除构建晕影的功能,请立即使用建议的位置,并避免直接检查来源。

13

我也很难解释这一点。

我相信意图是,你应该把.Rnw文件vignettes/和PDF(适当压缩)在inst/doc/,这在技术上与文件同意,如果你仔细阅读足够了。 (也就是说,来源应该去vignettes/。我不知道它说了多少字,你应该把相应的PDF放在inst/doc/,但它不是而不是说,这种解释似乎使R CMD check快乐......)

的分辨率在@ GavinSimpson的回答(即一个有望建成压缩包,然后检查,而不是检查的源目录本身)。 (我的两分钱是,这可能是最好的,如果R型铁芯正式弃用(最终删除)直接来源检查,而不是混淆大家groundlings的...)

+2

这样做的目的是让您不要检查软件包源,而是检查*打包*版本,即由'R CMD build'操作创建的源软件包。 –

+5

如果将'foo.Rnw'和'foo.pdf'放入'vignettes /'中,pdf将自动转到安装的'doc'目录。无需通过“inst/doc”手动干预。 –

+1

其他的东西是错误的,因为很多软件包,包括我转换过的一些软件包都使用'vignettes /'。 –