Skip to content

Allow multi-platform builds for Singularity format - #128

Open
pditommaso wants to merge 1 commit into
masterfrom
multiarch-singularity
Open

pditommaso wants to merge 1 commit into
masterfrom
multiarch-singularity

Conversation

@pditommaso

Copy link
Copy Markdown
Contributor

Summary

The CLI rejected --singularity combined with a multi-platform --platform value
(e.g. linux/amd64,linux/arm64). Wave is gaining support for multi-architecture
Singularity builds, so this client-side guard has to go.

With the service-side support, two per-arch SIF images are built and pushed under a
single oras:// reference wrapped in an OCI image index, so one URL resolves to the
right architecture at pull time.

The service-side change is landing separately — see seqeralabs/wave#1132.

Changes

  • App.java: remove the isMultiPlatform() && singularity validation guard.
  • AppTest.groovy: replace the test asserting the old rejection with one asserting
    that --singularity --freeze --platform linux/amd64,linux/arm64 validates, plus a
    test confirming --singularity without --freeze is still rejected.
  • README.md: add a multi-architecture Singularity example next to the existing OCI one.

Every other validation is untouched: freeze mode remains mandatory for Singularity,
--mirror still conflicts with multi-platform, and multi-platform still requires a
container file or packages to build.

Caveat

Apptainer resolves the architecture at pull time (apptainer pull --arch arm64 oras://...),
whereas SingularityCE does not yet support platform selection for oras:// references.

Testing

./gradlew test — 108 tests, 0 failures.

🤖 Generated with Claude Code

Wave is gaining support for multi-architecture Singularity builds: two
per-arch SIF images are built and pushed under a single `oras://`
reference wrapped in an OCI image index, so one URL resolves to the
right architecture at pull time.

Remove the client-side guard that rejected `--singularity` combined with
a multi-platform `--platform` value. Freeze mode remains mandatory for
Singularity builds, and the `--mirror` and "nothing to build" conflicts
are unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant