@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / fdfd5075aa
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 13, 07:00 UTC

[TPU] patch TPU wheel build script to resolve metadata issue (#27279)

Signed-off-by: Johnny Yang <johnnyyang@google.com>

Johnny Yang committed Nov 13, 2025 at 09:36 UTC fdfd5075aa0b9b32e3000554d719f1622acff800
2 files changed +31 -1
setup.py
+3 -1
@@ -545,7 +545,9 @@ def get_vllm_version() -> str:
545 # Allow overriding the version. This is useful to build platform-specific
546 # wheels (e.g. CPU, TPU) without modifying the source.
547 if env_version := os.getenv("VLLM_VERSION_OVERRIDE"):
548 - return env_version
548 + print(f"Overriding VLLM version with {env_version} from VLLM_VERSION_OVERRIDE")
549 + os.environ["SETUPTOOLS_SCM_PRETEND_VERSION"] = env_version
550 + return get_version(write_to="vllm/_version.py")
551
552 version = get_version(write_to="vllm/_version.py")
553 sep = "+" if "+" not in version else "." # dev versions might contain +
tools/vllm-tpu/build.sh
+28
@@ -7,6 +7,13 @@ TOOLS_DIR=$(cd "$(dirname "$SCRIPT_PATH_PARAM")" && pwd) # Absolute path to the
7 REPO_ROOT=$(cd "$TOOLS_DIR/../../" && pwd) # Absolute path to the repo root
8 VLLM_DIR="$REPO_ROOT/" # Path to the vllm sources
9
10 +CHANGE_FILE_LIST=(
11 + "vllm/entrypoints/cli/main.py"
12 + "vllm/entrypoints/cli/run_batch.py"
13 + "vllm/utils/__init__.py"
14 + "vllm/platforms/__init__.py"
15 +)
16 +
17 # Ensure we are not running from within the vllm directory if SCRIPT_PATH_PARAM is relative like "."
18 if [ "$TOOLS_DIR" = "$VLLM_DIR" ]; then
19 echo "Error: This script should not be run from the vllm directory directly if using relative paths."
@@ -30,6 +37,20 @@ if ! grep -q "name = \"vllm-tpu\"" "$PYPROJECT_FILE"; then
37 echo "Patching pyproject.toml project name to vllm-tpu..."
38 cp "$PYPROJECT_FILE" "${PYPROJECT_FILE}.bak"
39 sed -i '0,/^name = "vllm"/s//name = "vllm-tpu"/' "$PYPROJECT_FILE"
40 +
41 + echo "Patching ${CHANGE_FILE_LIST[@]} vllm to vllm-tpu..."
42 + # patching
43 + # importlib.metadata.version('vllm') -> importlib.metadata.version('vllm-tpu')
44 + # importlib.metadata.version("vllm") -> importlib.metadata.version("vllm-tpu")
45 + # importlib.metadata.metadata('vllm') -> importlib.metadata.metadata('vllm-tpu')
46 + # importlib.metadata.metadata("vllm") -> importlib.metadata.metadata("vllm-tpu")
47 + # version('vllm') -> version('vllm-tpu')
48 + # version("vllm") -> version("vllm-tpu")
49 + sed -i \
50 + -e "s/importlib.metadata.version(\(['\"]\)vllm\1)/importlib.metadata.version(\1vllm-tpu\1)/" \
51 + -e "s/importlib.metadata.metadata(\(['\"]\)vllm\1)/importlib.metadata.metadata(\1vllm-tpu\1)/" \
52 + -e "s/version(\(['\"]\)vllm\1)/version(\1vllm-tpu\1)/" \
53 + "${CHANGE_FILE_LIST[@]}"
54 PATCHED=true
55 else
56 PATCHED=false
@@ -45,6 +66,13 @@ cleanup() {
66 echo "Restoring original pyproject.toml..."
67 cp "${PYPROJECT_FILE}.bak" "$PYPROJECT_FILE"
68 rm -f "${PYPROJECT_FILE}.bak"
69 +
70 + echo "Restoring vllm code..."
71 + sed -i \
72 + -e "s/importlib.metadata.version(\(['\"]\)vllm-tpu\1)/importlib.metadata.version(\1vllm\1)/" \
73 + -e "s/importlib.metadata.metadata(\(['\"]\)vllm-tpu\1)/importlib.metadata.metadata(\1vllm\1)/" \
74 + -e "s/version(\(['\"]\)vllm-tpu\1)/version(\1vllm\1)/" \
75 + "${CHANGE_FILE_LIST[@]}"
76 fi
77 }
78 trap cleanup EXIT HUP INT QUIT PIPE TERM # Register cleanup function to run on script exit and various signals