[Rd] Confusion about Depends:, Imports:, Enhances:, import(), inportFrom()
R. Michael Weylandt <michael.weylandt@gmail.com>
michael.weylandt at gmail.com
Thu Aug 22 22:28:05 CEST 2013
On Aug 22, 2013, at 15:33, Henrik Bengtsson <hb at biostat.ucsf.edu> wrote:
> On Thu, Aug 22, 2013 at 10:05 AM, R. Michael Weylandt
> <michael.weylandt at gmail.com> <michael.weylandt at gmail.com> wrote:
>>
>>
>> On Aug 22, 2013, at 9:09, Michael Friendly <friendly at 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 at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list