Better support for Package Manager's `manylinux_2_28` portable Linux binaries
Is your feature request related to a problem? Please describe.
Related issue in pak: https://github.com/r-lib/pak/issues/815
I don't think there's a ton of value in using PPM's new manylinux binaries on GHA today, just because of how seamless the current actions + pak are with automatically installing system deps for you already.
But if you happen to want to use them for setup-r, I've found the configuration to be pretty tricky. I am not even sure this is correct or the best way to do it, but it seems to work:
- name: Configure pak and setup-r action to use manylinux_2_28
if: startsWith(matrix.config.os, 'ubuntu') && matrix.config.r != 'devel'
run: |
# Override PPM repo and do not autodetect the distro (setup-r action env var)
echo "RSPM=https://p3m.dev/cran/__linux__/manylinux_2_28/latest" >> $GITHUB_ENV
# Configure pak to use the same PPM repo when checking for the latest packages
echo "PKG_CRAN_MIRROR=${RSPM}" >> $GITHUB_ENV
# Disable automatic system requirements installation since it is unnecessary (pak env var)
echo "PKG_SYSREQS=FALSE" >> $GITHUB_ENV
https://github.com/glin/reactable/blob/93ef7e75b27eaccec6d0f331dd788e9b625a9878/.github/workflows/build.yaml#L39-L47
- Override the CRAN repo by setting
RSPM=https://p3m.dev/cran/__linux__/manylinux_2_28/latest - Separately configure pak's CRAN repo by setting
PKG_CRAN_MIRROR=https://p3m.dev/cran/__linux__/manylinux_2_28/latest- I only added this because I ran into a case where pak was trying to install a newer CRAN package than what was available in the configured PPM repo. Seems like it was listing CRAN packages from a different CRAN mirror?
- Disable pak's automatic system reqs installation by setting
PKG_SYSREQS=FALSE
Describe the solution you'd like
- An easier way to override the PPM/CRAN repo
- As I'm writing this, looks like
setup-rhas acraninput that might be better thanPKG_CRAN_MIRROR, but it still does not set the PPM repo? https://github.com/r-lib/actions/blob/6b49fefb2846ed3e5e6e58366e7f7dfe01377f02/setup-r/src/installer.ts#L722-L724 I want to use only the PPM repo in this case to avoid any possible source package installation (when CRAN is newer than PPM), as I am not installing any system requirements here.
- As I'm writing this, looks like
- Somehow disable pak's automatic system reqs installation when using a manylinux repo. I think checking for
manylinux_X_Ywould be a reliable way to detect manylinux, for lack of any better way. There may be other manylinux distros in the future, but they'll all follow the same naming convention.
Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.
Additional context Add any other context or screenshots about the feature request here.