问候和问候,
我最近连接了一个 github repo包含 Travis CI 的 R 包。我认为存储库会很好地构建,但是,出现了几个检查错误,我无法在 Windows、OS X 或 Ubuntu 14.04 LTS 的本地安装上复制这些错误。
错误源自具有以下共同点的函数:
具体来说,我从 Travis CI 收到以下警告:
Functions or methods with usage in documentation object 'internal function here' but not in code:
这不是特别成问题,因为它是一个警告。 previous post使用@method 和@export 解决了此示例的不同形式。但是,Rcpp 函数不属于 OO 类 (S3/S4/RR)。
然而,当 Travis CI 开始评估包的示例时,这个警告就会变成一个错误:
Error: could not find function "internal function here"
并导致构建失败。尽管如此,构建本身应该通过检查,因为该函数确实存在。
Travis CI 是使用 recommended guidelines 配置的以下列方式:
language: r
sudo: required
warnings_are_errors: true
r_packages:
- ggplot2
- devtools
- RcppArmadillo
- knitr
- gridExtra
- grid
r_build_args: "--no-build-vignettes"
r_check_args: "--no-build-vignettes --as-cran"
备注 添加了 --no-build-vignettes 是因为 Travis 在构建它们时会出错,因为 R 代码调用了文档中列出的内部函数之一。
这是我相信最新的面向公众的构建:
Travis CI report (v1.0.1)
CRAN 上第一个版本的结果:
CRAN report (v1.0.0)
任何想法都会受到欢迎。
最佳答案
我可以在我的笔记本电脑(运行 OS X)上复制警告/错误。我也很确定,如果您检查存储库,构建 tar 球,然后对其运行 R CMD 检查,您将收到与 Travis CI 相同的警告/错误。 (我假设您只在 R Studio 中检查了您的包。)
据我所知,问题是您添加了 R/RcppExports.R
和 src/RcppExports.cpp
给您的 .gitignore
,这意味着这些文件不在 GitHub 上。 Travis CI 不运行 Rcpp::compileAttributes
为你。
有两个简单的解决方案:
R/RcppExports.R
和 src/RcppExports.cpp
从 .gitignore 并将它们与其他所有内容一起提交到 GitHub。这是有道理的,因为这些文件实际上是您的软件包的一部分,您不必期望最终用户在安装您的软件包之前编译它们。我认为这是处理这个问题的正确方法。 Rscript -e "Rcpp::compileAttributes()"
. 关于r - 文档中的 Travis CI R 包错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34585560/