在哪里放置 CRAN 提交的包小插曲?
Posted
技术标签:
【中文标题】在哪里放置 CRAN 提交的包小插曲?【英文标题】:Where to put package vignettes for CRAN submission? 【发布时间】:2012-09-07 20:51:45 【问题描述】:从Writing R Extensions Manual,我读到了
从 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
的目录。我还应该使用已弃用的位置吗?
【问题讨论】:
【参考方案1】:您将.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
构建小插图的功能,因此请立即前往建议的位置,避免直接查看源代码。
【讨论】:
【参考方案2】:我也很难解释。
我认为您应该将.Rnw
文件放入vignettes/
并将PDF(适当压缩)放入inst/doc/
,如果您仔细阅读,这在技术上与文档一致。 (也就是说,它说 sources 应该放在 vignettes/
中。我看不出它在哪里说了这么多话,你应该把相应的 PDF 放在 inst/doc/
中,但它没有't not 说出来,这种解释似乎让R CMD check
高兴...)
解决方案在@GavinSimpson 的回答中(即,应该构建 tarball 然后检查它,而不是检查源目录本身)。 (我的两分钱是,如果 R-core 正式弃用(并最终删除)直接源代码检查而不是混淆我们所有的基础知识,这可能是最好的......)
【讨论】:
目的是让您不检查包源,而是检查 packaged 版本,即由R CMD build
操作创建的源包。
如果您将foo.Rnw
和foo.pdf
放在vignettes/
中,pdf 将自动传输到已安装的doc
目录。无需通过inst/doc
进行人工干预。
其他一些问题是因为许多软件包,包括我转换的一些软件包,都使用vignettes/
。
我认为解决方案在@GavinSimpson 的回答中(即应该构建 tarball 然后检查它,而不是检查源目录本身)。问题:如果是这样,对于 R-core 来说,正式弃用(并最终删除)直接源代码检查而不是混淆我们所有的基础是否是一个更好的主意?以上是关于在哪里放置 CRAN 提交的包小插曲?的主要内容,如果未能解决你的问题,请参考以下文章
我在哪里放置一个代码,当提交表单时,它将重定向到另一个页面? [复制]
在哪里放置 add_action php 代码以连接到 Ninja Forms