Skip to content

[wanda] Handle scratch as a built-in FROM image#485

Merged
andrew-anyscale merged 1 commit intomainfrom
andrew/revup/main/optional-wanda
Apr 13, 2026
Merged

[wanda] Handle scratch as a built-in FROM image#485
andrew-anyscale merged 1 commit intomainfrom
andrew/revup/main/optional-wanda

Conversation

@andrew-anyscale
Copy link
Copy Markdown
Contributor

@andrew-anyscale andrew-anyscale commented Apr 10, 2026

When a wanda spec uses "scratch" in froms (e.g. via an env var set to "scratch" to disable an optional dependency), wanda tried to pull it from Docker Hub as a remote image. Since scratch is a Docker built-in pseudo-image that doesn't exist in any registry, the pull failed with MANIFEST_UNKNOWN.

https://buildkite.com/ray-project/premerge/builds/64091/steps/canvas?sid=019d7849-3605-4a37-9aab-bcb3255fe01f&tab=output#019d7859-6aed-462c-9475-b44b312c9a7b/L176

[2026-04-10T17:04:51Z] 2026/04/10 17:04:51 build ray-wheel-py3.13: resolve bases: resolve remote image scratch: fetch image scratch: GET https://index.docker.io/v2/library/scratch/manifests/latest: MANIFEST_UNKNOWN: manifest unknown; unknown tag=latest

Skip remote resolution for scratch and treat it as an already-available local image, matching Docker's own handling of FROM scratch.

Topic: optional-wanda

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com
Signed-off-by: andrew andrew@anyscale.com

@andrew-anyscale
Copy link
Copy Markdown
Contributor Author

Reviews in this chain:
#485 [wanda] Handle scratch as a built-in FROM image

@andrew-anyscale
Copy link
Copy Markdown
Contributor Author

andrew-anyscale commented Apr 10, 2026

# head base diff date summary
0 50493967 7ed032e2 diff Apr 10 10:24 AM 5 files changed, 183 insertions(+), 15 deletions(-)
1 4ba74c5a 7ed032e2 diff Apr 10 10:44 AM 2 files changed, 14 insertions(+), 73 deletions(-)
2 60ee70ab 7ed032e2 diff Apr 10 10:49 AM 1 file changed, 10 insertions(+), 3 deletions(-)

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces support for the "scratch" base image, allowing it to be used as an optional dependency via environment variables. The changes include logic in the forge to bypass remote resolution for "scratch" and new test cases to verify this behavior. A review comment suggests using case-insensitive comparison for the "scratch" keyword to better align with Docker's behavior.

Comment thread wanda/forge.go Outdated
When a wanda spec uses "scratch" in froms (e.g. via an env var set to "scratch" to disable an optional dependency), wanda tried to pull it from Docker Hub as a remote image. Since scratch is a Docker built-in pseudo-image that doesn't exist in any registry, the pull failed with MANIFEST_UNKNOWN.

https://buildkite.com/ray-project/premerge/builds/64091/steps/canvas?sid=019d7849-3605-4a37-9aab-bcb3255fe01f&tab=output#019d7859-6aed-462c-9475-b44b312c9a7b/L176

Skip remote resolution for scratch and treat it as an already-available local image, matching Docker's own handling of FROM scratch.

Topic: optional-wanda

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: andrew <andrew@anyscale.com>
@andrew-anyscale andrew-anyscale force-pushed the andrew/revup/main/optional-wanda branch from 4ba74c5 to 60ee70a Compare April 10, 2026 17:49
@andrew-anyscale
Copy link
Copy Markdown
Contributor Author

@andrew-anyscale andrew-anyscale merged commit 4d2ac82 into main Apr 13, 2026
3 checks passed
@andrew-anyscale andrew-anyscale deleted the andrew/revup/main/optional-wanda branch April 13, 2026 14:58
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.

2 participants