Skip to content

Conversation

@infotroph
Copy link
Member

Description

Allows declaration of Docker platform support to vary by R version as well as by image, and uses it to add ARM support when R version is 4.5.

Motivation and Context

The Rocker project is now providing an arm64 build of the tidyverse image, thus far for R 4.5 only. I'd love to use it on my machine!

One relevant question is how much complexity is needed here and how long we'll need to support a mix of platforms instead of assuming dual amd64/arm64 everywhere. I think the answer is "a while" -- Rocker's general approach is to not backport changes like this to older images, so I expect the R 4.2 through 4.4 images to stay AMD-only, and it's not clear if/when they plan to add ARM support to the R-devel image.

Review Time Estimate

  • Immediately
  • Within one week
  • When possible

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation.
  • My name is in the list of CITATION.cff
  • I agree that PEcAn Project may distribute my contribution under any or all of
    • the same license as the existing code,
    • and/or the BSD 3-clause license.
  • I have updated the CHANGELOG.md.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@infotroph infotroph requested a review from robkooper October 20, 2025 20:30
@robkooper robkooper added this to the 1.10.0 milestone Nov 3, 2025
Copy link
Member

@robkooper robkooper left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, left a comment, feel free to take it.

Not tested yet since we need images build :(

# upstream rocker/tidyverse image is only on ARM for R 4.5.* (so far)
shell: bash
run: |
if [[ "${{ join(steps.*.outputs.R_VERSION, '') }}" == "4.5" ]]; then
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

more complex, but do we want to use explicit if 4.1 the x86, etc, then else arm. That way develop also compiles with arm. Once we disable 4.2 and add 4.6 it does not need any updates, except removal of 4.2

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I implemented it that way at first, then realized rocker/tidyverse:devel doesn't' provide an arm version yet. I'll merge this and plan to add the complexity back whenever the list of x86-only versions gets shorter than the list of versions with arm.

@infotroph infotroph added this pull request to the merge queue Nov 17, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 17, 2025
@infotroph infotroph added this pull request to the merge queue Nov 18, 2025
Merged via the queue into PecanProject:develop with commit bd03fdc Nov 18, 2025
19 of 26 checks passed
@infotroph infotroph deleted the docker-use-arm-45 branch November 23, 2025 04:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants