On 09/06/2022 12:23 p.m., Henrik Bengtsson wrote:
On Thu, Jun 9, 2022 at 8:53 AM Arne Henningsen
<arne.henning...@gmail.com> wrote:
Dear all
My R package "systemfit" has a 'vignette' that uses the R packages
"plm" and "sem", while the actual code of the "systemfit" package does
not depend on these two packages. Currently, the "systemfit" package
'Suggests' the "plm" package and the "sem" package. However, CRAN
started to check packages with '_R_CHECK_DEPENDS_ONLY_=true' so that
the checking of the "systemfit" package returns an error message
because the vignette cannot be created without the "plm" and "sem"
packages.
Also, the case for one of your example, cf.
https://cran.r-project.org/web/checks/check_results_systemfit.html
I am considering changing the DESCRIPTION file so that the
"systemfit" package will 'Depend' on the "plm" and "sem" packages
(although only the vignette depends on these two packages). Is this
the recommended way to do or is there a better way to make the
"systemfit" package pass the tests at CRAN?
To keep them as Suggests:ed packages, you need to run the code in your
examples and vignettes that rely on them conditionally on the being
installed, e.g.
if (requireNamespace("plm", quietly = TRUE)) {
...
}
FWIW, you're using Sweave, but if you'd used knitr, there are easy
ways to do this also for vignettes. I forgot the details, but I saw a
simple solution the other week somewhere out there on the interwebs.
If you don't want to do this, then yes, you need to turn those
dependencies into hard dependencies, e.g. Depends or Imports.
In knitr, you can use the chunk option `eval = requireNamespace("plm",
quietly = TRUE)`. I'd put a comment in the code chunk too, saying it
won't be evaluated if plm is not available, but this is not a
requirement, just being nice to the reader.
Duncan Murdoch
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel