From jarioksa at sun3.oulu.fi  Thu Apr  5 10:08:13 2007
From: jarioksa at sun3.oulu.fi (Jari Oksanen)
Date: Thu, 05 Apr 2007 11:08:13 +0300
Subject: [Rd] 'R CMD check' fails when suggested package is not	available
In-Reply-To: <46143D49.2000001@fhcrc.org>
References: <46143D49.2000001@fhcrc.org>
Message-ID: <1175760493.21156.13.camel@biol102145.oulu.fi>

On Wed, 2007-04-04 at 17:05 -0700, Herve Pages wrote:
> Hi there,
> 
> I was wondering why I get the following error message:
> 
>   * checking package dependencies ... ERROR
>   Packages required but not available:
>     Rmpi
> 
> when I run 'R CMD check' on a package that _suggests_ Rmpi?
> Why isn't it OK to not have all the suggested packages installed?
> 
Hi there too,

This has been discussed before:
http://tolstoy.newcastle.edu.au/R/devel/05/09/2326.html

Then the Core decided to maintain the Mafia style suggestion ("that you
can't refuse"), but later seems to have introduced a new field
"enhances" which to me looks like a suggestion in the meaning of the
word I know: a suggestion that you can refuse.

I think that the R-ext description is somewhat confusing and misleading
for fields "Requires", "Suggests", "Enhances". The R extension manual
"suggests" different situations where the author of the manual thinks
that other people would like to use these fields. However, the manual
does not clearly say what are the practical and real consequences of
selecting a certain entry. It seems that "Requires" means that a package
is always required, "Suggests" means that the package is required in
check (with a threat of error), but only suggested for normal use, and
"Enhances" means that the package only is suggested. It does not matter
whether the package really "enhances" anything, but this is the meaning
of the word in behaviouristic sense. 

cheers, jari oksanen

> Maybe one of the 3 following behaviours would be more appropriate:
> 
>   a) Having the error saying something like:
> 
>     Package suggested but not available:
>       Rmpi
> 
>   b) Make this a warning instead of an error.
> 
>   c) Don't do anything at all for suggested packages.
> 
> This issue showed up today while I was checking a new Bioconductor package:
> the package suggests Rmpi but the vignette and the examples don't use it. If I remove
> Rmpi from the Suggests field then 'R CMD check' runs all the examples and re-create
> the vignette with no problem. Most users will not have Rmpi on their machine neither
> will they be interested in getting into the trouble of installing it.
> The package I was checking suggests Rmpi only because it contains 1 function that tries
> to use it if it's installed but will work perfectly fine otherwise.
> In this case it seems reasonable to have Rmpi in the Suggests field but this will
> make 'R CMD check' to fail which is problematic in the context of automated builds :-/
> If 'R CMD check' can't be a little bit more relaxed about this, then I guess we will
> need to remove Rmpi from the Suggests field, but then 'R CMD check' will complain that:
> 
>   * checking for unstated dependencies in R code ... WARNING
>   'library' or 'require' calls not declared from:
>     Rmpi

-- 
"Object-oriented programming is an exceptionally bad idea that could
only have been invented in California." -- Edsger Dijkstra



[Rd] 'R CMD check' fails when suggested package is not available
Jari Oksanen