Description
For package authors who use R Markdown vignettes based on the vignette engine knitr::knitr
(or knitr::docco_linear
, knitr::docco_classic
, etc.), you should declare the (soft) dependency on markdown, e.g., in the package DESCRIPTION:
Suggests: markdown
VignetteBuilder: knitr
Previously they didn't need to do this because markdown has been a hard dependency of knitr (in Imports
), so the availability of markdown is guaranteed by knitr, but I want to make markdown a soft dependency of knitr in the future.
I think most packages use the vignette engine knitr::rmarkdown
to write vignettes now, but there may still be a few vignettes using the knitr::knitr
engine, which depends on markdown. If I move markdown to Suggests
in knitr, users have to make sure markdown is available to R CMD check
. To achieve that, they have to add markdown to Suggests
to their DESCRIPTION
files.
Similarly, if your vignette is based on the vignette engine knitr::rmarkdown
, you have to declare the dependency on rmarkdown, e.g.,
Suggests: rmarkdown
VignetteBuilder: knitr
The error message when building the source package via R CMD build
should tell you if you need to add markdown or rmarkdown to Suggests
, which looks like this:
* checking for file ‘PKG/DESCRIPTION’ ... OK
* preparing ‘PKG’:
* checking DESCRIPTION meta-information ... OK
* installing the package to build vignettes
* creating vignettes ... ERROR
--- re-building ‘doc.Rmd’ using rmarkdown_notangle
Error: processing vignette 'doc.Rmd' failed with diagnostics:
The 'rmarkdown' package should be declared as a dependency of
the 'PKG' package (e.g., in the 'Suggests' field of DESCRIPTION),
because the latter contains vignette(s) built with the 'rmarkdown'
package. Please see https://github.com/yihui/knitr/issues/1864
for more information.
--- failed re-building ‘doc.Rmd’
SUMMARY: processing the following file failed:
‘doc.Rmd’
Error: Vignette re-building failed.
Execution halted
If you are a package author affected by this issue, but not clear about what you need to do, please reply below and I'll be glad to help. I recommend that you skip the replies below. Thanks!