[Rd] Re R CMD check checking in development version of R

Martin Morgan mtmorgan at fhcrc.org
Thu Aug 28 15:05:05 CEST 2014

On 08/28/2014 05:52 AM, Hadley Wickham wrote:
>>>> I'd say: Depends is a historical artefact from ye old days before
>>>> package namespaces. Apart from depending on a specific version of R,
>>>> you should basically never use depends.  (The one exception is, as
>>>> mentioned in R-exts, if you're writing something like latticeExtras
>>>> that doesn't make sense unless lattice is already loaded).
>>> Keeping this nuance in mind when when discussing Depends vs Imports is
>>> important so as to not suggest that there isn't any reason to use Depends
>>> any longer.
>> A common case in Bioconductor is that a package defines a class and methods
>> intended for the user; this requires the package to be on the search path
>> (else the user wouldn't be able to do anything with the returned object). A
>> class and supporting methods can represent significant infrastructure, so
>> that it makes sense to separate these in distinct packages. It is not
>> uncommon to find 3-5 or more packages in the Depends: field of derived
>> packages for this reason.
> For that scenario, is it reasonable to say that every package in
> depends must also be in imports?

Important to pay attention to capitalization here. A package listed in Depends: 
_never_ needs to be listed in Imports:, but will often be import()'ed (in one 
way or another) in the NAMESPACE. Some would argue that listing a package in 
Depends: and Imports: in this case clarifies intent -- provides functionality 
available to the user, and important for the package itself. Others (such as R 
CMD check) view the replication as redundancy.

I think one can imagine scenarios where a package in the Depends: fields does 
not actually have anything import()'ed, e.g., PkgA defines a class, PkgB 
provides some special functionality that returns the class PkgC use PkgB's 
special functionality without ever manipulating the object of PkgA.

Martin Morgan

> Hadley

Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793

More information about the R-devel mailing list