From mtmorgan at fhcrc.org  Sun May 13 22:06:16 2012
From: mtmorgan at fhcrc.org (Martin Morgan)
Date: Sun, 13 May 2012 13:06:16 -0700
Subject: [Rd] R package dependency issues when namespace is not attached
In-Reply-To: <CABFfbXt-LnGONFUSxqCWEi6Rkz1Yp62=ao=RN-n_pgJ-xWEpNA@mail.gmail.com>
References: <CABFfbXuLstmkNWg3gG3cJmo=Kw33+B=8EoXK9kE9D82HA9oBLg@mail.gmail.com>	<4FAF77DC.4040801@gmail.com>	<4FAFEBE4.5020403@statistik.tu-dortmund.de>
	<CABFfbXt-LnGONFUSxqCWEi6Rkz1Yp62=ao=RN-n_pgJ-xWEpNA@mail.gmail.com>
Message-ID: <4FB01438.9030907@fhcrc.org>

On 05/13/2012 12:14 PM, Jeroen Ooms wrote:
> On Sun, May 13, 2012 at 10:14 AM, Uwe Ligges
> <ligges at statistik.tu-dortmund.de>  wrote:
>
>> I do not see any problem in R. If someone is going to import a Namespace, he
>> or she has to do that via import directives in the NAMESPACE file. If
>> someone is going to have a package on the search path, he or she has to
>> require() it. The DESCRIPTION file is used to derive the dependency
>> structures among packages for installation order, check order etc.
>
> I am not sure everyone is aware of this. Many package authors seem to
> be assuming that having a package in the Depends field of the
> DESCRIPTION is a sufficient condition for having the dependency
> package available at runtime, regardless of how the function is
> invoked by the user. I think this is the usual meaning of a

I think this is because name spaces are relatively new, so authors are 
yet to realize the consequences of not importing the definitions their 
package uses.

As a package developer, I want to have the code my package sees be 
exactly what is needed, and no more. There are many good reasons for 
this, including isolating as much as possible my code from changes in 
other packages and minimizing the costs of symbol look-up. These issues 
become increasing important as the hierarchy of package relationships 
becomes deep.

The best practice is for authors to import all necessary symbols, but no 
more!

Martin

> dependency. There are a lot of packages on CRAN that use Depends and
> are not explicitly importing anything. Among others, this holds for
> any package without a NAMESPACE file.
>
> Also looking at the definition of the 'Depends' field in the 'writing
> r extensions' manual there is not a single hint that Depends is not
> sufficient for having the package available at runtime, and any
> function that is used should still be manually imported or required()
> as you suggest.
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel


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

Location: M1-B861
Telephone: 206 667-2793



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