I fully agree. This is how I have come to understand Depends vs Imports and why I currently will not be removing vegan from Depends for my analogue package. This is also why I was pushing back against the notion that was voiced early in this thread that *nothing* should be in Depends.
Cheers G On 28 August 2014 08:47, Bert Gunter <bgun...@gene.com> wrote: > 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 > -- Gavin Simpson, PhD [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel