Hi, 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.
Thank you, Ravi -----Original Message----- From: r-devel-boun...@r-project.org [mailto:r-devel-boun...@r-project.org] On Behalf Of Bert Gunter Sent: Thursday, August 28, 2014 10:47 AM To: Simon Urbanek Cc: r-devel@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. Cheers, Bert Bert Gunter Genentech Nonclinical Biostatistics (650) 467-7374 "Data is not information. Information is not knowledge. And knowledge is certainly not wisdom." Clifford Stoll On Thu, Aug 28, 2014 at 7:39 AM, Simon Urbanek <simon.urba...@r-project.org> wrote: > > On Aug 27, 2014, at 6:01 PM, Gavin Simpson <ucfa...@gmail.com> wrote: > >> On 27 August 2014 15:24, Hadley Wickham <h.wick...@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? >>> >>> Yes. >>> >>> (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 >>> on) >>> >> >> 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. > > Cheers, > Simon > > > >> 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 >> >> >>> >>> Hadley >>> >>> >>> -- >>> http://had.co.nz/ >>> >> >> >> >> -- >> Gavin Simpson, PhD >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> 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 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel