From 4fb8771cc0bb8b0127d7b88d790a8ed38d9b39cc Mon Sep 17 00:00:00 2001 From: Cyrus Leung Date: Wed, 29 Oct 2025 16:04:33 +0800 Subject: [PATCH] [CI/Build] Move pre-commit only scripts to `tools/pre_commit` (#27657) Signed-off-by: DarkLight1337 --- .buildkite/test-amd.yaml | 2 +- .buildkite/test-pipeline.yaml | 2 +- .pre-commit-config.yaml | 18 +++++++++--------- .../pytorch_nightly_dependency.sh | 2 +- tests/tools/test_config_validator.py | 2 +- .../check_init_lazy_imports.py | 5 ++--- tools/{ => pre_commit}/check_spdx_header.py | 0 tools/{ => pre_commit}/check_triton_import.py | 0 tools/{ => pre_commit}/enforce_regex_import.py | 0 .../generate_nightly_torch_test.py | 0 tools/{ => pre_commit}/png-lint.sh | 0 tools/{ => pre_commit}/shellcheck.sh | 0 .../update-dockerfile-graph.sh | 0 tools/{ => pre_commit}/validate_config.py | 0 vllm/config/utils.py | 2 +- 15 files changed, 16 insertions(+), 17 deletions(-) rename tools/{ => pre_commit}/check_init_lazy_imports.py (96%) rename tools/{ => pre_commit}/check_spdx_header.py (100%) rename tools/{ => pre_commit}/check_triton_import.py (100%) rename tools/{ => pre_commit}/enforce_regex_import.py (100%) rename tools/{ => pre_commit}/generate_nightly_torch_test.py (100%) rename tools/{ => pre_commit}/png-lint.sh (100%) rename tools/{ => pre_commit}/shellcheck.sh (100%) rename tools/{ => pre_commit}/update-dockerfile-graph.sh (100%) rename tools/{ => pre_commit}/validate_config.py (100%) diff --git a/.buildkite/test-amd.yaml b/.buildkite/test-amd.yaml index 0a7767b8cc..56e7b1083b 100644 --- a/.buildkite/test-amd.yaml +++ b/.buildkite/test-amd.yaml @@ -38,7 +38,7 @@ steps: - label: Pytorch Nightly Dependency Override Check # 2min # if this test fails, it means the nightly torch version is not compatible with some # of the dependencies. Please check the error message and add the package to whitelist - # in /vllm/tools/generate_nightly_torch_test.py + # in /vllm/tools/pre_commit/generate_nightly_torch_test.py mirror_hardwares: [amdexperimental] agent_pool: mi325_1 # grade: Blocking diff --git a/.buildkite/test-pipeline.yaml b/.buildkite/test-pipeline.yaml index 03268beecf..16f87e98af 100644 --- a/.buildkite/test-pipeline.yaml +++ b/.buildkite/test-pipeline.yaml @@ -38,7 +38,7 @@ steps: - label: Pytorch Nightly Dependency Override Check # 2min # if this test fails, it means the nightly torch version is not compatible with some # of the dependencies. Please check the error message and add the package to whitelist - # in /vllm/tools/generate_nightly_torch_test.py + # in /vllm/tools/pre_commit/generate_nightly_torch_test.py soft_fail: true source_file_dependencies: - requirements/nightly_torch_test.txt diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fbfd8016cb..bcd40e7f8a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -45,7 +45,7 @@ repos: - id: format-torch-nightly-test name: reformat nightly_torch_test.txt to be in sync with test.in language: python - entry: python tools/generate_nightly_torch_test.py + entry: python tools/pre_commit/generate_nightly_torch_test.py files: ^requirements/test\.(in|txt)$ - id: mypy-local name: Run mypy locally for lowest supported Python version @@ -78,12 +78,12 @@ repos: stages: [manual] # Only run in CI - id: shellcheck name: Lint shell scripts - entry: tools/shellcheck.sh + entry: tools/pre_commit/shellcheck.sh language: script types: [shell] - id: png-lint name: Lint PNG exports from excalidraw - entry: tools/png-lint.sh + entry: tools/pre_commit/png-lint.sh language: script types: [png] - id: signoff-commit @@ -100,12 +100,12 @@ repos: stages: [commit-msg] - id: check-spdx-header name: Check SPDX headers - entry: python tools/check_spdx_header.py + entry: python tools/pre_commit/check_spdx_header.py language: python types: [python] - id: check-root-lazy-imports name: Check root lazy imports - entry: python tools/check_init_lazy_imports.py + entry: python tools/pre_commit/check_init_lazy_imports.py language: python types: [python] - id: check-filenames @@ -119,11 +119,11 @@ repos: pass_filenames: false - id: update-dockerfile-graph name: Update Dockerfile dependency graph - entry: tools/update-dockerfile-graph.sh + entry: tools/pre_commit/update-dockerfile-graph.sh language: script - id: enforce-import-regex-instead-of-re name: Enforce import regex as re - entry: python tools/enforce_regex_import.py + entry: python tools/pre_commit/enforce_regex_import.py language: python types: [python] pass_filenames: false @@ -131,7 +131,7 @@ repos: # forbid directly import triton - id: forbid-direct-triton-import name: "Forbid direct 'import triton'" - entry: python tools/check_triton_import.py + entry: python tools/pre_commit/check_triton_import.py language: python types: [python] pass_filenames: false @@ -144,7 +144,7 @@ repos: additional_dependencies: [regex] - id: validate-config name: Validate configuration has default values and that each field has a docstring - entry: python tools/validate_config.py + entry: python tools/pre_commit/validate_config.py language: python additional_dependencies: [regex] # Keep `suggestion` last diff --git a/tests/standalone_tests/pytorch_nightly_dependency.sh b/tests/standalone_tests/pytorch_nightly_dependency.sh index cb531e13ec..fd93ad76be 100644 --- a/tests/standalone_tests/pytorch_nightly_dependency.sh +++ b/tests/standalone_tests/pytorch_nightly_dependency.sh @@ -37,6 +37,6 @@ if diff before.txt after.txt; then else echo "torch version overridden by nightly_torch_test.txt, \ if the dependency is not triggered by the pytroch nightly test,\ - please add the dependency to the list 'white_list' in tools/generate_nightly_torch_test.py" + please add the dependency to the list 'white_list' in tools/pre_commit/generate_nightly_torch_test.py" exit 1 fi diff --git a/tests/tools/test_config_validator.py b/tests/tools/test_config_validator.py index 22d838d272..d6104dc6d2 100644 --- a/tests/tools/test_config_validator.py +++ b/tests/tools/test_config_validator.py @@ -5,7 +5,7 @@ import ast import pytest -from tools.validate_config import validate_ast +from tools.pre_commit.validate_config import validate_ast _TestConfig1 = """ @config diff --git a/tools/check_init_lazy_imports.py b/tools/pre_commit/check_init_lazy_imports.py similarity index 96% rename from tools/check_init_lazy_imports.py rename to tools/pre_commit/check_init_lazy_imports.py index 8b3a0b2a71..ab2ef8b3aa 100644 --- a/tools/check_init_lazy_imports.py +++ b/tools/pre_commit/check_init_lazy_imports.py @@ -6,13 +6,12 @@ i.e: appears only within the `if typing.TYPE_CHECKING:` guard, """ import ast -import pathlib import sys from collections.abc import Iterable +from pathlib import Path from typing import Final -REPO_ROOT: Final = pathlib.Path(__file__).resolve().parent.parent -INIT_PATH: Final = REPO_ROOT / "vllm" / "__init__.py" +INIT_PATH: Final = Path("vllm/__init__.py") # If you need to add items to whitelist, do it here. ALLOWED_IMPORTS: Final[frozenset[str]] = frozenset( diff --git a/tools/check_spdx_header.py b/tools/pre_commit/check_spdx_header.py similarity index 100% rename from tools/check_spdx_header.py rename to tools/pre_commit/check_spdx_header.py diff --git a/tools/check_triton_import.py b/tools/pre_commit/check_triton_import.py similarity index 100% rename from tools/check_triton_import.py rename to tools/pre_commit/check_triton_import.py diff --git a/tools/enforce_regex_import.py b/tools/pre_commit/enforce_regex_import.py similarity index 100% rename from tools/enforce_regex_import.py rename to tools/pre_commit/enforce_regex_import.py diff --git a/tools/generate_nightly_torch_test.py b/tools/pre_commit/generate_nightly_torch_test.py similarity index 100% rename from tools/generate_nightly_torch_test.py rename to tools/pre_commit/generate_nightly_torch_test.py diff --git a/tools/png-lint.sh b/tools/pre_commit/png-lint.sh similarity index 100% rename from tools/png-lint.sh rename to tools/pre_commit/png-lint.sh diff --git a/tools/shellcheck.sh b/tools/pre_commit/shellcheck.sh similarity index 100% rename from tools/shellcheck.sh rename to tools/pre_commit/shellcheck.sh diff --git a/tools/update-dockerfile-graph.sh b/tools/pre_commit/update-dockerfile-graph.sh similarity index 100% rename from tools/update-dockerfile-graph.sh rename to tools/pre_commit/update-dockerfile-graph.sh diff --git a/tools/validate_config.py b/tools/pre_commit/validate_config.py similarity index 100% rename from tools/validate_config.py rename to tools/pre_commit/validate_config.py diff --git a/vllm/config/utils.py b/vllm/config/utils.py index 5e7e7580c5..7e0878d96b 100644 --- a/vllm/config/utils.py +++ b/vllm/config/utils.py @@ -33,7 +33,7 @@ def config(cls: ConfigT) -> ConfigT: `pydantic.TypeAdapter(ConfigT).validate_json(cli_arg)` which treats the `cli_arg` as a JSON string which gets validated by `pydantic`. - Config validation is performed by the tools/validate_config.py + Config validation is performed by the tools/pre_commit/validate_config.py script, which is invoked during the pre-commit checks. """ return cls