Commitlint: Support the Pre-Commit framework with a .pre-commit-hooks.yaml file

Created on 8 Sep 2020  路  6Comments  路  Source: conventional-changelog/commitlint

Expected Behavior Question/Feature request

This is more a blatant question and feature request:

Would a basic config for the pre-commit framework be possible, and if so, even desired for the repo to have?

It would be implemented by having a .pre-commit-hooks.yaml file in the root of the repo, that pre-commit can be pointed at in other projects to implement commit linting.

Possible Solution

Adding a .pre-commit-hooks.yaml to the project to be able to be used by the pre-commit tool simply. A number of projects, such as Prettier and Python's Black provide such files to allow the tool to be transparently installed and run as git hooks.

Context

Pre-commit is a tool for declaratively managing git hooks in a repo, not unlike husky.
The major difference is that pre-commit manages pulling down and transparently installing the tools itself, regardless of language, allowing projects to use software that don't necessarily suit being a part of a project's dependencies.

Many projects provide a .pre-commit-hooks.yaml themselves, for just this reason.

While Husky is the gold standard in the JS world, it's not ideal for multi-language projects, as you either need to set up a dedicated package.json in the root of the repository, or even less elegantly, configure it just in sub-folder, likefrontend/ for example. I believe commit linting is such a powerful tool, that anything we can do to make it more widespread is a big win, and would lead to wider spread adoption outside of just javascript environments.

Incidentally, I have run across a small repo that achieves just this, though a first party equivalent would be a much healthier signal.

feature question

Most helpful comment

Hey guys, I would also love to see first party support for this. As already mentioned by others, https://github.com/alessandrojcm/commitlint-pre-commit-hook project has it done for you, just a matter of copying it here!
I'm sure @alessandrojcm would be fairly proud of it!

All 6 comments

Hey @tkcranny , thanks for the suggestion and providing context.
I guess this could help certain users. @byCedric what do you think?

Wanted to +1 this

I found a repo mirroring commitlint to provide a .pre-commit-hooks.yaml: https://github.com/alessandrojcm/commitlint-pre-commit-hook

IMHO its better to have the .pre-commit-hooks.yaml directly in the repo to use. +1 for this request.

But currently (at least for me) the hook does not work: #2254

Hi @Cielquan, I did actually link to alessandrojcm/commitlint-pre-commit-hook in the last sentance of the ticket 馃槢
I agree commitlint should support it with a .pre-commit-hooks.yaml file for sure.

An interesting change Prettier has done recently has been to extract the yaml file (and related npm stuff) for the pre-commit hook into its own repo. This is still a first-party solution though, so it's still a healthy sign for the Prettier project.

As for mitigating #2254, I've had to manually pin to version 9.1.1 in my company's fork of the project.

Hi @Cielquan, I did actually link to alessandrojcm/commitlint-pre-commit-hook in the last sentance of the ticket

I totally oversaw this .. lol

As for mitigating #2254, I've had to manually pin to version 9.1.1 in my company's fork of the project.

Thanks for the info.

Hey guys, I would also love to see first party support for this. As already mentioned by others, https://github.com/alessandrojcm/commitlint-pre-commit-hook project has it done for you, just a matter of copying it here!
I'm sure @alessandrojcm would be fairly proud of it!

Was this page helpful?
0 / 5 - 0 ratings