The specific repository you've chosen is not what you want to do. This
will always install EBImage from Bioconductor version 3.13, but
Bioconductor version 3.13 is only relevant for R-4.1 (see
https://bioconductor.org/about/release-announcements/)
Personally, I would encourage you to follow the Bioconductor community
best practice of BiocManager::install("EBImage"). In that way you will get
the version of EBImage that has been tested with other Bioconductor
packages in the same release, and on the version of R in use by your user.
If you were to use a specific repository, it should the one that is as
good as base R can do (this can be different from the version that
BiocManager would choose because R's release cycle is different from
Bioconductor's). I think this is most easily accomplished by
utils::chooseBioCmirror(), and then selecting the 0-Bioconductor
repository. That's a lot to tell your users... Maybe others in the R
community have a better way (the key information is in
tools:::.BioC_version_associated_with_R_version(), but that is not an
exported function so not recommended for CRAN packages...)
Martin Morgan
?On 9/1/21, 8:13 AM, "R-package-devel on behalf of Tiago Olivoto" <
r-package-devel-bounces at r-project.org on behalf of tiagoolivoto at gmail.com>
wrote:
Thank you, Duncan and Uwe for the suggestions.
I followed your instructions and created a function to check for
EBImage
that is only called in an interactive section and, if necessary, ask
the
user to install the package with install.packages("EBImage", repos="
https://bioconductor.org/packages/3.13/bioc")
Best,
Tiago
Em qua., 1 de set. de 2021 ?s 03:53, Uwe Ligges <
ligges at statistik.tu-dortmund.de> escreveu:
> Two more comments.
>
> 1. Note that your code only works in interactice mode, not when
> your package as it waits infinitely for the user's choice.
>
> 2. I do not see an advantage of installing BiocManager if EBImage is
> needed, the essential part is simply to select BioC as a repository
> install packages from.
>
> Best,
> Uwe Ligges
>
>
> On 31.08.2021 23:33, Duncan Murdoch wrote:
> > People shouldn't be able to install your package unless the "hard"
> > dependencies are available.
> >
> > If EBImage isn't essential to your package, you should make it a
> > dependency by listing it in Suggests and checking for it every
> > use it.
> >
> > Duncan Murdoch
> >
> > On 31/08/2021 3:20 p.m., Tiago Olivoto wrote:
> >> Dear all,
> >> I have a package called pliman
> >> <https://CRAN.R-project.org/package=pliman>
> >> which depends on the Bioconductor package EBImage.
> >>
> >> When running install.packages("pliman") I get the following
> >>
> >> Warning in install.packages : dependency ?EBImage? is not
> >>
> >> and thus when loading the package with library(pliman), the
> >> error
> >> occurs
> >>
> >> Erro: package or namespace load failed for ?pliman? in
> >> c(lib.loc, .libPaths()), versionCheck = vI[[i]]):
> >> there is no package called ?EBImage?
> >>
> >> I created a check function to check if EBImage is available and if
> >> not, ask
> >> users if they want to install it
> >>
> >> ---
> >> check_ebi <- function(){
> >> if(!requireNamespace("EBImage", quietly = TRUE)) {
> >> inst <-
> >> switch(menu(c("Yes", "No"), title = "Package {EBImage}
> >> but not
> >> available.\nDo you want to install it now?"),
> >> "yes", "no")
> >> if(inst == "yes"){
> >> if (!requireNamespace("BiocManager", quietly = TRUE)){
> >> install.packages("BiocManager")
> >> }
> >> BiocManager::install("EBImage", ask = FALSE, update =
> >> } else{
> >> message("To use {pliman}, first install {EBImage} with
> >> 'BiocManager::install(\"EBImage\")'.")
> >> }
> >> }
> >> }
> >> ---
> >>
> >> Is there any way to run this function prior to namespace loading?
> >> putting check_ebi() into .onLoad() but the same error occurs.
> >>
> >> Thanks in advance for any suggestions.
> >> Tiago
> >>
> >> [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> R-package-devel at r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> >>
[[alternative HTML version deleted]]