diff --git a/setup.py b/setup.py index 0934a8608eb1..e9b36e2a2e03 100644 --- a/setup.py +++ b/setup.py @@ -545,7 +545,9 @@ def get_vllm_version() -> str: # Allow overriding the version. This is useful to build platform-specific # wheels (e.g. CPU, TPU) without modifying the source. if env_version := os.getenv("VLLM_VERSION_OVERRIDE"): - return env_version + print(f"Overriding VLLM version with {env_version} from VLLM_VERSION_OVERRIDE") + os.environ["SETUPTOOLS_SCM_PRETEND_VERSION"] = env_version + return get_version(write_to="vllm/_version.py") version = get_version(write_to="vllm/_version.py") sep = "+" if "+" not in version else "." # dev versions might contain + diff --git a/tools/vllm-tpu/build.sh b/tools/vllm-tpu/build.sh index fbc91e379df3..45ef8dfcb1db 100755 --- a/tools/vllm-tpu/build.sh +++ b/tools/vllm-tpu/build.sh @@ -7,6 +7,13 @@ TOOLS_DIR=$(cd "$(dirname "$SCRIPT_PATH_PARAM")" && pwd) # Absolute path to the REPO_ROOT=$(cd "$TOOLS_DIR/../../" && pwd) # Absolute path to the repo root VLLM_DIR="$REPO_ROOT/" # Path to the vllm sources +CHANGE_FILE_LIST=( + "vllm/entrypoints/cli/main.py" + "vllm/entrypoints/cli/run_batch.py" + "vllm/utils/__init__.py" + "vllm/platforms/__init__.py" +) + # Ensure we are not running from within the vllm directory if SCRIPT_PATH_PARAM is relative like "." if [ "$TOOLS_DIR" = "$VLLM_DIR" ]; then 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 echo "Patching pyproject.toml project name to vllm-tpu..." cp "$PYPROJECT_FILE" "${PYPROJECT_FILE}.bak" sed -i '0,/^name = "vllm"/s//name = "vllm-tpu"/' "$PYPROJECT_FILE" + + echo "Patching ${CHANGE_FILE_LIST[@]} vllm to vllm-tpu..." + # patching + # importlib.metadata.version('vllm') -> importlib.metadata.version('vllm-tpu') + # importlib.metadata.version("vllm") -> importlib.metadata.version("vllm-tpu") + # importlib.metadata.metadata('vllm') -> importlib.metadata.metadata('vllm-tpu') + # importlib.metadata.metadata("vllm") -> importlib.metadata.metadata("vllm-tpu") + # version('vllm') -> version('vllm-tpu') + # version("vllm") -> version("vllm-tpu") + sed -i \ + -e "s/importlib.metadata.version(\(['\"]\)vllm\1)/importlib.metadata.version(\1vllm-tpu\1)/" \ + -e "s/importlib.metadata.metadata(\(['\"]\)vllm\1)/importlib.metadata.metadata(\1vllm-tpu\1)/" \ + -e "s/version(\(['\"]\)vllm\1)/version(\1vllm-tpu\1)/" \ + "${CHANGE_FILE_LIST[@]}" PATCHED=true else PATCHED=false @@ -45,6 +66,13 @@ cleanup() { echo "Restoring original pyproject.toml..." cp "${PYPROJECT_FILE}.bak" "$PYPROJECT_FILE" rm -f "${PYPROJECT_FILE}.bak" + + echo "Restoring vllm code..." + sed -i \ + -e "s/importlib.metadata.version(\(['\"]\)vllm-tpu\1)/importlib.metadata.version(\1vllm\1)/" \ + -e "s/importlib.metadata.metadata(\(['\"]\)vllm-tpu\1)/importlib.metadata.metadata(\1vllm\1)/" \ + -e "s/version(\(['\"]\)vllm-tpu\1)/version(\1vllm\1)/" \ + "${CHANGE_FILE_LIST[@]}" fi } trap cleanup EXIT HUP INT QUIT PIPE TERM # Register cleanup function to run on script exit and various signals