[Rd] Depends/Imports/Suggest/Enhence

Marc Schwartz marc_schwartz at me.com
Tue Nov 6 18:38:30 CET 2012

On Nov 6, 2012, at 10:55 AM, Christophe Genolini <cgenolin at u-paris10.fr> wrote:

> Thanks a lot for your answer.
>> (it is really "Suggests" and "Enhances" - the above are typos I presume and thus won't be recognized)
> Yes, it was typo. Sorry
>> No, you only need foo1 and foo2. The other two are optional.
> I get:
> * checking package dependencies ... ERROR
> Package suggested but not available: 'foo3'

This is presumably coming from:

  R CMD check foo0

'foo3', as a 'Suggests', is not needed to install 'foo0' for an end user of your package 'foo0'. 

However, 'foo3' is required to run R CMD check on 'foo0' when you are testing your package to be sure that it passes all checks. This includes testing for the presence of the packages you indicate in the DESCRIPTION file as well as running examples in your .Rd files.



>> "Imports" means that symbols are imported form the namespace, so they are mandatory for the package to operate. "Suggests" means that symbols from the package are not required, but they are used in examples or vignettes, so the listed package(s) will be needed for a full check. They are not needed for the operation of the package, though.
> That's very clear, thanks a lot.
> So I will use
> - 'Depends:foo1' if there is a function in foo1 that my package use often
> - 'Imports:foo2' if there is a function in foo2 that my package might use rarely
> - 'Suggest:foo3' if an example .Rd in foo0 needs a function in foo3
> Right?
>> Cheers, Simon
>>> Christophe

More information about the R-devel mailing list