Two gaps in the Docker source build (docker/Dockerfile --target build):
- setup.py preloads vllm/envs_metadata.py before vllm/envs.py and installs
scripts/serve_flash_next_nvfp4_v100.sh, but the native csrc-build stage
copies only envs.py, __init__.py and the 27B serve script, so the stage
stops with FileNotFoundError before compiling anything. Copy both files.
- The build stage reinstalls vLLM from the native-stage wheel with
VLLM_USE_PRECOMPILED=1, and setup.py copies only the native libraries its
extraction patterns name. The SM70 pattern lists sampler, exact_reduce,
sparse_attention and qsa_device, so _sm70_qsa_indexer_C (#1127) and
_sm70_router_C (#1147) are built but left out of the final wheel. Without
the indexer, the QSA shared-key path reports native_extension_unavailable
and falls back to the paged Triton indexer; the router operator tests
skip. Add both names.
The extraction test now derives the expected libraries from the SM70/H3
CMakeExtension declarations in setup.py, so a newly declared extension
cannot be dropped silently again.
Signed-off-by: Leonccaa <166551845+Leonccaa@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>