actions icon indicating copy to clipboard operation
actions copied to clipboard

Better support for Package Manager's `manylinux_2_28` portable Linux binaries

Open glin opened this issue 5 months ago • 0 comments

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-r has a cran input that might be better than PKG_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.
  • Somehow disable pak's automatic system reqs installation when using a manylinux repo. I think checking for manylinux_X_Y would 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.

glin avatar Sep 12 '25 00:09 glin