Travis-CI:在loadVignetteBuilder中找不到Knitr

时间:2017-07-09 14:16:34

标签: r knitr travis-ci

到目前为止,我一直在成功使用travis-ci但是在使用带有R 3.4.0的travis-ci时,在“建立包”部分中出现以下错误时遇到了麻烦:

* installing the package to build vignettes
* creating vignettes ... ERROR
Error in loadVignetteBuilder(vigns$pkgdir) : 
  vignette builder 'knitr' not found
Calls: <Anonymous> -> loadVignetteBuilder
Execution halted

当我在本地运行R-CMD检查时,它会通过,我不会收到任何错误

这是当前的.travis.yml

language: R
sudo: false
install:
  - R -e "0" --args --bootstrap-packrat
cache:
  directories:
    - $TRAVIS_BUILD_DIR/packrat/src
    - $TRAVIS_BUILD_DIR/packrat/lib
  packages: true

r_packages:
    - covr

after_success:
    - Rscript -e 'library(covr); codecov()'

DESCRIPTION中有晕图线:

VignetteBuilder: knitr

knitr也在我的packrat.lock文件中,packrat用于构建.travis.yml。

我尝试过以下无效:

  • 将knitr添加到.travis.yml
  • 中的r_packages
  • 将knitr添加到DESCRIPTION中的Imports
  • r_check_args: "--no-vignettes"添加到travis.yml,希望能够跳过小插图构建步骤。
  • 在travis.yml中添加了从installbefore_install
  • 的packrat调用

我非常了解构建R软件包,不介意travis-ci所以我不确定我是否理解为什么小插图构建器无法访问knitr软件包。

回购:https://github.com/cormac85/datakindr
特拉维斯:https://travis-ci.org/cormac85/datakindr

2 个答案:

答案 0 :(得分:3)

一个潜在的问题涉及进口&#39;和/或&#39;建议&#39;您description file中的部分。

dplyr需要在您的建议中,如果不是进口。

请参阅Hadley的2015 O&#39; Reilly书籍, R Packages

  

常见问题:

     

小插图以交互方式构建,但在检查时,它会因为您知道已安装的缺失软件包而失败。这意味着您忘记在DESCRIPTION中声明该依赖项(通常应该在Suggests中)。

答案 1 :(得分:0)

所以最后我通过从.travis.yml中删除packrat配置并将其替换为正常的包构建配置loadVignetteBuilder()来完成构建。

我使用的packrat配置是在Travis R Documentation中建议的,并且适用于包中的其他项目,但在构建期间它不适用于public class MyData { private String time; private double percent; //... and so on } public MyData readLine( String line ) { String[] columns = line.split("\t"); MyData md = new MyData(); md.setTime( columns[ 0 ] ); md.setPercent( Double.parseDouble(columns[ 1 ]) ); } public void readFile( File file ) { Scanner scanner = new Scanner(file); List<MyData> myList = new ArrayList<>(); while (scanner.hasNext()) { MyData md = readLine( scanner.nextLine() ); myList.add( md ); } } 步骤。