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

Duncan Murdoch murdoch.duncan at gmail.com
Sun May 13 22:39:10 CEST 2012


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



More information about the R-devel mailing list