代码之家  ›  专栏  ›  技术社区  ›  coatless

文档中的Travis CI R包错误

  •  4
  • coatless  · 技术社区  · 10 年前

    问候和问候,

    我最近接了一个 github repo 包含到Travis CI的R包。我原以为存储库会构建得很好,但是,出现了一些检查错误,我无法在本地安装Windows、OS X或Ubuntu 14.04 LTS时复制这些错误。

    这些错误源于具有以下共同点的函数:

    1. 拥有使用@keyword internal编码的roxygen2帮助文档。
    2. 使用Rcpp/RcppArmadillo编写。

    具体而言,我收到Travis CI的以下警告:

    文档对象“内部”中使用的函数或方法 此处的函数',但不在代码中:

    这不是特别的问题,因为这是一个警告。A. previous post 使用@method和@export解决了这个示例的不同形式。然而,Rcpp函数不属于OO类(S3/S4/RR)。

    但是,当Travis CI开始评估包的示例时,此警告将变为错误:

    错误:无法在此处找到函数“内部函数”

    并导致构建失败。尽管如此,构建本身应该通过检查,因为函数确实存在。

    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"
    

    笔记 由于R代码调用文档中列出的内部函数之一,因此Travis在构建它们时会出错,所以添加了--no构建小插曲。

    以下是我认为最新的面向公众的构建: Travis CI report (v1.0.1)

    CRAN第一版的结果: CRAN report (v1.0.0)

    欢迎任何想法。

    1 回复  |  直到 9 年前
        1
  •  5
  •   jtilly    10 年前

    我可以在笔记本电脑上复制警告/错误(运行OS X)。我也很确定,如果您检查您的存储库,构建tar球,然后对其运行R CMD检查,您将收到与Travis CI相同的警告/错误。(我假设您只在R Studio中检查了包。)

    据我所知,问题是你补充了 R/RcppExports.R src/RcppExports.cpp 给你的 .gitignore ,这意味着这些文件不在GitHub上。Travis CI未运行 Rcpp::compileAttributes 为你。

    有两种简单的解决方案:

    1. 去除 R/Rcpp导出.R src/RcppExports.cpp 并将它们与其他内容一起提交到GitHub。这样做是有道理的,因为这些文件实际上是您的包的一部分,您不应该期望最终用户在安装包之前编译它们。我认为这是处理这个问题的正确方法。
    2. 在你的travis上添加一行。yml在构建包之前运行Rcpp::compileAttributes,例如。 Rscript -e "Rcpp::compileAttributes()" .