default_install_hook_types: - pre-commit - commit-msg default_stages: - pre-commit # Run locally - manual # Run in CI exclude: 'examples/.*' # Exclude examples from all hooks by default repos: # - repo: https://github.com/codespell-project/codespell # rev: v2.4.1 # hooks: # - id: codespell # args: [ # --toml, pyproject.toml, # '--skip', 'vllm_kunlun/csrc/**,tests/**,.github/**,', # '-L', '' # ] # additional_dependencies: # - tomli - repo: https://github.com/google/yapf rev: v0.43.0 hooks: - id: yapf args: [--in-place, --verbose] # Keep the same list from yapfignore here to avoid yapf failing without any inputs exclude: '(.github|benchmarks|examples|docs)/.*' - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.11.7 hooks: - id: ruff args: [--output-format, github, --fix] - id: ruff-format files: ^(benchmarks|examples)/.* - repo: https://github.com/crate-ci/typos rev: v1.32.0 hooks: - id: typos args: [ "--force-exclude", "--exclude", "vllm_kunlun/csrc/**" ] - repo: https://github.com/PyCQA/isort rev: 6.0.1 hooks: - id: isort - repo: https://github.com/jackdewinter/pymarkdown rev: v0.9.29 hooks: - id: pymarkdown args: [fix] - repo: https://github.com/rhysd/actionlint rev: v1.7.7 hooks: - id: actionlint - repo: local hooks: # - 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: tools/mypy.sh 1 "3.10" # # Use system python because vllm installation is required # language: system # types: [python] # stages: [manual] # Only run in CI # - 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: tools/mypy.sh 1 "3.11" # # Use system python because vllm installation is required # language: system # types: [python] # 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: tools/mypy.sh 1 "3.12" # # Use system python because vllm installation is required # language: system # types: [python] # stages: [manual] # Only run in CI - 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-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: python-init # name: Enforce __init__.py in Python packages # entry: python tools/check_python_src_init.py # language: python # types: [python] # pass_filenames: false # Keep `suggestion` last - id: suggestion name: Suggestion entry: bash -c 'echo "To bypass pre-commit hooks, add --no-verify to git commit."' language: system verbose: true pass_filenames: false # Insert new entries above the `suggestion` entry