From murdoch.duncan at gmail.com  Sun May 13 22:39:10 2012
From: murdoch.duncan at gmail.com (Duncan Murdoch)
Date: Sun, 13 May 2012 16:39:10 -0400
Subject: [Rd] R package dependency issues when namespace is not attached
In-Reply-To: <4FB01438.9030907@fhcrc.org>
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>
	<4FB01438.9030907@fhcrc.org>
Message-ID: <4FB01BEE.8090601@gmail.com>

On 12-05-13 4:06 PM, Martin Morgan wrote:
> 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.

They aren't that new, but I think our efforts at back-compatibility have 
slowed adoption.  If we were more demanding of package developers, we 
wouldn't have this problem; but I think we'd have a lot fewer packages. 
  Even with our current policy of aiming for back-compatibility we get a 
lot of complaints that we are asking too much.

>
> 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!

I agree, but many authors don't want to think about things that way.

Duncan Murdoch

>
> 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
>
>



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