> pre-commit is a framework to run hooks written in many languages, and it manages the language toolchain and dependencies for running the hooks
The “and” here are the main annoyances with pre-commit. It does too many things, which would each be best served by a separate tool.
As a developer working on a project, I already have mechanisms to set up a development environment. Having pre-commit install another copy of the dev environment is redundant, and typically necessitates duplicating dependency declarations too.
I’d much rather see a tool that focuses on running commit hooks, while leaving dependency management to another tool. Most projects already have something in place anyway, since dependencies are necessary for development beyond the scope of pre-commit hooks.
The really useful part of pre-commit is that it: (1) only runs hooks based on file that changed and (2) stashes all unstaged changes and untracked files.
nikolay•4d ago