[Bioc-devel] [devteam-bioc] Use Imports instead of Depends in the DESCRIPTION files of bioconductor packages.

Martin Morgan mtmorgan at fredhutch.org
Wed Dec 31 16:41:39 CET 2014


On 12/24/2014 07:31 PM, Maintainer wrote:
> Hi,
>
> Many bioconductor packages Depends on other packages but not Imports
> other packages. (e.g., IRanges Depends on BiocGenerics.) Imports is
> usually preferred to Depends.
>
> http://stackoverflow.com/questions/8637993/better-explanation-of-when-to-use-imports-depends
> http://obeautifulcode.com/R/How-R-Searches-And-Finds-Stuff/
>
> Could the unnecessary Depends be forced to be replaced by Imports?
> This should improve the package load time significantly.

R package symbols and other objects are collated at build time into a 'name 
space'. When used,

- Import: loads the name space from disk.
- Depends: loads the name space from disk, and attaches it to the search() path.

Attaching is very inexpensive compared to loading, so there is no speed 
improvement gained by Import'ing instead of Depend'ing.

The main reason to Depend: on a package is because the symbols defined by the 
package are needed by the end-user. Import'ing a package is appropriate when the 
package provides functionality only relevant to the package author.

There are likely to be specific packages that mis-use Depends; packages such as 
IRanges, GenomicRanges, etc use Depends: as intended, to  provide functions that 
are useful to the end user.

Maintainers are certainly encouraged to think carefully about adding packages 
providing functionality irrelevant to the end-user to the Depends: field. The 
codetoolsBioC package (available from svn, see 
http://bioconductor.org/developers/how-to/source-control/) provides some mostly 
reliable hints to package authors about correctly formulating a NAMESPACE file 
to facilitate using Imports: instead of Depends:.

General questions about Bioconductor packages should be addressed to the support 
forum https://support.bioconductor.org.

Questions about Bioconductor development (such as this) should be addressed to 
the bioc-devel mailing list (subscription required) 
https://stat.ethz.ch/mailman/listinfo/bioc-devel.

I have cc'd the bioc-devel mailing list; I hope that is ok.

Martin

>


-- 
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 Bioc-devel mailing list