Как получить виньет rmarkdown для R-пакета, чтобы избежать предупреждений о CRAN в Solaris и OSX
У меня есть пара R-пакетов на CRAN, которые имеют предупреждения против Solaris (а иногда и OSX), которые связаны с тем, что pandoc не доступен для сборки виньетки. Например, вот результаты ggseas
на CRAN и исходный код для виньетки - немного изменились с версии, представленной в CRAN, но не соответствующим образом.
Беглый поиск Google предполагает, что эта проблема распространена. Также легко найти десятки выпусков GitHub для отдельных пакетов, но я не могу найти ничего, что указывало бы на решение. Предположительно, сопровождающие CRAN просто позволяют этому пройти мимо, но это не опрятно, если это случай. Я не люблю отмечать поле, в котором говорится: "Я разрешил все замечания и предупреждения из последнего представления", когда это неверно.
Теперь у некоторых счастливых или опытных людей есть винтовки rmarkdown, которые не вызывают этой проблемы. Например, виньетка tidyr не имеет никаких предупреждений для Solaris и OSX на CRAN. Но я не вижу ничего другого в преамбуле тиджирской виньетки:
---
title: "Tidy data"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Tidy data}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
или в файле DESCRIPTION, который содержит эту строку,
VignetteBuilder: knitr
это отличается от моей виньетки, которая вызывает искры. Вот что я имею:
---
title: "ggseas - seasonal decomposition on the fly"
author: "Peter Ellis"
date: "'r Sys.Date()'"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{ggseas - seasonal decomposition on the fly}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
У меня также есть knitr
и rmarkdown
в "Предложениях" файла DESCRIPTION, что является одним из решений, упомянутых в различных обсуждениях вопросов (часто после этого "но это не исправляет").
Что мне не хватает? В чем секрет предотвращения создания этих предупреждений в CRAN? К сожалению, нелегко поэкспериментировать с этим, поэтому было бы здорово, если бы мы могли получить окончательный ответ здесь для всех людей, обеспокоенных этим.
Редактировать/добавить - полные файлы DESCRIPTION
Хэдли Уикхэм предположил, что проблема, скорее всего, будет в файле DESCRIPTION
пакета, а не самой виньетке.
Вот файл ОПИСАНИЕ ggseas
, пакет, который генерирует предупреждение:
Package: ggseas
Title: 'stats' for Seasonal Adjustment on the Fly with 'ggplot2'
Version: 0.5.4
[email protected]: c(
person("Peter", "Ellis", , "[email protected]", c("aut", "cre")),
person("Christophe", "Sax", role = "ctb")
)
Maintainer: Peter Ellis <[email protected]>
Description: Provides 'ggplot2' 'stats' that estimate seasonally adjusted series
and rolling summaries such as rolling average on the fly for time series.
Depends:
R (>= 3.1.2),
ggplot2 (>= 2.0.0)
Imports:
seasonal,
rlang,
stats,
zoo
License: GPL-3
LazyData: true
RoxygenNote: 6.0.1
BugReports: https://github.com/ellisp/ggseas/issues
Suggests: testthat,
knitr,
rmarkdown
VignetteBuilder: knitr
Вот файл ОПИСАНИЕ tidyr, пакет, который не генерирует предупреждения:
Package: tidyr
Title: Easily Tidy Data with 'spread()' and 'gather()' Functions
Version: 0.8.1.9000
[email protected]: c(
person("Hadley", "Wickham", , "[email protected]", c("aut", "cre")),
person("Lionel", "Henry", , "[email protected]", "aut"),
person("RStudio", role = "cph")
)
Description: An evolution of 'reshape2'. It designed specifically for data
tidying (not general reshaping or aggregating) and works well with
'dplyr' data pipelines.
License: MIT + file LICENSE
URL: http://tidyr.tidyverse.org,
https://github.com/tidyverse/tidyr
BugReports: https://github.com/tidyverse/tidyr/issues
Depends:
R (>= 3.1)
Imports:
dplyr (>= 0.7.0),
glue,
magrittr,
purrr,
Rcpp,
rlang,
stringi,
tibble,
tidyselect
Suggests:
covr,
gapminder,
knitr,
rmarkdown,
testthat
LinkingTo:
Rcpp
VignetteBuilder: knitr
LazyData: true
Roxygen: list(markdown = TRUE)
RoxygenNote: 6.0.1
Второе редактирование/добавление - воспроизводимое на rhub
Вот что я вижу при использовании rhub::check(...)
для платформы Solaris. Здесь есть некоторые подсказки о том, что проблема связана с изображениями, которые соответствуют одному предложению в Twitter (у виньетки tidyr
нет изображений). Поскольку в моей виньетке без изображений (это графический пакет) нет смысла, это может оставить меня в тупике.
✔ checking package vignettes in ‘inst/doc
─ checking running R code from vignettes ...
‘ggseas.Rmd using ‘UTF-8 ... OK
NONE
W checking re-building of vignette outputs
Error in re-building vignettes:
...
Warning in engine$weave(file, quiet = quiet, encoding = enc) :
Pandoc (>= 1.12.3) and/or pandoc-citeproc not available. Falling back to R Markdown v1.
Warning in (function (filename = "Rplot%03d.png", width = 480, height = 480, :
unable to open connection to X11 display ''
Quitting from lines 47-49 (ggseas.Rmd)
Error: processing vignette 'ggseas.Rmd' failed with diagnostics:
unable to start device PNG
Execution halted