cachix / git-hooks.nix

Seamless integration of https://pre-commit.com git hooks with Nix.
Apache License 2.0
533 stars 155 forks source link

`default_stages` should be split up into 2 options #451

Open sandydoo opened 6 months ago

sandydoo commented 6 months ago

Currently, default_stages controls two things:

  1. The stages that each hook supports by default. As a result, all of our hooks don't even support the manual stage, unless one overrides this option. In pre-commit, this is set to all stages.
  2. Which hooks are installed.

This combination makes it difficult to allow all of our hooks to run in any stage by default, without also installing all of them. Unfortunately, fixing this looks like a breaking change.

pre-commit now has a new option: default_install_hook_types. This matches the installation semantics of our current default_stages.

And default_stages is then only used as a fallback for when hooks don't specify any stages.