Gabriel, That is not my understanding of this at all. I could hide the fact that I was using vegan under the hood, supplying methods for its generics and by exporting the generic I imported from vegan, etc. But you are missing the point that I see users of my package, because I envisioned close interlinking with the functionality provided by vegan, wanting to use vegan interactively with many of the objects that functions in analogue create.
I do feel this aversion to Depends is being taken too far by some. Simon's articulation in this thread of what Depends means (to him) is the closest I have seen to how I have interpreted things. That's also about as close to official wisdom that I have seen beyond what is in Writing R Extensions. Analogue also uses Lattice, but I have moved this to Imports as I don't expect users to be manipulating the few plot alternatives analogue provides using this graphics package and if they want to they can load lattice themselves. So, I fully understand the differences and nuances of Depends and Imports etc. I just don't agree with those that claim no packages should be in Depends, or that my use case is somehow wrong or not best practice. G On 28 August 2014 15:14, Gabriel Becker <gmbec...@ucdavis.edu> wrote: > Gavin, > > I admit to not knowing the details of your package, but do users commonly > need to use symbols from other package *in calls to functions exported by > your package*? If so, you're in the situation Martin (Morgan) described, > which is one I think everyone agrees Depends is appropriate for. > > If the above is not the case, and you're arguing it's simply convenient > for users because it's very common for them to use top level functions from > both in the same analysis, the case for Depends is not as strong. In that > case, the official wisdom, AFAIK, is that Depends is not warranted. > > ~G > > > On Thu, Aug 28, 2014 at 11:43 AM, Gavin Simpson <ucfa...@gmail.com> wrote: > >> 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 >> > > > > -- > Gabriel Becker > Graduate Student > Statistics Department > University of California, Davis > -- Gavin Simpson, PhD [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel