akirak / conventional-commit.el

Completion support for conventional commits
GNU General Public License v3.0
13 stars 3 forks source link

Integration with commitlint #1

Open akirak opened 2 years ago

akirak commented 2 years ago

After receiving a comment by riscy at https://github.com/melpa/melpa/pull/7747#issuecomment-939524614, I performed research on tools around conventional commits.

commitlint is the program which checks commit messages based on conventional commits (and other well-known conventions), so it would be better for this package to read its configuration.

There are other tools developed by the conventional-changelog organization, such as standard-version or semantic-release (for generating changelog.md) and releaser-tools (for releasing to GitHub/GitLab), but they are only related to other stages of development, so they are not related to this package.

There is an alternative tool named commitizen, but I won't take it into account. It is used by some users of commitlint for creating commits and generating changelogs, so it is basically just a frontend. Rather, commitizen would be what should be (ultimately) replicated by this package.

After doing more research on commitlint, I'll probably perform a complete rewrite of this package. Otherwise, I'll close the PR.

akirak commented 2 years ago

If someone else works on the idea and finishes a MVP earlier than me, I will archive this repository in favor of it.

bdarcus commented 1 year ago

One issue with those two tools is they're npm-based.

cocogitto is a rust-based alternative, and so with a single binary.

Not saying you should support one or the other, but perhaps there's a way to make it configurable?

At least with cog, it includes things like git hooks to lint commit messages.

akirak commented 1 year ago

Thank you for the information. I will consider cocogitto next time I work on this package.

fnicastri commented 1 year ago

Hi, there is conform too, golang, single binary. Simpler than Cocogitto, it just check if the commit message is conform to the parameters in the configuration file.

;)

akirak commented 1 year ago

@fnicastri Thanks.