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.
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.
Currently,
default_stages
controls two things:manual
stage, unless one overrides this option. In pre-commit, this is set to all stages.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 currentdefault_stages
.And
default_stages
is then only used as a fallback for when hooks don't specify any stages.