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