R package dependency issues when namespace is not attached
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