From h.wickham at gmail.com  Mon Apr  4 16:25:04 2016
From: h.wickham at gmail.com (Hadley Wickham)
Date: Mon, 4 Apr 2016 07:25:04 -0700
Subject: [Rd] Suggested dependencies in context of R CMD check
In-Reply-To: <CABE2sp6n5eOD4-O-kL50XT0CAo6P2K_QR+f=4A51r7drk609Gw@mail.gmail.com>
References: <CABE2sp6n5eOD4-O-kL50XT0CAo6P2K_QR+f=4A51r7drk609Gw@mail.gmail.com>
Message-ID: <CABdHhvFX_24SAtgMCJ7peK6dw57LThq+gPoWKu6CFFQXgpL5yw@mail.gmail.com>

On Sat, Apr 2, 2016 at 5:33 AM, Jan G?recki <J.Gorecki at wit.edu.pl> wrote:
> Dear R team,
>
> Are suggested dependencies mandatory in context of `R CMD check` when
> using env var `_R_CHECK_FORCE_SUGGESTS_=FALSE`?
>
> Suggested dependencies are nice because are optional.
> But that feature often isn't valid when trying to run `R CMD check` on them.
> I would like to use `export _R_CHECK_FORCE_SUGGESTS_=FALSE`, which
> according to the comment in `tools/R/check.R`:
>
>> The suggested packages are required for a complete check.
>  Checking can be attempted without them by setting the environment
> variable _R_CHECK_FORCE_SUGGESTS_ to a false value.
>
> should be sufficient to run *check* process without installing suggested deps.
> If it is not true, then how to differentiate the suggested packages
> which are optional from those mandatory?
> It would be helpful to have kind of `vignetteBuilder` DESCRIPTION
> field called `testChecker`, so DESCRIPTION file could precisely manage
> packages dependencies.
> That way batch checking packages would be easier, as required dep
> metadata would be at hand in description file. Batch checking pkgs
> with all their suggests will simply result into testing whole CRAN.
>
> In a single package it can be handled with `if (requireNamespace(.))
> test_package(.)` for `testthat` and `knitr`, also with mocking up
> `.Rout` files.
>
> But I'm interested into canonical design of a suggested package and
> `_R_CHECK_FORCE_SUGGESTS_` env var.
> Is there any R core dev team recommendation/suggestion on that? and
> don't you thing new field `testChecker` in DESCRIPTION could help for
> batch checking pkgs? Installing all suggested packages of all reverse
> dependencies doesn't scale.

In principle, I believe a package should pass R CMD check if no
suggested packages are installed. However, since this is not currently
automatically checked, many packages will fail to cleanly pass R CMD
check if suggested packages are missing. In my experience, it's much
easier to simply install all dependencies of your reverse dependencies
(although this is obviously much easier when you're using a platform
with binary packages available from CRAN). I routinely do this for
hundreds to thousands of packages.

Hadley

-- 
http://hadley.nz



[Rd] Suggested dependencies in context of R CMD check
Hadley Wickham