- Follow a convention.
- Are readable for humans and machines.
The main reasons why we chose it over other alternatives are:
- It allows us to have a standardized commit history, greatly improving documentation on what each commit does from a high level perspective while avoiding ending up with a messy commit history.
- It supports testing commit messages via CLI, allowing us to automate it as a CI job.
- As commit data is standardized, it allows us to run data analytics on our commit history and answer questions like What percentage of the commits in the last month were backend features?, How many developers worked on the front end of our application in the last month?, among many others.
- It is Open source.
- It is widely used by the community.
- It allows us to declare a syntax based on our own needs.
- It supports many rules that can be tuned based on our own needs.
We use Commitlint for: