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