Skip to content

[Install] Include GGUF and STT dependencies by default - #1161

Merged
WindChimeRan merged 2 commits into
vllm-project:mainfrom
WindChimeRan:ran/default-gguf-stt-deps
Oct 20, 2026
Merged

WindChimeRan merged 2 commits into
vllm-project:mainfrom
WindChimeRan:ran/default-gguf-stt-deps

Conversation

@WindChimeRan

@WindChimeRan WindChimeRan commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Motivation

Homebrew installs the base wheel without the GGUF/STT extras, while the feature docs require additional pip commands. Make gguf, librosa, and numba required dependencies so the standard installation includes both features. Remove the obsolete extras, installation sections, and missing-extra handling.

Note that this is intentionally different from upstream vllm (who has audio, extra-quant options), because I think vllm is closer to power users who mainly use uv, while vllm-metal can have more non-technical users, who mainly use homebrew.

Cost

The cost is small: dependency resolution adds about 0.12 MB for GGUF and 10.9 MB for STT in compressed wheels on macOS arm64/Python 3.12.

NumPy, SciPy, Numba, and llvmlite are already in the base dependency set. Homebrew picks this up with the next plugin release and formula update.

Validation

On macOS 27.0.1 arm64 / Python 3.12:

  • Fresh ./install.sh and a fresh pip install <vLLM wheel> <built plugin wheel> without extras, following Homebrew's two-wheel installation pattern. Dependency checks, GGUF imports, audio decoding, and a prebuilt Metal kernel passed. The Homebrew command itself was not run.
  • uv build --wheel --python .venv-vllm-metal/bin/python and verify_wheel_artifacts: passed; required dependency metadata verified; only [dev] remains.
  • scripts/lint.sh: passed.
  • pytest -m 'not slow' tests/test_gguf_vllm_integration.py tests/test_model_lifecycle.py tests/test_stt.py tests/test_stt_sampling.py tests/test_stt_serve.py tests/test_stt_smoke_tool.py tests/test_v1_stt_integration.py tests/test_whisper.py tests/test_qwen3_asr.py -q: 301 passed, 5 deselected.
  • tools/stt_sampling_serve_smoke.py --model <cached whisper-tiny snapshot> --audio speech.wav, from the clean wheel environment: 9 HTTP 200 responses, all 6 checks passed (greedy, sampling, seeded repeatability, top-k, silence, and language detection).

Signed-off-by: Ranran <ranranhaoranzhang@gmail.com>
Signed-off-by: Ranran <ranranhaoranzhang@gmail.com>
@WindChimeRan
WindChimeRan marked this pull request as ready for review October 19, 2026 21:40
@WindChimeRan
WindChimeRan merged commit 6d6f2c3 into vllm-project:main Oct 20, 2026
3 checks passed
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