From hpages at fhcrc.org  Wed Apr 11 21:59:43 2007
From: hpages at fhcrc.org (Herve Pages)
Date: Wed, 11 Apr 2007 12:59:43 -0700
Subject: [Rd] 'R CMD check' fails when suggested package is not available
In-Reply-To: <Pine.LNX.4.64.0704050419580.7641@gannet.stats.ox.ac.uk>
References: <46143D49.2000001@fhcrc.org>
	<Pine.LNX.4.64.0704050419580.7641@gannet.stats.ox.ac.uk>
Message-ID: <461D3E2F.8070905@fhcrc.org>

Prof Brian Ripley wrote:
> This is a configurable option 'R_check_force_suggests' documented in
> 'Writing R Extensions'.

Thanks for pointing this to me. I tried "R-2.5 CMD check --help" but was not
very successful with it...

> 
> This package should be using Enhances: Rmpi, it seems.

Yep this sounds like what we need here (never heard about this field before,
will be the first time a Bioconductor package uses it).

Is there any reason why the "Enhances" field is not supported by install.packages?

  > install.packages("XML", dep="Enhances")
  Error in as.vector(available[p1, dependencies]) :
        subscript out of bounds

I know this is in sync with the man page for 'install.packages' (which only
mentions Depends, Imports and Suggests) but there are for sure people that would
like to be able to install a package with _all_ its capabilities (especially those
that enhance it) by just doing
  > install.packages(..., dependencies=TRUE)
and not having to look at its DESCRIPTION file in order to figure out what great
enhancements there are missing and then install them separately ;-)

BTW, the name of this field ("Enhances") and the documentation does not help
to understand the "direction" of the enhancing relationship (who enhances who?):
both (the name "Enhances" and the 'Writing R Extensions' manual) tend to say that
the packages listed in the field are enhanced by the package at hand. That's a
point of view. But IMO it's rather the package at hand that is enhanced by the
packages listed in the field (at least this is the case with Rmpi).

Cheers,
H.

> 
> On Wed, 4 Apr 2007, 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?
>>
>> 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.
> 
> 'Most users' will not be running 'R CMD check', of course.
> 
>> 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
>>
>> which is always better than getting an ERROR.
>>
>> Thanks!
>>
>> H.
> 
>



[Rd] 'R CMD check' fails when suggested package is not available
Herve Pages