devtoolsパッケージでinstall_github()
するときには、CRANにリリースされていないパッケージも依存パッケージとして指定することができます。
DESCRIPTIONにRemotesを書く
具体的には、DESCRIPTION
にRemotes
というフィールドを付けます。例えば以下のような形式で指定しておけば、
Remotes: hadley/testthat
testthatもGithubからインストールしてくれるようになります。
これはdevtools独自の機能で、CRANにリリースするときには使えません。
AppveyorでRtoolsを使うように設定する
一点注意が必要なのは、CIです。Travis CIなどLinuxのCIの場合には問題ないのですが、Appveyorの場合にはRtoolsがないとエラーになります。
Downloading GitHub repo hadley/dplyr@master from URL https://api.github.com/repos/hadley/dplyr/zipball/master WARNING: Rtools is required to build R packages, but is not currently installed. Please download and install Rtools 3.3 from http://cran.r-project.org/bin/windows/Rtools/. Error: Could not find build tools necessary to build dplyr Execution halted Command exited with code 1
ドキュメントには以下のように書かれていました。
USE_RTOOLS
: SetUSE_RTOOLS
: true if Rtools needs to be installed, e.g. if you useinstall_github
or if there are packages in Remotes: in your DESCRIPTION file. Defaults to false. (https://github.com/krlmlr/r-appveyor)
ということで、使ってみます。appveyor.yml
に次のように書き加えます。
environment: global: USE_RTOOLS: true
これでいけるはず...!
と思ってやってみたんですが、なんかタイムアウト?でむりでした。うむむ…
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/BH_1.60.0-1.zip' Error in download.file(url, destfile, method, mode = "wb", ...) : cannot open URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/BH_1.60.0-1.zip' In addition: Warning message: In download.file(url, destfile, method, mode = "wb", ...) : InternetOpenUrl failed: 'The operation timed out' Warning in download.packages(pkgs, destdir = tmpd, available = available, : download of package 'BH' failed