[Rd] The Depends: field of a package is now used by library()
Prof Brian Ripley
ripley at stats.ox.ac.uk
Thu Aug 12 17:55:02 CEST 2004
On Thu, 12 Aug 2004, Deepayan Sarkar wrote:
> On Thursday 12 August 2004 10:19, Prof Brian Ripley wrote:
> > On Thu, 12 Aug 2004, Deepayan Sarkar wrote:
> > > On Thursday 12 August 2004 07:34, Prof Brian Ripley wrote:
> > > > In R-devel, the Depends: field in the DESCRIPTION file is now
> > > > used by library() to load the named packages before the current
> > > > package, and also to set up the environment to save images and
> > > > prepare for lazy loading.
> > >
> > > How would this relate to namespaces? For instance, lattice imports
> > > grid (and a few things from stats and graphics). If I keep grid in
> > > the depends field, loading lattice does a require(grid), which
> > > defeats one of the purposes of having namespaces. If I leave it
> > > out, nothing bad seems to happen as long as grid is installed, but
> > > there should be some indication in the DESCRIPTION that that grid
> > > is a requirement. None of the other fields seem appropriate.
> >
> > It's a grey area. As all copies of R that you are using will have
> > grid, leave it out of Depends: for lattice.
> >
> > Perhaps we need to invent another field such as UsesNamespaces?
>
> That should work.
>
> Writing R Extensions says that
>
> `Packages that are necessary to successfully load the package using
> library(pkgname) must be listed in the Depends field.'
>
> which no longer remains true.
Well, it was never true in the sense that it was frequently broken with
impunity! One could argue it is still true, as package != namespace.
> Ideally, it probably would have been
> better to keep the old behaviour of Depends, and add the new
> functionality in a new field, but I guess this way the majority of
> packages can remain unchanged while being able to avail the new
> features.
Yes. I originally suggested 'EssentialPackages' and 'RequiredPackages',
but was persuaded otherwise. Even then, it would be good to make clear
the difference between needing a namespace to be loadable and needing a
package attached.
I can't think of any other example of one package only needing the
namespace of another (contributed) package.
Thanks for raising the issue.
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list