[Rd] Re R CMD check checking in development version of R
ravi.varadhan at jhu.edu
Thu Aug 28 17:23:46 CEST 2014
I second Bert's comment. I would like to go even farther and suggest that it would be really useful if one of the R gurus (like Simon) wrote a relatively non-technical article in the R journal on this topic of "Depends/Imports/Suggested." Someone like myself would benefit immensely.
From: r-devel-bounces at r-project.org [mailto:r-devel-bounces at r-project.org] On Behalf Of Bert Gunter
Sent: Thursday, August 28, 2014 10:47 AM
To: Simon Urbanek
Cc: r-devel at r-project.org
Subject: Re: [Rd] Re R CMD check checking in development version of R
This is a nice explanation of the Imports/Depends distinction. It ought to go into the Extensions ref manual imho.
Genentech Nonclinical Biostatistics
"Data is not information. Information is not knowledge. And knowledge is certainly not wisdom."
On Thu, Aug 28, 2014 at 7:39 AM, Simon Urbanek <simon.urbanek at r-project.org> wrote:
> On Aug 27, 2014, at 6:01 PM, Gavin Simpson <ucfagls at gmail.com> wrote:
>> On 27 August 2014 15:24, Hadley Wickham <h.wickham at gmail.com> wrote:
>>>> Is that the cause of these NOTEs? Is the expectation that if I am
>>>> using a function from a package, even a package that I have in
>>>> Depends:, that I have to explicitly declare these imports in NAMESPACE?
>>> (Otherwise your package won't work if it's only attached and not
>>> loaded. i.e. if someone does analogue::foo() only the imported
>>> functions are available, not the functions in packages you depend
>> Cheers Hadley. Thanks for the confirmation, but...
>> ...I don't get this; what is the point of Depends? I thought it was
>> "my package needs these other packages to work, i.e. be loaded".
>> Hence it is user error (IMHO ;-) to do `analogue::foo()` without
>> having the dependencies loaded too.
> No. The point of Depends is that if your package is attached, it also attaches the other packages to make them available for the user. Essentially you're saying "if you want to use my package interactively, you will also want to use those other packages interactively". You still need to use import() to define what exactly is used by your package - as opposed to what you want to be available to the user in case it is attached.
>> This check (whilst having found some things I should have imported
>> and didn't - which is a good thing!) seems to be circumventing the
>> intention of having something in Depends. Is Depends going to go away?
>>> (And really you shouldn't have any packages in depends, they should
>>> all be in imports)
>> I disagree with *any*; having say vegan loaded when one is using
>> analogue is a design decision as the latter borrows heavily from and
>> builds upon vegan. In general I have moved packages that didn't need
>> to be in Depends into Imports; in the version I am currently doing
>> final tweaks on before it goes to CRAN I have remove all but vegan from Depends.
>> Or am I thinking about this in the wrong way?
>> Thanks again
>> Gavin Simpson, PhD
>> [[alternative HTML version deleted]]
>> R-devel at r-project.org mailing list
> R-devel at r-project.org mailing list
R-devel at r-project.org mailing list
More information about the R-devel