r-lib / pak

A fresh approach to package installation
https://pak.r-lib.org
646 stars 57 forks source link

Support extended bioc remotes? #479

Open kevinushey opened 1 year ago

kevinushey commented 1 year ago

The remotes vignette describes some other versions of Bioconductor remotes, e.g.

# Bioconductor
Remotes: bioc::3.3/SummarizedExperiment#117513, bioc::release/Biobase

But installation fails, with:

> pak::pkg_install("bioc::release/Biobase")
Error:
! error in pak subprocess
Caused by error:
! Could not solve package dependencies:
* bioc::release/Biobase: ! pkgdepends resolution error for bioc::release/Biobase.
Caused by error:
! missing value where TRUE/FALSE needed
Type .Last.error to see the more details.

Is this something that pak (pkgdepends) could support in the future?

gaborcsardi commented 1 year ago

remotes installs everything from the Bioc git repo, which is not something we want to do. But we could support some extra stuff. TBH I am not even sure what some of these mean:

     install_bioc("SummarizedExperiment")
     install_bioc("devel/SummarizedExperiment")
     install_bioc("3.3/SummarizedExperiment")
     install_bioc("SummarizedExperiment#abc123")
     install_bioc("user:password@release/SummarizedExperiment")
     install_bioc("user:password@devel/SummarizedExperiment")
     install_bioc("user:password@SummarizedExperiment#abc123")

E.g. what is SummarizedExperiment#abc123?

kevinushey commented 1 year ago

E.g. what is SummarizedExperiment#abc123

I think that's for installing from a specific pull request? But I don't understand why those would have letters rather than numbers; maybe just an issue in the documentation?

gaborcsardi commented 1 year ago

I don't think the Bioc git repo has pull requests. It is not a GH repo.

pak (devel) can now use git repos as package sources, so this could be simple to implement, but seemingly the bioc git repo only supports version 1 of the git protocol, which pak does not support:

❯ pkgdepends:::git_download_repo("https://git.bioconductor.org/packages/limma.git", "HEAD")
Error in "async_git_list_refs_v2_process_1(res, url, prefixes)" :
  ! Only git protocol version 2 is supported.
ℹ <https://git.bioconductor.org/packages/limma.git> seems to support version 1 only.

Anyway, installing various branches from the bioc git repo seems to be a pretty minor use case to me, but hopefully we can at least add support for versioned bioc packages soon.

kevinushey commented 1 year ago

Thanks :-)

gaborcsardi commented 8 months ago

pak supports version 1 of the git protocol now, so we could have a remote that points to git.bioconductor.org.