パッケージのチェックをR-hubのあらゆるプラットフォームで実行し通す

カテゴリ: r

結論

rhub::check_for_cran(platforms = rhub::platforms()$name)

負担かけすぎるのもよくないのでほどほどに。

背景から

CRANに投稿する際、2つ以上のプラットフォームでパッケージをチェックすることが推奨されている。

CRAN にパッケージを初投稿する手順

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"