From 4fcfa429525227b1223e4348f3607b13b46a38d7 Mon Sep 17 00:00:00 2001 From: Khurdhula-Harshavardhan Date: Thu, 30 Apr 2026 16:20:40 -0700 Subject: [PATCH] chore(deps): make vLLM an optional extra so base install works on macOS vllm pulls CUDA-only transitive deps (nvidia-cudnn-frontend etc.) that have no macOS / arm64 wheels, breaking `uv sync` for anyone running hosted-API providers on a Mac. Move vllm into [project.optional-dependencies] so the base resolve is cross-platform; CUDA users opt in with `uv sync --extra vllm`. Verified base `uv sync` succeeds on darwin-arm64 and that `uv pip compile --extra vllm --python-platform x86_64-unknown-linux-gnu` still resolves vllm==0.17.0 with its CUDA deps for Linux users. Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 6 ++++++ pyproject.toml | 4 +++- uv.lock | 7 ++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d5e1644..c06440c 100644 --- a/README.md +++ b/README.md @@ -98,6 +98,12 @@ make lint # ruff check . For local vLLM inference (NVIDIA GPU, CUDA 12.8, ≥ 24 GB VRAM): +```bash +uv sync --extra vllm +``` + +vLLM is an optional extra so the base install resolves on macOS / non-CUDA hosts. If you don't use `uv`: + ```bash uv pip install vllm --extra-index-url https://download.pytorch.org/whl/cu128 ``` diff --git a/pyproject.toml b/pyproject.toml index 8113e31..933ef7b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,12 +20,14 @@ dependencies = [ "transformers>=4.40.0", "sentence-transformers>=5.2.3", "torch>=2.10.0", - "vllm==0.17.0", "openai>=2.24.0", "anthropic>=0.75.0", "google-genai>=1.0.0", "pyarrow>=16.0.0", ] +[project.optional-dependencies] +vllm = ["vllm==0.17.0"] + [tool.pytest.ini_options] pythonpath = ["."] diff --git a/uv.lock b/uv.lock index 22da3ac..815ac79 100644 --- a/uv.lock +++ b/uv.lock @@ -2703,6 +2703,10 @@ dependencies = [ { name = "torch" }, { name = "tqdm" }, { name = "transformers" }, +] + +[package.optional-dependencies] +vllm = [ { name = "vllm" }, ] @@ -2727,8 +2731,9 @@ requires-dist = [ { name = "torch", specifier = ">=2.10.0" }, { name = "tqdm", specifier = ">=4.67.3" }, { name = "transformers", specifier = ">=4.40.0" }, - { name = "vllm", specifier = "==0.17.0" }, + { name = "vllm", marker = "extra == 'vllm'", specifier = "==0.17.0" }, ] +provides-extras = ["vllm"] [[package]] name = "sse-starlette"