[prev in list] [next in list] [prev in thread] [next in thread] 

List:       r-devel
Subject:    Re: [Rd] Confusion about Depends:, Imports:, Enhances:, import(), inportFrom()
From:       "R. Michael Weylandt <michael.weylandt () gmail ! com>" <michael ! weylandt () gmail ! com>
Date:       2013-08-22 20:28:05
Message-ID: 196580BF-4351-46B2-A912-FE3C8B024B53 () gmail ! com
[Download RAW message or body]



On Aug 22, 2013, at 15:33, Henrik Bengtsson <hb@biostat.ucsf.edu> wrote:

> On Thu, Aug 22, 2013 at 10:05 AM, R. Michael Weylandt
> <michael.weylandt@gmail.com> <michael.weylandt@gmail.com> wrote:
> > 
> > 
> > On Aug 22, 2013, at 9:09, Michael Friendly <friendly@yorku.ca> wrote:
> > 
> > > In checking my vcdExtra package, the following NOTE newly appeared (R-Forge, \
> > > using R version 3.0.1 Patched (2013-08-20 r63635)) 
> > > Package in Depends field not imported from: ‘gnm'
> > > These packages needs to imported from for the case when
> > > this namespace is loaded but not attached.
> > > 
> > > In the DESCRIPTION file, I have
> > > 
> > > Depends: R (>= 2.10), vcd, gnm (>= 1.0.3)
> > > 
> > > In NAMESPACE:
> > > 
> > > # we are a vcd extension
> > > import(vcd)
> > > 
> > > I've read 1.1.1 of R-Exts, but it is not clear to me whether I should also \
> > > import gnm or change the DESCRIPTION file to use
> > > 
> > > Imports: vcd, gnm (>= 1.0.3)
> > > 
> > > R-Exts says: The ‘Imports' field lists packages whose namespaces are imported \
> > > from (as specified in the NAMESPACE file) but which do not need to be attached, \
> > > but how can I tell if gnm needs to be attached?
> > 
> > I think the current best practice is to use Imports unless gnm provides functions \
> > the end user needs in order to use your package. 
> > Practically, I think this usually comes down to asking whether gnm provides \
> > relevant generics -- if you provide methods only, the end user would only be able \
> > to call them directly (ick!) unless gnm is both loaded and attached (Depends) 
> > If gnm is tools for your code, but not the user to call directly, Imports is \
> > cleaner. 
> > Does that help?
> > 
> > Michael
> > 
> > > 
> > > Also, what is the difference between Imports: in DESCRIPTION and imports() in \
> > > NAMESPACE?
> > 
> > One enables the other: Imports in DESCRIPTION allows for both imports() and \
> > importsFrom(). It could probably be automatic, but the DESC file is much older \
> > than the NAMESPACE file.
> 
> I pretty sure you can also use import()/importFrom() in NAMESPACE for
> packages listed under Depends in DESCRIPTION.
> 

Agreed, but you couldn't auto-generate Depends from the namespace file. I suppose if \
(per my above) Depends was only used for generics...

Not sure if the devtools world does anything like this, though it seems logical \
enough. 

Michael

> /Henrik
> 
> > 
> > 
> > > -Michael
> > > 
> > > --
> > > Michael Friendly     Email: friendly AT yorku DOT ca
> > > Professor, Psychology Dept. & Chair, Quantitative Methods
> > > York University      Voice: 416 736-2100 x66249 Fax: 416 736-5814
> > > 4700 Keele Street    Web:   http://www.datavis.ca
> > > Toronto, ONT  M3J 1P3 CANADA
> > > 
> > > ______________________________________________
> > > R-devel@r-project.org mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-devel
> > 
> > ______________________________________________
> > R-devel@r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic