[Rd] R package dependency issues when namespace is not attached

From: Jeroen Ooms <jeroen.ooms_at_stat.ucla.edu>
Date: Sun, 13 May 2012 00:15:25 -0700


I have always assumed that having a package in the 'Depends' field would automatically also import the namespace. However, it seems that in R 2.15, dependencies do not become available until the package is actually attached to the searchpath. Is this intended behavior?

The problem appears as follows: Suppose there is a package 'Child' which Depends, but does not explicitly import a package called
'Parent' and contains a function that calls out to an object in the
namespace of 'Parent'. When this function is called without attaching
'Child' to the search path, the function in 'Parent' cannot be found.

Here an example from the manual of the bigdata package, but the problem is very widespread:

x = matrix(rnorm(50*80),50,80)
beta = c(3,2,1.5,rep(0,77))
y = rnorm(50) + x%*%beta
z1 = bigdata::lasso.stars(x,y)

The example fails because lasso.stars depends on 'glmnet' which is not loaded until bigdata is attached. The only way to be able to call lasso.stars is to actually attach the bigdata package:

library(bigdata)
z1 = bigdata::lasso.stars(x,y)

Now to further complicate things, it seems that this problem is inherited to any 'grandchild' package that imports, in this case, the lasso.stars function. I have a hard time finding a good example but I am sure they are out there.

Is this a bug? I know that it can be avoided by asking package authors to use Imports instead of Depends, but in practice the majority of the packages on CRAN still use Depends. It seems like the problem is easily fixed if R would automatically import the namespace of any Depends packages into to the child package namespace?



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Sun 13 May 2012 - 07:17:33 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 13 May 2012 - 09:41:18 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive