• @[email protected]
    link
    fedilink
    18 months ago

    You can run locally defined hooks with pre-commit, just define them in the repo: local section of the .pre-commit-config.yaml

    Sounds like you’re just googling it rather than actually speaking from experience. Suppose I have written a Python lint and it’s in my ci/lints/foo folder. How do I tell pre-commit that? (Hint: you can’t)

    Which isn’t really that big a deal imo

    For small Python projects, maybe not. The project I’m working on has multiple sub-projects and those each have their own venvs, pyproject.tomls, etc.

    • @[email protected]
      link
      fedilink
      18 months ago

      Sounds like you’re just googling it rather than actually speaking from experience.

      Like I said, I’ve used pre-commit for multiple years now. If you can run your lints from a command line, you can configure pre-commit to run them.

      The project I’m working on has multiple sub-projects and those each have their own venvs, pyproject.tomls, etc.

      Monorepos definitely make things a bit trickier, but again, you absolutely can write a local pre-commit hook that runs a bash command or script that 1.) activates the necessary venv and 2.) runs the lint command. I know this because I’ve done it, multiple times.

      • @[email protected]
        link
        fedilink
        18 months ago

        If you can run your lints from a command line, you can configure pre-commit to run them.

        Yes but the whole point of pre-commit is it takes care of installing the lints. For most supported languages this requires the lint to be in its own repo. That is very annoying for project-specific lints that you would ideally want to just put in a subdirectory. Does that make sense?

        can write a local pre-commit hook that runs a bash command or script that 1.) activates the necessary venv and 2.) runs the lint command. I know this because I’ve done it, multiple times.

        Yeah there’s not really any point using pre-commit at that point.