簡體   English   中英

文檔中的Travis CI R包錯誤

[英]Travis CI R package error in documentation

問候和致敬,

我最近連接了一個包含R包的github倉庫給Travis CI。 我認為存儲庫可以很好地構建,但是,有幾個檢查錯誤出現,我無法在本地安裝的Windows,OS X或Ubuntu 14.04 LTS上復制。

錯誤源自共享以下共同的功能:

  1. 擁有使用@keyword內部編碼的roxygen2幫助文檔。
  2. 是使用Rcpp / RcppArmadillo編寫的。

具體來說,我從Travis CI收到以下警告:

在文檔對象“內部函數此處”中使用的函數或方法,但不在代碼中:

這不是特別成問題,因為它是一個警告。 一篇文章使用@method和@export解決了此示例的不同形式。 但是,Rcpp函數不屬於OO類(S3 / S4 / RR)。

但是,當Travis CI開始評估軟件包的示例時,此警告將成為錯誤:

錯誤:找不到函數“這里的內部函數”

並導致構建失敗。 但是,構建本身應該通過檢查,因為函數確實存在。

Travis CI按以下方式使用建議的准則進行配置:

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代碼調用了docs中列出的內部函數之一。

我相信這是最新的面向公眾的建設: Travis CI報告(v1.0.1)

CRAN第一版的結果: CRAN報告(v1.0.0)

任何想法都會受到歡迎。

我可以復制筆記本電腦上的警告/錯誤(運行OS X)。 我也很確定如果你檢查你的存儲庫,構建tar球然后運行R CMD檢查,你將得到與Travis CI相同的警告/錯誤。 (我假設你只從R Studio中檢查了你的包裹。)

據我所知,問題是您將R/RcppExports.Rsrc/RcppExports.cpp.gitignore ,這意味着這些文件不在GitHub上。 Travis CI不會為您運行Rcpp::compileAttributes

有兩個簡單的解決方案:

  1. 從.gitignore中刪除R/RcppExports.Rsrc/RcppExports.cpp ,並將其與其他所有內容一起提交給GitHub。 這是有道理的,因為這些文件實際上是你的軟件包的一部分,你不應該期望最終用戶在安裝軟件包之前編譯它們。 我認為這是解決這個問題的正確方法。
  2. 在構建包之前,在travis.yml中添加一行以運行Rcpp :: compileAttributes,例如Rscript -e "Rcpp::compileAttributes()"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM