結論
rhub::check_for_cran(platforms = rhub::platforms()$name)
負担かけすぎるのもよくないのでほどほどに。
背景から
CRANに投稿する際、2つ以上のプラットフォームでパッケージをチェックすることが推奨されている。
rhubパッケージならクラウドの力を借りて推奨条件を達成できる。
CRAN投稿時用にカスタムされたrhub::check_for_cran
関数を使おう。この関数にはplatforms
引数がある。既定値のNULL
の場合は内部でrhub:::default_cran_check_platforms
関数を呼んで以下の3種類のプラットフォームを試してくれる。
rhub:::default_cran_check_platforms('.')
## [1] "windows-x86_64-devel" "ubuntu-gcc-release" "fedora-clang-devel"
これで投稿準備は万端だと思いきや、そうとも限らない。 CRANのチェック体制にはdebian、fedora、solaris、macosなども含まれている。
https://cran.r-project.org/web/checks/check_results_ftExtra.html
そしてこれらのチェックは、リリース後に行なわれる。 ftExtra 0.0.2の場合、r-patched-solaris-x86がpandocを同梱しない影響でエラーを生じた。このためせっかくリリースしたのに1日と待たずに修正の要請が届いた。期限は2週間。
参った。solarisの環境を持っていないのでrhub::check_for_cran
関数が便りだ。利用可能な環境の一覧はrhub::platforms
関数で得られる。
solaris-x86-patched
を指定してチェックが通るまで修正を試みた。私の場合、R Markdownファイル内でpandocを呼び出す操作をしていたのが原因だったので、チャンクオプションにeval=rmarkdown::pandoc_available()
を指定して事なきを得た。
もうリリース後のエラーでぬか喜びなんて羽目に遭いたくない。だったら全部試そう。
rhub::platforms()
の返り値を調べ、以下のコードを実行すればいいとわかった。
rhub::check_for_cran(platforms = rhub::platforms()$name)
ちなみにプラットフォームの一覧は以下の通り。
CRANがチェックしないプラットフォームも含まれているので、過剰かもしれない。少なくとも、サーバーの負荷を考えるとむやみに実行しない方がいいだろう。それでも需要はあると思うのでrhub::check_for_cran_full
とかでもPRしてみようか知らん?
rhub::platforms()$name
## [1] "debian-clang-devel" "debian-gcc-devel"
## [3] "debian-gcc-devel-nold" "debian-gcc-patched"
## [5] "debian-gcc-release" "fedora-clang-devel"
## [7] "fedora-gcc-devel" "linux-x86_64-centos6-epel"
## [9] "linux-x86_64-centos6-epel-rdt" "linux-x86_64-rocker-gcc-san"
## [11] "macos-highsierra-release" "macos-highsierra-release-cran"
## [13] "solaris-x86-patched" "solaris-x86-patched-ods"
## [15] "ubuntu-gcc-devel" "ubuntu-gcc-release"
## [17] "ubuntu-rchk" "windows-x86_64-devel"
## [19] "windows-x86_64-oldrel" "windows-x86_64-patched"
## [21] "windows-x86_64-release"