Skip to content

Commit 5b6f0d3

Browse files
jcyang43elizabetht
authored andcommitted
[TPU] patch TPU wheel build script to resolve metadata issue (vllm-project#27279)
Signed-off-by: Johnny Yang <johnnyyang@google.com> Signed-off-by: Elizabeth Thomas <email2eliza@gmail.com>
1 parent b9a28b4 commit 5b6f0d3

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

setup.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,9 @@ def get_vllm_version() -> str:
545545
# Allow overriding the version. This is useful to build platform-specific
546546
# wheels (e.g. CPU, TPU) without modifying the source.
547547
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")
549551

550552
version = get_version(write_to="vllm/_version.py")
551553
sep = "+" if "+" not in version else "." # dev versions might contain +

tools/vllm-tpu/build.sh

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ TOOLS_DIR=$(cd "$(dirname "$SCRIPT_PATH_PARAM")" && pwd) # Absolute path to the
77
REPO_ROOT=$(cd "$TOOLS_DIR/../../" && pwd) # Absolute path to the repo root
88
VLLM_DIR="$REPO_ROOT/" # Path to the vllm sources
99

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+
1017
# Ensure we are not running from within the vllm directory if SCRIPT_PATH_PARAM is relative like "."
1118
if [ "$TOOLS_DIR" = "$VLLM_DIR" ]; then
1219
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
3037
echo "Patching pyproject.toml project name to vllm-tpu..."
3138
cp "$PYPROJECT_FILE" "${PYPROJECT_FILE}.bak"
3239
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[@]}"
3354
PATCHED=true
3455
else
3556
PATCHED=false
@@ -45,6 +66,13 @@ cleanup() {
4566
echo "Restoring original pyproject.toml..."
4667
cp "${PYPROJECT_FILE}.bak" "$PYPROJECT_FILE"
4768
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[@]}"
4876
fi
4977
}
5078
trap cleanup EXIT HUP INT QUIT PIPE TERM # Register cleanup function to run on script exit and various signals

0 commit comments

Comments
 (0)