【问题标题】:Where to put package vignettes for CRAN submission?在哪里放置 CRAN 提交的包小插曲?
【发布时间】: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 的目录。我还应该使用已弃用的位置吗?

【问题讨论】:

    标签: r cran package-development


    【解决方案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.Rnwfoo.pdf 放在vignettes/ 中,pdf 将自动传输到已安装的doc 目录。无需通过inst/doc 进行人工干预。
      • 其他一些问题是因为许多软件包,包括我转换的一些软件包,都使用vignettes/
      • 我认为解决方案在@GavinSimpson 的回答中(即应该构建 tarball 然后检查它,而不是检查源目录本身)。问题:如果是这样,对于 R-core 来说,正式弃用(并最终删除)直接源代码检查而不是混淆我们所有的基础是否是一个更好的主意?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 2010-12-01
      • 2015-06-26
      • 2021-05-26
      • 2012-09-26
      • 1970-01-01
      相关资源
      最近更新 更多