Skip to content

[Carry] Dockerfile: precompiled-wheel passthrough log + dist mkdir - #15

Draft
terafin wants to merge 1 commit into
intarweb-devfrom
feat/dockerfile-precompiled-wheel-passthrough
Draft

[Carry] Dockerfile: precompiled-wheel passthrough log + dist mkdir#15
terafin wants to merge 1 commit into
intarweb-devfrom
feat/dockerfile-precompiled-wheel-passthrough

Conversation

@terafin

@terafin terafin commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Internal carry — does NOT merge

Adds an early-out log + mkdir -p /workspace/dist to docker/Dockerfile's csrc-build stage when precompiled-wheel build-args are advertised (VLLM_USE_PRECOMPILED + VLLM_MERGE_BASE_COMMIT).

Lands via FORK_CARRIED_COMMITS Variable, not via this PR's merge. This PR exists as a stable carrier reference for the sync-upstream cherry-pick loop and as documentation surface for the carry's intent. See commit body for full design rationale.

Why this is internal-only

The actual fast-path machinery (precompiled_build_ext, precompiled_wheel_utils, the VLLM_USE_PRECOMPILED env wiring in the existing RUN blocks at L401-429 + L434-445) is already upstream. This carry is purely operator UX — explicit log line so docker build output makes the fast path observable, and a defensive mkdir so the downstream COPY --from=csrc-build /workspace/dist /precompiled-wheels is robust to setup.py path changes.

Upstream would (correctly) want a single source of truth between the two existing RUN blocks and this new RUN — they'd reasonably ask for refactoring into one consolidated RUN. That's a larger refactor than the carry needs and would conflict with their concurrent sccache + non-sccache work. So we carry locally and stay invisible to upstream.

Fail-loud verification

Wheel-fetch failure already exits non-zero via setup.py:

  • precompiled_wheel_utils.fetch_metadata_for_variant asserts wheels/repo_url non-None
  • urllib.urlretrieve raises HTTPError/URLError on 404 / network failure
  • precompiled_wheel_utils.determine_wheel_url raises ValueError on missing path

No Dockerfile-layer wrapper needed.

…r csrc-build

Adds an informational early-out RUN step to docker/Dockerfile's csrc-build stage.
When the precompiled-wheel build-args are advertised (VLLM_USE_PRECOMPILED +
VLLM_MERGE_BASE_COMMIT non-empty), the step logs that the fast path is engaged
and pre-creates /workspace/dist defensively for the downstream COPY.

The actual short-circuit lives in setup.py upstream — precompiled_build_ext
replaces cmake_build_ext when USE_PRECOMPILED_EXTENSIONS is truthy, and
precompiled_wheel_utils handles the wheel fetch + extraction. The two existing
RUN blocks (sccache path L401-429, non-sccache path L434-445) already export
VLLM_USE_PRECOMPILED + VLLM_PRECOMPILED_WHEEL_COMMIT to setup.py, so the
fast-path machinery engages without modifying those blocks.

This carry is the Dockerfile-visible half of the precompiled-wheel feature:
without it, an operator watching `docker build` output cannot distinguish
"5-minute wheel fetch succeeded silently" from "build is mysteriously fast,
something must be broken." The log line + defensive mkdir make the fast path
self-documenting and the COPY downstream robust to setup.py landing artifacts
in a different path.

Fail-loud on wheel-fetch failure is already enforced by setup.py:
  - precompiled_wheel_utils.fetch_metadata_for_variant asserts wheels non-None
  - urllib.urlretrieve raises HTTPError/URLError on 404 / network failure
  - precompiled_wheel_utils.determine_wheel_url raises ValueError on missing path
So a missing wheel produces non-zero exit from `python3 setup.py bdist_wheel`;
no Dockerfile-layer wrapper error-checking is needed.

Carry lands on intarweb-dev via FORK_CARRIED_COMMITS — this carrier PR is
informational only; the SHA goes into the Variable directly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@intarweb-sync-bot
intarweb-sync-bot Bot force-pushed the intarweb-dev branch 29 times, most recently from 7da42ed to 11c717e Compare June 13, 2026 17:10
@intarweb-sync-bot
intarweb-sync-bot Bot force-pushed the intarweb-dev branch 27 times, most recently from f02f651 to 1f3d93f Compare June 19, 2026 23:09
@intarweb-sync-bot
intarweb-sync-bot Bot force-pushed the intarweb-dev branch 3 times, most recently from 6168dc5 to ed80b87 Compare June 27, 2026 08:04
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