[R-pkg-devel] clarification about missing suggested packages.

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Wed Jul 7 00:51:56 CEST 2021


   We are working on a resubmission of a package 
(https://github.com/glmmTMB/glmmTMB/issues/721 for people who want all 
the gory details). Our last hurdle is that one of the packages in 
"Suggests:", DHARMa, is currently unavailable on Solaris, even though it 
in good standing on CRAN 
<https://cran.r-project.org/web/packages/DHARMa/index.html>. (This stems 
from a circular dependency: DHARMa can't be built on Solaris because the 
_previous_ version of glmmTMB, which DHARMa imports, had a bug on 
Solaris ...)

   We have been testing on r-hub's solaris platform, where DHARMa is 
similarly unavailable. We can only pass tests if we set 
_R_CHECK_FORCE_SUGGESTS_=false; otherwise we get an error that says some 
suggested packages are missing.

   It is my understanding that the CRAN maintainers can either

    * test with _R_CHECK_FORCE_SUGGESTS_=false and yell at us if we have 
used any missing/unavailable packages unconditionally or

    * test with _R_CHECK_FORCE_SUGGESTS_=true and ensure that all 
suggested packages are installed

but that it would be unreasonable to reject package A because it has a 
Suggests: dependency on package B that is in good standing on CRAN but 
is not available on a particular CRAN testing platform, as long as 
package A only uses package B conditionally.

   Thoughts/opinions/evidence?

   cheers
     Ben Bolker

---
 From the current CRAN policy:

     Packages on which a CRAN package depends should be available from a 
mainstream repository: if any mentioned in ‘Suggests’ or ‘Enhances’ 
fields are not from such a repository, where to obtain them at a 
repository should be specified in an ‘Additional_repositories’ field of 
the DESCRIPTION file (as a comma-separated list of repository URLs) or 
for other means of access, described in the ‘Description’ field.

     A package listed in ‘Suggests’ or ‘Enhances’ should be used 
conditionally in examples or tests if it cannot straightforwardly be 
installed on the major R platforms. (‘Writing R Extensions’ recommends 
that they are always used conditionally.)



More information about the R-package-devel mailing list