repos= not allowed if setting version?
Suppose we want to establish the version of Bioconductor in a new session, but we want
to use the AnVIL-oriented binary repository for Bioconductor packages. It seems reasonable
to try BiocManager::install(version="3.13", repos=AnVIL::repositories()) -- but this is not allowed.
I guess one should use a global setting of repositories and then just use BiocManager::install(version=
This arises when considering whether one can just substitute AnVIL:: for BiocManager:: for installation tasks
The binary repository (just one repository) is not structured the same as the Bioconductor repositories (separate repositories for software / annotation / experiment) and the binary repository isn't complete, so it's not possible to set a global option lilke BioC_mirror documented in options().
In some ways the binary repositories are more suited to the site_repository = argument of BiocManager::repositories() / install()
I added (to AnVIL 1.5.5, BiocManager::install("Bioconductor/AnVIL")) repository(); a drop-in replacement to use binary repositories is (I'm not exactly sure why AnVIL::install() uses install.packages(), I guess it doesn't install github packages & I think this was influenced by an earlier comment from stvjc that BiocManager::install() should just install Bioc packages & dependencies; maybe I'll revisit that...)
BiocManager::install(site_repository = AnVIL::repository())
This pull request https://github.com/Bioconductor/BiocManager/pull/116 would discover the binary repository so that BiocManager::install() 'just works', but it would be wrong to merge the pull request without first implementing the layer of abstraction that gives a constant URL (e.g., via .htaccess redirect) -- we'd end up with packages installed on user computers with hard-coded, incorrect paths.