Skip to content

prek uses incorrect python version for zizmor #1594

@jvllmr

Description

@jvllmr

Summary

prek tries to install the python environment for zizmor with python 3.9 but zizmor is marked to be compatible python 3.10 and up.

This does seem to be an issue with the zizmor repository itself. See zizmorcore/zizmor-pre-commit#36

Platform

FedoraLinux 43

Version

prek 0.3.2

.pre-commit-config.yaml

ci:
  skip:
    - eslint
    - prettier
    - go-fmt
    - go-vet
    - go-tidy
    - golangci-lint-full
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer
  - repo: https://github.com/woodruffw/zizmor-pre-commit
    rev: v1.22.0
    hooks:
      - id: zizmor
        args:
          - --fix=all
  - repo: https://github.com/jvllmr/pre-commit-prettier
    rev: v3.8.1
    hooks:
      - id: prettier
        additional_dependencies:
          - prettier@latest
          - prettier-plugin-organize-imports@latest
  - repo: https://github.com/segmentio/golines
    rev: v0.13.0
    hooks:
      - id: golines
  - repo: https://github.com/golangci/golangci-lint/
    rev: v2.8.0
    hooks:
      - id: golangci-lint-full
  - repo: local
    hooks:
      - id: eslint
        name: lint typescript
        entry: pnpm eslint
        language: system
        pass_filenames: true
        types_or:
          - ts
          - tsx
      - id: go-fmt
        name: go fmt
        entry: go fmt
        language: system
        pass_filenames: false
        types:
          - go
      - id: go-vet
        name: go vet
        entry: go vet
        language: system
        pass_filenames: false
        always_run: true
      - id: go-tidy
        name: tidy go mod
        entry: go mod tidy
        language: system
        pass_filenames: false
        types_or:
          - go-sum
          - go-mod

Log file

jan@jandora ~/D/d/frans (main) [2]> prek -vvv
2026-02-06T20:54:31.215836Z DEBUG prek: 0.3.2
2026-02-06T20:54:31.215860Z DEBUG Args: ["prek", "-vvv"]
2026-02-06T20:54:31.216555Z TRACE get_root: close time.busy=672µs time.idle=1.80µs
2026-02-06T20:54:31.216578Z DEBUG Git root: /home/jan/Documents/dev/frans
2026-02-06T20:54:31.216584Z TRACE Executing `/usr/bin/git ls-files --unmerged`
2026-02-06T20:54:31.217475Z DEBUG Found workspace root at `/home/jan/Documents/dev/frans`
2026-02-06T20:54:31.217494Z TRACE Include selectors: ``
2026-02-06T20:54:31.217502Z TRACE Skip selectors: ``
2026-02-06T20:54:31.217539Z DEBUG discover{root="/home/jan/Documents/dev/frans" config=None refresh=false}: Loaded workspace from cache
2026-02-06T20:54:31.217561Z DEBUG discover{root="/home/jan/Documents/dev/frans" config=None refresh=false}: Loading project configuration path=.pre-commit-config.yaml
2026-02-06T20:54:31.217800Z TRACE discover{root="/home/jan/Documents/dev/frans" config=None refresh=false}: close time.busy=287µs time.idle=1.32µs
2026-02-06T20:54:31.217826Z TRACE Executing `/usr/bin/git diff --exit-code --name-only -z /home/jan/Documents/dev/frans/.pre-commit-config.yaml`
2026-02-06T20:54:31.218901Z TRACE Checking lock resource="store" path=/home/jan/.cache/prek/.lock
2026-02-06T20:54:31.218921Z DEBUG Acquired lock resource="store"
2026-02-06T20:54:31.220731Z TRACE Using go.mod-derived language_version hook=golines version=>= 1.23.0
2026-02-06T20:54:31.220796Z TRACE Using go.mod-derived language_version hook=golangci-lint-full version=>= 1.24.0
2026-02-06T20:54:31.220814Z DEBUG Hooks going to run: ["trailing-whitespace", "end-of-file-fixer", "zizmor", "prettier", "golines", "golangci-lint-full", "eslint", "go-fmt", "go-vet", "go-tidy"]
2026-02-06T20:54:31.221134Z  WARN Skipping invalid installed hook err=failed to read from file `/home/jan/.cache/prek/hooks/node-vy1n21B7TuUbivjRQ4zj/.prek-hook.json`: No such file or directory (os error 2) path=/home/jan/.cache/prek/hooks/node-vy1n21B7TuUbivjRQ4zj
2026-02-06T20:54:31.221153Z  WARN Skipping invalid installed hook err=failed to read from file `/home/jan/.cache/prek/hooks/golang-FRLF3j88sftq308wIpXL/.prek-hook.json`: No such file or directory (os error 2) path=/home/jan/.cache/prek/hooks/golang-FRLF3j88sftq308wIpXL
2026-02-06T20:54:31.221163Z  WARN Skipping invalid installed hook err=failed to read from file `/home/jan/.cache/prek/hooks/golang-PjXu0oMg44nFbcjfdi4J/.prek-hook.json`: No such file or directory (os error 2) path=/home/jan/.cache/prek/hooks/golang-PjXu0oMg44nFbcjfdi4J
2026-02-06T20:54:31.221171Z  WARN Skipping invalid installed hook err=failed to read from file `/home/jan/.cache/prek/hooks/golang-oKmM1ZdEMbbjTKG4KDvW/.prek-hook.json`: No such file or directory (os error 2) path=/home/jan/.cache/prek/hooks/golang-oKmM1ZdEMbbjTKG4KDvW
2026-02-06T20:54:31.221180Z  WARN Skipping invalid installed hook err=failed to read from file `/home/jan/.cache/prek/hooks/golang-TOe8vu0GeP94OgSmCsBd/.prek-hook.json`: No such file or directory (os error 2) path=/home/jan/.cache/prek/hooks/golang-TOe8vu0GeP94OgSmCsBd
2026-02-06T20:54:31.221188Z  WARN Skipping invalid installed hook err=failed to read from file `/home/jan/.cache/prek/hooks/node-6pmUsFXnraCelFrFGxzl/.prek-hook.json`: No such file or directory (os error 2) path=/home/jan/.cache/prek/hooks/node-6pmUsFXnraCelFrFGxzl
2026-02-06T20:54:31.221196Z  WARN Skipping invalid installed hook err=failed to read from file `/home/jan/.cache/prek/hooks/node-GbnBTd4HSEp75Yh0QXlr/.prek-hook.json`: No such file or directory (os error 2) path=/home/jan/.cache/prek/hooks/node-GbnBTd4HSEp75Yh0QXlr
2026-02-06T20:54:31.221209Z  WARN Skipping invalid installed hook err=failed to read from file `/home/jan/.cache/prek/hooks/golang-zIQpNYxzbGCjul5KFamm/.prek-hook.json`: No such file or directory (os error 2) path=/home/jan/.cache/prek/hooks/golang-zIQpNYxzbGCjul5KFamm
2026-02-06T20:54:31.221243Z DEBUG Hook `eslint` does not need installation
2026-02-06T20:54:31.221251Z DEBUG Hook `go-fmt` does not need installation
2026-02-06T20:54:31.221258Z DEBUG Hook `go-vet` does not need installation
2026-02-06T20:54:31.221263Z DEBUG Hook `go-tidy` does not need installation
2026-02-06T20:54:31.221277Z DEBUG Found installed environment for hook `golines` at `/home/jan/.cache/prek/hooks/golang-CWo0BlLwFji0hZgpbIyC`
2026-02-06T20:54:31.221331Z DEBUG Found uv in PATH: /home/jan/.local/bin/uv
2026-02-06T20:54:31.223997Z TRACE Using system uv version 0.10.0 at /home/jan/.local/bin/uv
2026-02-06T20:54:31.224064Z DEBUG Installing environment hook=trailing-whitespace target=/home/jan/.cache/prek/hooks/python-6qQWtuy0Ik66FZM2o3rU
2026-02-06T20:54:31.224073Z TRACE Executing `/home/jan/.local/bin/uv venv /home/jan/.cache/prek/hooks/python-6qQWtuy0Ik66FZM2o3rU --python-preference managed --no-project --project / --no-python-downloads [...]`
2026-02-06T20:54:31.224203Z TRACE Using system uv version 0.10.0 at /home/jan/.local/bin/uv
2026-02-06T20:54:31.224220Z DEBUG Installing environment hook=zizmor target=/home/jan/.cache/prek/hooks/python-a3St0LMm2FsS7ixdMrT5
2026-02-06T20:54:31.224225Z TRACE Executing `/home/jan/.local/bin/uv venv /home/jan/.cache/prek/hooks/python-a3St0LMm2FsS7ixdMrT5 --python-preference managed --no-project --project / --no-python-downloads [...]`
2026-02-06T20:54:31.224353Z TRACE Checking lock resource="node" path=/home/jan/.cache/prek/tools/node/.lock
2026-02-06T20:54:31.224359Z TRACE Checking lock resource="go" path=/home/jan/.cache/prek/tools/go/.lock
2026-02-06T20:54:31.224377Z DEBUG Acquired lock resource="node"
2026-02-06T20:54:31.224386Z DEBUG Acquired lock resource="go"
2026-02-06T20:54:31.224417Z TRACE Found npm in same directory as node node=/usr/bin/node npm=/usr/bin/npm
2026-02-06T20:54:31.224422Z TRACE Executing `/usr/bin/node -p JSON.stringify({version: process.version, lts: process.release.lts || false})`
2026-02-06T20:54:31.224504Z TRACE Executing `/usr/bin/go version`
2026-02-06T20:54:31.226657Z TRACE Found matching system go go=/usr/bin/go@1.25.6
2026-02-06T20:54:31.226681Z TRACE Using system go go=/usr/bin/go@1.25.6
2026-02-06T20:54:31.226692Z TRACE Released lock path=/home/jan/.cache/prek/tools/go/.lock
2026-02-06T20:54:31.226785Z TRACE Executing `cd /home/jan/.cache/prek/repos/b01fbcc4013bf932 && /usr/bin/go install ./...`
2026-02-06T20:54:31.245469Z DEBUG Venv created successfully with no downloads: `/home/jan/.cache/prek/hooks/python-a3St0LMm2FsS7ixdMrT5`
2026-02-06T20:54:31.245495Z TRACE Installing dependencies from repo path: /home/jan/.cache/prek/repos/128a72d945fef51a
2026-02-06T20:54:31.245507Z TRACE Executing `/home/jan/.local/bin/uv pip install --project / --directory /home/jan/.cache/prek/repos/128a72d945fef51a .`
2026-02-06T20:54:31.254290Z DEBUG Venv created successfully with no downloads: `/home/jan/.cache/prek/hooks/python-6qQWtuy0Ik66FZM2o3rU`
2026-02-06T20:54:31.254317Z TRACE Installing dependencies from repo path: /home/jan/.cache/prek/repos/9f2aecb6df5c72eb
2026-02-06T20:54:31.254330Z TRACE Executing `/home/jan/.local/bin/uv pip install --project / --directory /home/jan/.cache/prek/repos/9f2aecb6df5c72eb .`
2026-02-06T20:54:31.273570Z TRACE Found a matching system node node_result=/usr/bin/node@22.22.0-Jod
2026-02-06T20:54:31.273601Z TRACE Using system node node_result=/usr/bin/node@22.22.0-Jod
2026-02-06T20:54:31.273612Z TRACE Released lock path=/home/jan/.cache/prek/tools/node/.lock
2026-02-06T20:54:31.273739Z TRACE Executing `/usr/bin/npm install -g --no-progress --no-save --no-fund --no-audit --install-links prettier@latest /home/jan/.cache/prek/repos/476a030d90e828d6 [...]`
2026-02-06T20:54:31.291538Z TRACE Released lock path=/home/jan/.cache/prek/.lock
error: Failed to install hook `zizmor`
  caused by: Command `uv pip` exited with an error:

[status]
exit status: 1

[stderr]
Using Python 3.9.25 environment at: /home/jan/.cache/prek/hooks/python-a3St0LMm2FsS7ixdMrT5
× No solution found when resolving dependencies:
╰─▶ Because the current Python version (3.9.25) does not satisfy Python>=3.10 and zizmor==1.22.0 depends on Python>=3.10, we can conclude that zizmor==1.22.0 cannot be used.
And because zizmor-pre-commit==0.0.0 depends on zizmor==1.22.0, we can conclude that zizmor-pre-commit==0.0.0 cannot be used.
And because only zizmor-pre-commit==0.0.0 is available and you require zizmor-pre-commit, we can conclude that your requirements are unsatisfiable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions