default_install_hook_types:

- pre-commit

Views0
PublishedFeb 1, 2026

Loading actions...

5 minBeginnerpromptSingle file

Skill content

Main instructions and any bundled files for this skill.

markdown

default_install_hook_types:

  • pre-commit
  • commit-msg default_stages:
  • pre-commit # Run locally
  • manual # Run in CI exclude: 'vllm/third_party/.*' repos:
  • repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.14.0 hooks:
    • id: ruff-check args: [--output-format, github, --fix]
    • id: ruff-format
  • repo: https://github.com/crate-ci/typos rev: v1.43.5 hooks:
    • id: typos args: [--force-exclude]
  • repo: https://github.com/pre-commit/mirrors-clang-format rev: v21.1.2 hooks:
    • id: clang-format exclude: 'csrc/libtorch_stable/moe/topk_softmax_kernels.cu|vllm/third_party/.*' types_or: [c++, cuda] args: [--style=file, --verbose]
  • repo: https://github.com/DavidAnson/markdownlint-cli2 rev: v0.21.0 hooks:
    • id: markdownlint-cli2 language_version: lts args: [--fix] exclude: ^CLAUDE.md$
  • repo: https://github.com/rhysd/actionlint rev: v1.7.7 hooks:
    • id: actionlint
  • repo: https://github.com/astral-sh/uv-pre-commit rev: 0.11.1 hooks:
    • id: pip-compile args: [ requirements/test/cuda.in, -c, requirements/cuda.txt, -o, requirements/test/cuda.txt, --index-strategy, unsafe-best-match, --torch-backend, cu130, --python-platform, x86_64-manylinux_2_28, --python-version, "3.12", ] files: ^requirements/(common|cuda|test/cuda).(in|txt)$
    • id: pip-compile alias: pip-compile-rocm name: pip-compile-rocm args: [ requirements/test/rocm.in, -c, requirements/rocm.txt, -o, requirements/test/rocm.txt, --index-strategy, unsafe-best-match, --python-platform, x86_64-manylinux_2_28, --python-version, "3.12",

      Exclude torch and CUDA/NVIDIA packages

      --no-emit-package, torch, --no-emit-package, torchvision, --no-emit-package, torchaudio, --no-emit-package, triton, --no-emit-package, cuda-bindings, --no-emit-package, cuda-pathfinder, --no-emit-package, cuda-toolkit, --no-emit-package, cupy-cuda12x,

      nvidia packages (unsuffixed / unified naming)

      --no-emit-package, nvidia-cublas, --no-emit-package, nvidia-cuda-cupti, --no-emit-package, nvidia-cuda-nvrtc, --no-emit-package, nvidia-cuda-runtime, --no-emit-package, nvidia-cudnn, --no-emit-package, nvidia-cufft, --no-emit-package, nvidia-cufile, --no-emit-package, nvidia-curand, --no-emit-package, nvidia-cusolver, --no-emit-package, nvidia-cusparse, --no-emit-package, nvidia-cusparselt, --no-emit-package, nvidia-nccl, --no-emit-package, nvidia-nvjitlink, --no-emit-package, nvidia-nvshmem, --no-emit-package, nvidia-nvtx,

      nvidia cu12 packages

      --no-emit-package, nvidia-cublas-cu12, --no-emit-package, nvidia-cuda-cupti-cu12, --no-emit-package, nvidia-cuda-nvrtc-cu12, --no-emit-package, nvidia-cuda-runtime-cu12, --no-emit-package, nvidia-cudnn-cu12, --no-emit-package, nvidia-cufft-cu12, --no-emit-package, nvidia-cufile-cu12, --no-emit-package, nvidia-curand-cu12, --no-emit-package, nvidia-cusolver-cu12, --no-emit-package, nvidia-cusparse-cu12, --no-emit-package, nvidia-cusparselt-cu12, --no-emit-package, nvidia-nccl-cu12, --no-emit-package, nvidia-nvjitlink-cu12, --no-emit-package, nvidia-nvshmem-cu12, --no-emit-package, nvidia-nvtx-cu12,

      nvidia cu13 packages

      --no-emit-package, nvidia-cublas-cu13, --no-emit-package, nvidia-cuda-cupti-cu13, --no-emit-package, nvidia-cuda-nvrtc-cu13, --no-emit-package, nvidia-cuda-runtime-cu13, --no-emit-package, nvidia-cudnn-cu13, --no-emit-package, nvidia-cufft-cu13, --no-emit-package, nvidia-cufile-cu13, --no-emit-package, nvidia-curand-cu13, --no-emit-package, nvidia-cusolver-cu13, --no-emit-package, nvidia-cusparse-cu13, --no-emit-package, nvidia-cusparselt-cu13, --no-emit-package, nvidia-nccl-cu13, --no-emit-package, nvidia-nvjitlink-cu13, --no-emit-package, nvidia-nvshmem-cu13, --no-emit-package, nvidia-nvtx-cu13, ] files: ^requirements/(common|rocm|test/rocm).(in|txt)$
    • id: pip-compile alias: pip-compile-xpu name: pip-compile-xpu args: [ requirements/test/xpu.in, -c, requirements/xpu.txt, -o, requirements/test/xpu.txt, --index-strategy, unsafe-best-match, --torch-backend, xpu, --python-platform, x86_64-manylinux_2_39, --python-version, "3.12", ] files: ^requirements/(common|xpu|test/xpu).(in|txt)$
    • id: pip-compile alias: pip-compile-docs name: pip-compile-docs args: [ requirements/docs.in, -o, requirements/docs.txt, --python-platform, x86_64-manylinux_2_28, --python-version, "3.12", ] files: ^requirements/docs.(in|txt)$
  • repo: local hooks:
    • id: format-torch-nightly-test name: reformat test/nightly-torch.txt to be in sync with test/cuda.in language: python entry: python tools/pre_commit/generate_nightly_torch_test.py files: ^requirements/test/cuda.(in|txt)$
    • id: mypy-3.10 # TODO: Use https://github.com/pre-commit/mirrors-mypy when mypy setup is less awkward name: Run mypy for Python 3.10 entry: python tools/pre_commit/mypy.py "3.10" <<: &mypy_common language: python types_or: [python, pyi] require_serial: true additional_dependencies: ["mypy==1.20.2", regex, types-cachetools, types-setuptools, types-PyYAML, types-requests, types-torch, pydantic]
    • id: mypy-3.11 # TODO: Use https://github.com/pre-commit/mirrors-mypy when mypy setup is less awkward name: Run mypy for Python 3.11 entry: python tools/pre_commit/mypy.py "3.11" <<: *mypy_common stages: [manual] # Only run in CI
    • id: mypy-3.12 # TODO: Use https://github.com/pre-commit/mirrors-mypy when mypy setup is less awkward name: Run mypy for Python 3.12 entry: python tools/pre_commit/mypy.py "3.12" <<: *mypy_common stages: [manual] # Only run in CI
    • id: mypy-3.13 # TODO: Use https://github.com/pre-commit/mirrors-mypy when mypy setup is less awkward name: Run mypy for Python 3.13 entry: python tools/pre_commit/mypy.py "3.13" <<: *mypy_common stages: [manual] # Only run in CI
    • id: shellcheck name: Lint shell scripts entry: tools/pre_commit/shellcheck.sh language: script types: [shell]
    • id: png-lint name: Lint PNG exports from excalidraw entry: tools/pre_commit/png-lint.sh language: script types: [png]
    • id: signoff-commit name: Sign-off Commit entry: bash args:
      • -c
      • | if ! grep -q "^Signed-off-by: $(git config user.name) <$(git config user.email)>" "$(git rev-parse --git-path COMMIT_EDITMSG)"; then printf "\nSigned-off-by: $(git config user.name) <$(git config user.email)>\n" >> "$(git rev-parse --git-path COMMIT_EDITMSG)" fi language: system verbose: true stages: [commit-msg]
    • id: check-spdx-header name: Check SPDX headers 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/pre_commit/check_init_lazy_imports.py language: python types: [python]
    • id: check-filenames name: Check for spaces in all filenames entry: bash args:
      • -c
      • 'git ls-files | grep " " && echo "Filenames should not contain spaces!" && exit 1 || exit 0' language: system always_run: true pass_filenames: false
    • id: update-dockerfile-graph name: Update Dockerfile dependency graph entry: tools/pre_commit/update-dockerfile-graph.sh language: script
    • id: test-nonroot-entrypoint name: Test non-root entrypoint wrapper entry: bash docker/entrypoints/test_vllm_nonroot_entrypoint.sh language: system pass_filenames: false files: ^docker/entrypoints/(vllm-nonroot-entrypoint|test_vllm_nonroot_entrypoint).sh$
    • id: check-forbidden-imports name: Check for forbidden imports entry: python tools/pre_commit/check_forbidden_imports.py language: python types: [python] additional_dependencies: [regex]

    prevent use torch.cuda APIs

    • id: check-torch-cuda-call name: "Prevent new 'torch.cuda' APIs call" entry: python tools/pre_commit/check_torch_cuda.py language: python types: [python] additional_dependencies: [regex]
    • id: validate-config name: Validate configuration has default values and that each field has a docstring entry: python tools/pre_commit/validate_config.py language: python additional_dependencies: [regex]
    • id: validate-docker-versions name: Validate docker/versions.json matches Dockerfile entry: python tools/generate_versions_json.py --check language: python files: ^docker/(Dockerfile|versions.json)$ pass_filenames: false additional_dependencies: [dockerfile-parse]
    • id: attention-backend-docs name: Check attention backend documentation is up to date entry: python tools/pre_commit/generate_attention_backend_docs.py --check language: python
    • id: check-boolean-context-manager name: Check for boolean ops in with-statements entry: python tools/pre_commit/check_boolean_context_manager.py language: python types: [python]

    Rust hooks. These shell out to cargo; tools/pre_commit/rust-check.sh

    skips with a warning when cargo is not installed.

    • id: rust-cargo-autoinherit name: Rust - Normalize Cargo manifests with autoinherit entry: tools/pre_commit/rust-check.sh autoinherit --prefer-simple-dotted language: script pass_filenames: false require_serial: true stages: [pre-commit] # Only run locally as Buildkite will cover this files: ^rust/(Cargo.toml|src/.*/Cargo.toml)$
    • id: rust-cargo-sort name: Rust - Sort Cargo manifest sections entry: tools/pre_commit/rust-check.sh sort --workspace language: script pass_filenames: false require_serial: true stages: [pre-commit] # Only run locally as Buildkite will cover this files: ^rust/(Cargo.toml|src/.*/Cargo.toml)$
    • id: rust-cargo-fmt name: Rust - Format code entry: tools/pre_commit/rust-check.sh fmt language: script pass_filenames: false require_serial: true stages: [pre-commit] # Only run locally as Buildkite will cover this files: ^rust/.*(.rs|Cargo.toml|rustfmt.toml)$

    Keep suggestion last

    • id: suggestion name: Suggestion entry: bash -c 'echo "To bypass all the pre-commit hooks, add --no-verify to git commit. To skip a specific hook, prefix the commit command with SKIP=."' language: system verbose: true pass_filenames: false

    Insert new entries above the suggestion entry

Share: