【问题标题】:Travis-CI: Knitr Not Found in loadVignetteBuilderTravis-CI:在 loadVignetteBuilder 中未找到 Knitr
【发布时间】:2017-07-09 14:16:33
【问题描述】:

到目前为止,我一直在成功使用 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-check 时,它通过并且我没有收到任何错误

这是当前的 .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
  • 已将 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

【问题讨论】:

  • 所以最后我通过从 .travis.yml 中删除 packrat 配置得到了build to passTravis R Documentation 中建议了此配置,但在我的构建过程中不适用于 loadVignetteBuilder() 步骤。如果有人仍在查看此内容,请您评论一下这是否看起来像是我的构建所特有的问题,或者它是否更普遍且值得在Travis-CI Github page? 上提出问题

标签: r knitr travis-ci


【解决方案1】:

一个潜在问题涉及您的description file 中的“导入”和/或“建议”部分。

dplyr 需要在您的建议中,如果不是导入的话。

参见 Hadley 于 2015 年出版的 O'Reilly 书籍,R Packages

常见问题:

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

【讨论】:

  • 谢谢,我正在努力解决这个问题,完成后将从问题中删除该部分。我最初把它放在那里是为了完整性,但我怀疑它不会影响 travis-ci 构建中的主要问题。
  • 我认为你是对的,我希望消除这些噪音有助于在 knitr 消息中提供更清晰的信息。您在第一个包裹上处理 packrat 和 travis 给我留下了深刻的印象。
  • 你真好。从技术上讲,我的第三个包,但其他两个是小型私人项目。这是一个我自愿参与的慈善机构,所以我认为这是做正确事情的好时机,包括 CI、文档、小插曲等。因此我在 Travis-CI 和小插曲建设方面遇到了麻烦。
【解决方案2】:

所以最后我通过从 .travis.yml 中删除 packrat 配置并将其替换为正常的包构建配置来通过构建:cache: packages

我使用的 packrat 配置是在 Travis R Documentation 中建议的,并且适用于包中的其余项目,但它不适用于构建过程中的 loadVignetteBuilder() 步骤。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 2019-10-29
    • 2014-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多