CRAN 包检查和 R CMD 检查-as--cran 之间的差异
Posted
技术标签:
【中文标题】CRAN 包检查和 R CMD 检查-as--cran 之间的差异【英文标题】:Discrepancy between CRAN package check and R CMD check -as--cran 【发布时间】:2014-11-05 21:33:58 【问题描述】:我想向 CRAN 存储库提交一个包 (DLMtool)。当我使用R CMD check --as-cran
检查包裹时,我只收到一条关于新提交的注释。
但是,当我提交包时,我收到了 R 核心团队关于我没有收到的错误的反馈。例如:
Quitting from lines 261-262 (DLMtool.Rnw)
Error: processing vignette 'DLMtool.Rnw' failed with diagnostics:
one node produced an error: NAs are not allowed in subscripted assignments
我无法通过自己运行代码来重现此错误。但这不是这篇文章的重点:我不担心具体的错误,而是我自己无法检测到这些错误。到目前为止,Ripley 教授一直很有耐心。我非常不想再浪费他或任何 R 核心团队的时间,将它们用作一步一步的检查过程。
如果--as-cran
不足,如何重新创建CRAN包检查流程?
据我所知,有人就以前版本的 R 提出了一个类似的问题,但没有得到令人满意的回答:
CRAN package check finds warning that R CMD check --as-cran doesn't
干杯,
汤姆
我使用的是 Windows 7 x64、RStudio 0.98.507 和 R 3.1.1 x64。
【问题讨论】:
CRAN 检查 R 的发布版本和开发版本;您可能只使用发布版本。 这可能是在 R-devel 中改变的东西,所以你需要使用它来运行你的测试。要在 Windows 上执行此操作,您需要从源代码构建 R。如果您以前没有这样做过,那可能会很乏味。我一直在收集some notes on how to do it here,如果您以前没有这样做过,您可能会发现它很有用。另一种方法是通过 Travis CI 之类的工具运行该软件包,这样您就不必在自己的机器上构建 R-devel。devtools::build_win()
通常很有帮助
感谢 Dirk、Thomas 和 Hadley。这些现在在我的提交步骤列表中。
你可以试试我在这里描述的 docker 容器:***.com/a/33202985/2161065
【参考方案1】:
向 CRAN 提交一个包仍然让我感到不安,尽管在很多情况下都取得了成功。
需要检查的一些事项:
-
确保您使用的是正确的流程
具体来说,使用:
R CMD build pkg
R CMD check pkg_version.tar.gz
确保使用当前版本的 R 以及开发分支 R-devel (http://cran.r-project.org/bin/windows/base/rdevel.html) 进行检查
将你的包提交给 windows builder (http://win-builder.r-project.org/)
确保您已阅读并完全理解 CRAN 提交政策的每一句话 (http://cran.r-project.org/web/packages/policies.html)
使用在线提交表单 (http://cran.r-project.org/submit.html) 提交您的包裹
然后希望最好的。
说实话,我在 CRAN 构建团队中遇到的每个个人都非常耐心和乐于助人。
【讨论】:
感谢 Andrie 编辑我的帖子并提供可靠的答案。我将按照您的建议检查包含 R 的当前版本和开发版本的软件包。 然而,我遇到的问题源于包装的随机性。 Ripley 教授发现了一个合理的错误,我最终通过足够的复制设法重新创建了该错误。为了使小插图构建在未来的迭代中稳定,我选择使用 set.seed() 以便用户获得与小插图相同的结果,并且奇怪的错误不会在那个阶段出现(这可能会浪费 CRAN 核心团队时间)。以上是关于CRAN 包检查和 R CMD 检查-as--cran 之间的差异的主要内容,如果未能解决你的问题,请参考以下文章
R CMD CHECK --as-cran在OS X Catalina上失败