Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option to allow fixup! and squash! in commit messages #414

Open
lobotmcj opened this issue Aug 21, 2021 · 8 comments
Open

Option to allow fixup! and squash! in commit messages #414

lobotmcj opened this issue Aug 21, 2021 · 8 comments
Labels
issue-status: wait-for-implementation maintainers agree on the bug / feature type: feature A new enhacement proposal

Comments

@lobotmcj
Copy link
Contributor

lobotmcj commented Aug 21, 2021

Description

It would be nice if cz check didn't fail for fixup and squash commits, e.g., git commit --fixup <rev> or git commit --squash <rev> if the commit messages are otherwise acceptable. In git worflows that use rebase and --autosquash, the offending commit message portion (squash! or fixup! ) will be removed. This is especially annoying when commitizen is used with pre-commit, because every time you do a squash or fixup commit you have to SKIP=commitizen git commit --fixup ....

Possible Solution

Add a CLI option to cz check for this such as --autosquash or some better name which, if true, prepends the commit message check regex pattern with something like r"((fixup|squash)\!\s)?"

I haven't thought through all of the use cases, but a CLI option may be preferable to a config setting in e.g., toml because you may want the behavior to be different when you are committing (allow) versus pushing or in your CI pipeline (deny). So having something that can be changed a bit more easily than a config option may be desirable. But I hold this opinion lightly.

@lobotmcj lobotmcj added the type: feature A new enhacement proposal label Aug 21, 2021
@Lee-W
Copy link
Member

Lee-W commented Aug 25, 2021

I'm good with this feature @woile What do you think?

@woile
Copy link
Member

woile commented Aug 25, 2021

I'm fine with it, just wondering how to include this. We also have the signed commits with -s, I was wondering if we should move forward with

cz check -- {extra parameters propagated to git}
cz commit -- {extra parameters propagated to git}

What do you think would be the best interface?

@Lee-W
Copy link
Member

Lee-W commented Aug 26, 2021

I'm ok with -- {extra parameters propagated to git}. Implement each git argument would be a huge burden for us

@yajo
Copy link
Contributor

yajo commented Mar 28, 2022

I don't think this is related to git itself. It's just a matter of allowing fixup commits in the regexp.

For example, having the commit-msg pre-commit hook installed, there should be a way to let this not fail:

> git commit -a --fixup 57a2044f1290cba0ca6530e6e77cd5da243e74b1
commitizen check.........................................................Failed
- hook id: commitizen
- exit code: 14

commit validation: failed!
please enter a commit message in the commitizen format.
commit "": "fixup! feat: allow easy working"
pattern: (build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert|bump)(\(\S+\))?!?:(\s.*)

@Lee-W
Copy link
Member

Lee-W commented Mar 29, 2022

if that's the case, I'm ok with it. @woile what do you think?

@woile
Copy link
Member

woile commented Mar 29, 2022

fine by me as well 👍

@Lee-W Lee-W added the issue-status: wait-for-implementation maintainers agree on the bug / feature label Mar 29, 2022
@wombelix
Copy link

Hey guys, found that issue and as workaround I started using a custom schema_pattern today, so far it behave as expected, even though I would also prefer to see it directly as feature (maybe I find some time to checkout the code base and create a pull request), is that a doable alternative in your opinion or do I miss an important part here?

commitizen:
  name: cz_customize
  customize:
    schema_pattern: ((fixup|squash)\!\s)?(|build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert|bump)(\(\S+\))?!?:(\s.*)

@Lee-W
Copy link
Member

Lee-W commented May 22, 2022

Thanks @wombelix I think it's a great workaround

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
issue-status: wait-for-implementation maintainers agree on the bug / feature type: feature A new enhacement proposal
Projects
None yet
Development

No branches or pull requests

5 participants