Rの依存パッケージにCRANにリリースされる前のものを指定する。

devtoolsパッケージでinstall_github()するときには、CRANにリリースされていないパッケージも依存パッケージとして指定することができます。

Devtools dependencies

DESCRIPTIONにRemotesを書く

具体的には、DESCRIPTIONRemotesというフィールドを付けます。例えば以下のような形式で指定しておけば、

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: Set USE_RTOOLS: true if Rtools needs to be installed, e.g. if you use install_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