# NOTE: Reason for not using `prek.toml` is dependabot supports `pre-commit` as an ecosystem # See: https://github.blog/changelog/2026-03-10-dependabot-now-supports-pre-commit-hooks/ fail_fast: false repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v6.0.0 hooks: - id: check-merge-conflict priority: 0 - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.16.2 hooks: - id: ruff-format priority: 0 - id: ruff-check args: [--select, I, --fix, --exit-non-zero-on-fix] types_or: [python] require_serial: true priority: 1 - repo: local hooks: - id: redundant-test-patches name: check redundant test patches entry: scripts/check_redundant_patches.py files: '^Lib/test/.*\.py$' language: script types: [python] priority: 0 - repo: local hooks: - id: rustfmt name: rustfmt entry: rustfmt language: system types: [rust] priority: 0 - id: generate-rs-opcode-metadata name: generate rust opcode metadata entry: python3 tools/opcode_metadata/generate_rs_opcode_metadata.py files: '^(crates/compiler-core/src/bytecode/instruction\.rs|tools/opcode_metadata/*)$' pass_filenames: false language: system require_serial: true priority: 1 # so rustfmt runs first stages: - manual - id: generate-py-opcode-metadata name: generate python opcode metadata entry: python3 tools/opcode_metadata/generate_py_opcode_metadata.py files: '^(crates/compiler-core/src/bytecode/instruction\.rs|tools/opcode_metadata/*)$' pass_filenames: false language: system require_serial: true priority: 1 # so rustfmt runs first stages: - manual - repo: https://github.com/streetsidesoftware/cspell-cli rev: v10.0.1 hooks: - id: cspell types: [rust] additional_dependencies: - '@cspell/dict-en_us' - '@cspell/dict-cpp' - '@cspell/dict-python' - '@cspell/dict-rust' - '@cspell/dict-win32' - '@cspell/dict-shell' priority: 0 - repo: https://github.com/rbubley/mirrors-prettier rev: v3.9.6 hooks: - id: prettier files: '^wasm/.*$' priority: 0