2012-09-07 89 views
20

Writing R Extensions Manual,我讀到CRAN提交包放在哪裏?

從R 2.14.0爲Sweave源的優選位置是源包的 子目錄小插圖,但對於兼容性 與早期版本的R,暈影源如果短片不存在,將在 inst/doc中查找。

然而,當我創建一個子目錄vignettes包源的,當我運行devtools::check()R CMD check我得到Package vignette(s) without corresponding PDF警告。如果我將小插圖(.Rnw和.pdf)放在inst/doc中,檢查完成後沒有任何投訴。我試着在我的庫中查看已安裝的打包文件,但沒有看到任何名爲vignettes的目錄。我還應該使用已棄用的位置嗎?

回答

20

你把.Rnw來源vignettes/你確實,但你錯過了關鍵的一步;不要檢查源代碼樹。預期的工作流程是構建源代碼tarball,然後檢查tarball。構建tarball將創建vignette PDF。

R CMD build ../foo/pkg 
R CMD check ./pkg-0.4.tar.gz 

例如將建立從所述源的源包壓縮包中../foo/pkg與所附包名和版本的當前目錄創建.tar.gz包。然後在該源碼包上運行R CMD check

如果你想爲你自己製作的插圖放在vignettes/並構建源碼包。在未來的某個日期,R Core可能會從inst/doc中刪除構建暈影的功能,請立即使用建議的位置,並避免直接檢查來源。

13

我也很難解釋這一點。

我相信意圖是,你應該把.Rnw文件vignettes/和PDF(適當壓縮)在inst/doc/,這在技術上與文件同意,如果你仔細閱讀足夠了。 (也就是說,來源應該去vignettes/。我不知道它說了多少字,你應該把相應的PDF放在inst/doc/,但它不是而不是說,這種解釋似乎使R CMD check快樂......)

的分辨率在@ GavinSimpson的回答(即一個有望建成壓縮包,然後檢查,而不是檢查的源目錄本身)。 (我的兩分錢是,這可能是最好的,如果R型鐵芯正式棄用(最終刪除)直接來源檢查,而不是混淆大家groundlings的...)

+2

這樣做的目的是讓您不要檢查軟件包源,而是檢查*打包*版本,即由'R CMD build'操作創建的源軟件包。 –

+5

如果將'foo.Rnw'和'foo.pdf'放入'vignettes /'中,pdf將自動轉到安裝的'doc'目錄。無需通過「inst/doc」手動干預。 –

+1

其他的東西是錯誤的,因爲很多軟件包,包括我轉換過的一些軟件包都使用'vignettes /'。 –