I took the Seurat package as an example, because it both lists the Bioconductor Dependencies under Imports in the DESCRIPTION-File
and it uses conditional functions to check if those dependencies are pre-installed. "No, it is a requirement if the package is used but is not listed in Depends or Imports. If the package is in Depends or Imports it is a waste of time to make the check: it will always succeed." that's what I also thought but I am confused why a package like Seurat then lists the dependencies in the DESCRIPTION-File and on top of that uses conditional functions to check if the package is pre-installed or not. Wouldn't that make the packagecheck function used by Seurat redundant? Sergej Ruff ________________________________ Von: Duncan Murdoch <murdoch.dun...@gmail.com> Gesendet: Mittwoch, 3. Mai 2023 15:29:34 An: Ruff, Sergej; Ivan Krylov Cc: r-package-devel@r-project.org Betreff: Re: AW: [R-pkg-devel] How to declare Bioconductor Dependencies in the Description File of my R Package On 03/05/2023 9:17 a.m., Ruff, Sergej wrote: > Thanks, > > > So is it just necessary for suggested packages. Those and "Enhances" packages, but hardly anyone uses "Enhances". > > > So, is it just good practice to make a conditional check? No, it is a requirement if the package is used but is not listed in Depends or Imports. If the package is in Depends or Imports it is a waste of time to make the check: it will always succeed. > I saw some packages still include it. > > > For example the Seurat package. > I don't understand your question here. Duncan Murdoch > > Under Utils.R (line 349-379) of the SeuratObject-Package > (https://cran.r-project.org/src/contrib/Archive/SeuratObject/ > <https://cran.r-project.org/src/contrib/Archive/SeuratObject/>) you will > find the PackageCheck-function > > which used by the Seurat-Package > (https://cran.r-project.org/src/contrib/Archive/Seurat/ > <https://cran.r-project.org/src/contrib/Archive/Seurat/>) to check if > packages are alredy installed. > > > You can find examples for DEseq2 under differential_expression.R > (starting line 1314 or you cntr+f for packagecheck) in > the Seurat.package > (https://cran.r-project.org/src/contrib/Archive/Seurat/ > <https://cran.r-project.org/src/contrib/Archive/Seurat/>) > > or for limma (starting line 2292). > > > > ------------------------------------------------------------------------ > *Von:* Duncan Murdoch <murdoch.dun...@gmail.com> > *Gesendet:* Mittwoch, 3. Mai 2023 14:25:56 > *An:* Ruff, Sergej; Ivan Krylov > *Cc:* r-package-devel@r-project.org > *Betreff:* Re: [R-pkg-devel] How to declare Bioconductor Dependencies in > the Description File of my R Package > > > On 03/05/2023 8:00 a.m., Ruff, Sergej wrote: > ... [ lines about current solution deleted ] > >> Also for the future - how Do i provide Bioconductor dependencies as >> "Imports" for a package that I want to submit to CRAN? > > Just list it as you would a CRAN package. The CRAN docs talk about > "mainstream repositories"; I forget what the definition is of that > (maybe repositories listed in `file.path(R.home(), > "etc/repositories")`?), but definitely BioConductor is included. > >> Do I need to make that also conditional? I know I should provide >> Installation description in a readme fiel but how do I make sure > > No, you don't need to check. If any imported package is not available, > your package will not load, so errors will happen before you ever get to > running examples. > >> that the Bioconductor dependencies dont cause a rejection from CRAN? > > Just make sure they exist on BioC and your code works with them. > > Duncan Murdoch > [[alternative HTML version deleted]] ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel