Подтвердить что ты не робот

Где поставить пакетные виньетки для подачи 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. Должен ли я использовать устаревшее местоположение?

4b9b3361

Ответ 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 официально осуждал (и в конечном итоге удалял) прямую проверку источника, а не путал все мы, землячество...)