Как "предварительно построить" индекс виньетирования для пакета R?
Я готовлю пакет для подачи в CRAN. я использую R CMD build myPackage
затем R CMD check myPackage --as-cran
и он проходит все проверки без примечаний или предупреждений. Однако каждый раз при попытке отправки я получаю следующее сообщение об ошибке от одного из сопровождающих CRAN:
Пакет имеет поле VignetteBuilder, но не имеет встроенного индекса виньетки.
Для начала я хотел бы иметь возможность воспроизвести вышеуказанное сообщение об ошибке в моей собственной системе (R version 3.0.1
).
Виньетка .Rnw
файл выглядит так:
%\VignetteEngine{knitr::knitr}
%\VignetteIndexEntry{myVignetteName}
\documentclass{article}
\begin{document}
Here is some code:
<<>>=
plot(1:10, 10:100)
@
\end{document}
Я пытался добавить INDEX
файл в корневом каталоге с записью виньетки, например:
myFunction a brief description
abc-vignette vignette description
Опять же, это проходит R CMD check myPackage --as-cran
но я получаю то же сообщение об ошибке.
Я также пытался R CMD build myPackage --md5
заставить создание MD5
файл, безрезультатно.
Когда я смотрю на myPackage.Rcheck/00_pkg_src/myPackage/inst/doc
Я нахожу файлы виньетки, .Rnw
а также .pdf
как и ожидалось.
Посылка DESCRIPTION
Файл имеет следующую запись:
VignetteBuilder: knitr
Suggests: knitr
Когда я смотрю на myPackage.Rcheck/myPackage/Meta
Я вижу запись vignette.rds
, Однако это выглядит как двоичный файл, поэтому я не могу понять его.
Это из "написания расширений R":
Во время установки HTML-индекс для всех виньеток в пакете автоматически создается из операторов \VignetteIndexEntry, если только файл index.html не существует в каталоге inst/doc. Этот индекс связан с индексом справки HTML для пакета. Если вы предоставляете файл "inst/doc/index.html", он должен содержать относительные ссылки только на файлы в установленном каталоге "doc" или, возможно (не на самом деле индекс) на файлы справки HTML или на файл "DESCRIPTION".,
Так что мне нужно вручную создавать index.html
и кто-нибудь может указать на пример того, как это должно выглядеть?
Этот вопрос кажется тесно связанным, но у меня нет (заведомо) .Rbuildignore
файл. Это тоже связано, хотя я не пользуюсь devtools
для создания пакета. Я также посмотрел на этот вопрос, но не вижу простого ответа.
Обновление 1 июля
Для воспроизводимого примера пакет доступен здесь на github. Загрузка и установка (например, с devtools::install_github()
должно позволить эту ошибку воспроизводиться.
2 ответа
Я собираю Vignette
Команды должны быть в преамбуле, т.е. ниже documentclass
, так что файл myVignette.Rnw
должен прочесть:
\documentclass{article}
% \VignetteIndexEntry{myVignette}
% \VignetteEngine{knitr::knitr}
\usepackage[]{graphicx}
...
Кажется, это работает нормально.
Сообщение об ошибке от версии разработки R CMD check
который в настоящее время 3.3.0
, Я использовал более старую "стабильную" версию, которая не является рекомендуемым способом проверки пакетов при рассмотрении отправки в CRAN.
Я все еще не уверен в достоинствах использования руководства index.html
файл - это кажется ненужным, но я с удовольствием изменю принятый ответ, если кто-нибудь сможет пролить свет на это.
Это может помочь, или вы можете обратиться к devtools для сборки вашего пакета.