Skip to content(if available)orjump to list(if available)

Better pre-commit, re-engineered in Rust

WhyNotHugo

Looks like this is just a clone of pre-commit, with the same general design.

> 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.

move-on-by

Interesting timing since the pre-commit author recently said it’s more or less been in maintenance mode but is now interested in adding new features.

For me, I would say the most intriguing feature is no Python dependencies.

matthewfcarlson

I didn’t think pre-commit was that slow but I’ll admit I am intrigued. UV has been a godsend so why not?

emschwartz

Agreed. For a Rust project, running Clippy and rustfmt is slow, but I’d be surprised to learn that pre-commit itself was a non-negligible part of that.

rtyu1120

I wish there's a better comparison to other native solutions like lefthook. I assume the builtin hooks is a core differentiator but I'm not sure if this would be useful outside the Python community.