Где поставить пакетные виньетки для подачи CRAN?
Из руководства Написание R-расширений я прочитал, что
Как и в случае 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
. Должен ли я использовать устаревшее местоположение?
Ответы
Ответ 1
Вы помещаете источники .Rnw
в vignettes/
так же, как и вы, но вы пропустили критический шаг; не проверяйте исходное дерево. Ожидаемый рабочий процесс состоит в том, чтобы создать исходный tarball, а затем проверить этот tarball. Построение tarball создаст виньетку PDF.
R CMD build ../foo/pkg
R CMD check ./pkg-0.4.tar.gz
например, построит исходный пакет tarball из источников в ../foo/pkg
, создав пакет .tar.gz
в текущем каталоге с добавленным именем пакета и версией. Затем вы запускаете R CMD check
в этом исходном пакете.
Если вы хотите, чтобы ваша виньетка была построена для вас, поместите ее в vignettes/
и создайте исходный пакет. В какой-то будущий день R Core может удалить возможность создавать виньетки из inst/doc
, поэтому перейдите в указанное местоположение и не проверяйте источники напрямую.
Ответ 2
Мне тоже было сложно интерпретировать это.
Я считаю, что вы должны поместить файл .Rnw
в vignettes/
и PDF (соответствующим образом уплотненный) в inst/doc/
, который технически согласуется с документацией, если вы прочтете достаточно внимательно. (То есть, он говорит, что источники должны идти в vignettes/
. Я не вижу, где он говорит так много слов, что вы должны поместить соответствующий PDF в inst/doc/
, но он не не скажите это, и эта интерпретация, кажется, делает R CMD check
счастливой...)
Разрешение приведено в ответе @GavinSimpson (т.е. ожидается, что он будет строить tarball, а затем проверить его, а не проверять исходный каталог). (Мои два цента - это то, что было бы лучше, если бы R-core официально осуждал (и в конечном итоге удалял) прямую проверку источника, а не путал все мы, землячество...)