[Version] Auto generate version using setuptool_scm (#1224)

Signed-off-by: tjtanaa <tunjian.tan@embeddedllm.com>
This commit is contained in:
TJian authored and GitHub committed 2026-02-27 14:34:27 +08:00
1 parent aa54569033
commit 7ac8d613f6
7 files changed
+97 -8

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@ steps:
key: image-build
commands:
- "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
- "docker build --file docker/Dockerfile.ci -t vllm-omni-ci ."
- "docker build --progress=plain --file docker/Dockerfile.ci -t vllm-omni-ci ."
- "docker tag vllm-omni-ci public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:$BUILDKITE_COMMIT"
- "docker push public.ecr.aws/q9t5s3a7/vllm-ci-test-repo:$BUILDKITE_COMMIT"
agents:
+2
View File
@@ -243,5 +243,7 @@ Dockerfile.dev
discussion
tmp_test
# Auto-generated version file (created by setuptools_scm during build)
vllm_omni/_version.py
# output files
*.wav
+1 -1
View File
@@ -8,7 +8,7 @@ COPY . .
# Install system dependencies
RUN apt-get update && \
apt-get install -y ffmpeg sox libsox-fmt-all jq && \
apt-get install -y ffmpeg git sox libsox-fmt-all jq && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
+1 -1
View File
@@ -19,7 +19,7 @@ WORKDIR ${COMMON_WORKDIR}
# Step 1: Setup - Install system dependencies
RUN apt-get update && \
apt-get install -y ffmpeg && \
apt-get install -y ffmpeg git sox libsox-fmt-all jq && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
+5 -2
View File
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "vllm-omni"
version = "0.14.0"
dynamic = ["version", "dependencies"]
description = "A framework for efficient model inference with omni-modality models"
readme = "README.md"
requires-python = ">=3.10,<3.14"
@@ -17,7 +17,6 @@ authors = [
{name = "vLLM-Omni Team"}
]
keywords = ["vllm", "multimodal", "diffusion", "transformer", "inference", "serving"]
dynamic = ["dependencies"]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
@@ -85,8 +84,12 @@ where = ["."]
include = ["vllm_omni*"]
[tool.setuptools.package-data]
"vllm_omni" = ["_version.py", "py.typed"]
"vllm_omni.model_executor.stage_configs" = ["*.yaml"]
[tool.setuptools_scm]
# no extra settings needed, presence enables setuptools-scm
[tool.ruff]
line-length = 120
exclude = [
+62
View File
@@ -12,6 +12,7 @@ import sys
from pathlib import Path
from setuptools import setup
from setuptools_scm import get_version
def uninstall_onnxruntime() -> None:
@@ -104,6 +105,66 @@ def detect_target_device() -> str:
return "cuda"
def get_vllm_omni_version() -> str:
"""
Get the vLLM-Omni version with device-specific suffix.
Version format: {base_version}+{device}
Examples:
- 0.14.0+cuda (release version with CUDA)
- 0.14.1.dev23+g1a2b3c4.rocm (dev version with ROCm)
- 0.15.0+npu (release version with NPU)
Environment variables:
VLLM_OMNI_VERSION_OVERRIDE: Override version completely
VLLM_OMNI_TARGET_DEVICE: Override device detection
Returns:
Version string with device suffix
"""
# Allow complete version override via environment variable
if env_version := os.getenv("VLLM_OMNI_VERSION_OVERRIDE"):
print(f"Overriding vLLM-Omni version with {env_version} from VLLM_OMNI_VERSION_OVERRIDE")
os.environ["SETUPTOOLS_SCM_PRETEND_VERSION"] = env_version
# Get version without device suffix for override case
version = get_version(write_to="vllm_omni/_version.py")
else:
# Generate version from git tags via setuptools_scm (without writing yet)
try:
version = get_version()
except Exception as e:
print(f"Warning: Failed to get version from git, using fallback: {e}")
version = "dev"
# Determine separator: '+' for normal versions, '.' for dev versions with '+'
sep = "+" if "+" not in version else "."
# Append device-specific suffix
device = detect_target_device()
if device == "cuda":
# if it is cuda, following vLLM
# we don't need to add any suffix
pass
elif device == "rocm":
version += f"{sep}rocm"
elif device == "npu":
version += f"{sep}npu"
elif device == "xpu":
version += f"{sep}xpu"
elif device == "cpu":
version += f"{sep}cpu"
else:
raise RuntimeError(f"Unknown target device: {device}")
# Tell setuptools_scm to use this version
# This will be picked up by write_to and written to _version.py
os.environ["SETUPTOOLS_SCM_PRETEND_VERSION"] = version
get_version(write_to="vllm_omni/_version.py") # Write the correct version
print(f"Generated version: {version}")
return version
def load_requirements(file_path: Path) -> list[str]:
"""
Load requirements from a file, supporting -r directive for recursive loading.
@@ -167,5 +228,6 @@ if __name__ == "__main__":
# Setup configuration
setup(
version=get_vllm_omni_version(),
install_requires=install_requires,
)
+25 -3
View File
@@ -1,3 +1,25 @@
__version__ = "0.14.0"
__version_tuple__ = (0, 14, 0)
# TODO: add auto version generation
"""
Version information for vLLM-Omni.
The version is automatically generated from git tags via setuptools_scm
and written to _version.py during package build.
"""
try:
# Import auto-generated version from _version.py (created by setuptools_scm)
from ._version import __version__, __version_tuple__
except ImportError as e:
import warnings
warnings.warn(
f"Failed to import version from _version.py: {e}\n"
"This typically happens in development mode before building.\n"
"Using fallback version 'dev'.",
RuntimeWarning,
stacklevel=2,
)
__version__ = "dev"
__version_tuple__ = (0, 0, "dev")
__all__ = ["__version__", "__version_tuple__"]