Is your feature request related to a problem? Please describe.
When a package is available in multiple repositories, it would be helpful to force installation from a specific repository. The motivating examples are the rstan and StanHeaders packages. Both are available on CRAN (rstan 2.21.8 and StanHeaders 2.21.0-7), but are not the most up to date versions. The most recent versions are in a a CRAN-like repository from the Stan group (https://github.com/stan-dev/r-packages) which has rstan 2.26.22 and StanHeaders 2.26.22. I've added the mc-stan repository to extra repositories:
- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
rtools-version: ${{ matrix.config.rtools }}
http-user-agent: ${{ matrix.config.http-user-agent }}
use-public-rspm: true
extra-repositories: https://mc-stan.org/r-packages/
However, the packages are still getting installed from the default CRAN (i.e., in the session info rstan is version 2.21.8; see example action run).
Describe the solution you'd like
Ideally, if a package exists in multiple repositories, I'd have the option to force installation from a specific repo. For example, maybe we could name extra repositories, and then use those names for install?
- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
rtools-version: ${{ matrix.config.rtools }}
http-user-agent: ${{ matrix.config.http-user-agent }}
use-public-rspm: true
extra-repositories: |
mcstan = https://mc-stan.org/r-packages/
- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: |
any::rcmdcheck
mcstan::rstan
mcstan::StanHeaders
needs: check
I'm not sure if that would actually work, but someway to indicate which repository a package should be installed from if multiple are available would be useful.
Describe alternatives you've considered
Currently, I'm using the url:: specification. This works, but is suboptimal because I have to track when updates are made to the stan-dev/r-packages repository, and then update the url manually.
- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: |
any::rcmdcheck
url::https://mc-stan.org/r-packages/src/contrib/rstan_2.26.22.tar.gz
url::https://mc-stan.org/r-packages/src/contrib/StanHeaders_2.26.22.tar.gz
needs: check
Is your feature request related to a problem? Please describe.
When a package is available in multiple repositories, it would be helpful to force installation from a specific repository. The motivating examples are the rstan and StanHeaders packages. Both are available on CRAN (rstan 2.21.8 and StanHeaders 2.21.0-7), but are not the most up to date versions. The most recent versions are in a a CRAN-like repository from the Stan group (https://github.com/stan-dev/r-packages) which has rstan 2.26.22 and StanHeaders 2.26.22. I've added the mc-stan repository to extra repositories:
However, the packages are still getting installed from the default CRAN (i.e., in the session info rstan is version 2.21.8; see example action run).
Describe the solution you'd like
Ideally, if a package exists in multiple repositories, I'd have the option to force installation from a specific repo. For example, maybe we could name extra repositories, and then use those names for install?
I'm not sure if that would actually work, but someway to indicate which repository a package should be installed from if multiple are available would be useful.
Describe alternatives you've considered
Currently, I'm using the
url::specification. This works, but is suboptimal because I have to track when updates are made to the stan-dev/r-packages repository, and then update the url manually.