pre-commit hooks are fundamentally broken

https://jyn.dev/pre-commit-hooks-are-fundamentally-broken/

10 points · 2 comments · view on lemmy.world

2 Comments

fruitcantfly@programming.dev · 7 pts · 259d (1 reply)

Most or all of these problems, and several more, are solved by using pre-commit. The author vaguely alludes to having had troubles with tools like this, but that has not been my experience.

The problem with somebody bypassing the hooks (intentionally or unintentionally) is solved by running the hooks as part of your CI; if you don't allow merges that fail these checks, then people can't skip them. If you also squash merges as a rule, then every commit on your target branch will pass the checks

EDIT: I'll add that, IMO, hooks should never modify files. They should simply check that your code meets whatever requirements you want your code-base to meet

PhilipTheBucket@piefed.social · 5 pts · 259d

EDIT: I’ll add that, IMO, hooks should never modify files. They should simply check that your code meets whatever requirements you want your code-base to meet

This, I think, is the way. This is also how I've seen it in every actual real project I've encountered, and I sort of wish they would make it a little more clear what is the command I can run to make the checks pass by doing an auto-format or whatever, but yes I agree that the author should have spent a little more time on explaining what the actual solution is.