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

changelog generation is not working as expected in case of cz_customize? #466

Open
brunopereira7 opened this issue Dec 22, 2021 · 9 comments
Labels
issue-status: wait-for-implementation maintainers agree on the bug / feature type: bug

Comments

@brunopereira7
Copy link

brunopereira7 commented Dec 22, 2021

Description

Maybe I'm missing something but I'm not able to generate a changelog properly with custom configurations (cz_customize).

Steps to reproduce

cz --debug changelog --dry-run

Current behavior

I've tried different configurations through cz_customize, although the customization related to commits seems ok, the changelog generation doesn't work for me. I'm not able to generate a changelog as I do with the cz_conventional_commits. There is no filtering on the commits, no grouping by change_type as you can see below.

File: .cz.yaml

commitizen:
  name: cz_customize
  customize:
    message_template: "{{change_type}}:{% if show_message %} {{message}}{% endif %}"
    example: 'feature: this feature enable customize through config file'
    schema: "<type>: <body>"
    schema_pattern: (build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert|bump)(\(\S+\))?!?:(\s.*)
    changelog_pattern: ^(feat|fix|chore|refactor|perf)(\(.+\))?(!)?
    change_type_order: ["BREAKING CHANGE", "feat", "fix", "refactor", "chore", "perf"]
    info_path: cz_customize_info.txt
    info: This is customized info
    questions:
    - type: list
      name: change_type
      choices:
      - value: feature
        name: 'feature: A new feature.'
      - value: bug fix
        name: 'bug fix: A bug fix.'
      message: Select the type of change you are committing
    - type: input
      name: message
      message: Body.
    - type: confirm
      name: show_message
      message: Do you want to add body message in commit?
cz --debug changelog --dry-run
## Unreleased


- feat(DL-4567): new feature test
- fix(DL-1234): qweqwe

Screenshots

image

Desired behavior

File: .cz.yaml

commitizen:
  name: cz_customize
  customize:
    message_template: "{{change_type}}:{% if show_message %} {{message}}{% endif %}"
    example: 'feature: this feature enable customize through config file'
    schema: "<type>: <body>"
    schema_pattern: (build|ci|docs|feat|fix|perf|refactor|style|test|chore|revert|bump)(\(\S+\))?!?:(\s.*)
    changelog_pattern: ^(feat|fix|chore|refactor|perf)(\(.+\))?(!)?
    change_type_order: ["BREAKING CHANGE", "feat", "fix", "refactor", "chore", "perf"]
    info_path: cz_customize_info.txt
    info: This is customized info
    questions:
    - type: list
      name: change_type
      choices:
      - value: feature
        name: 'feature: A new feature.'
      - value: bug fix
        name: 'bug fix: A bug fix.'
      message: Select the type of change you are committing
    - type: input
      name: message
      message: Body.
    - type: confirm
      name: show_message
      message: Do you want to add body message in commit?
cz --debug changelog --dry-run`
## Unreleased

### Feat

- **DL-4567**: new feature test

### Fix

- **DL-1234**: qweqwe

Screenshots
image

Environment

Commitizen Version: 2.20.0
Python Version: 3.10.0 (default, Oct 12 2021, 22:37:59) [Clang 13.0.0 (clang-1300.0.29.3)]
Operating System: Darwin

@woile
Copy link
Member

woile commented Dec 23, 2021

Hey bruno, I copied your example, seems to be working well. You see that error because of the --debug flag. Which gives you extra information, but it is not returning an error (you can see the error code doing echo $? and you'll see is still 0).

Let me know if that's correct, otherwise we can continue exploring the issue.

Cheers!

@brunopereira7
Copy link
Author

Hey Santiago, thanks for your input.

I switched on the --debug flag to check if I have any extra information that could explain what I'm missing, but maybe I was not clear in explaining the issue (btw, I updated the "Desired Behavior" section).

I want to generate the changelog (as it is generated by default with cz_conventional_commits) using cz_customize definitions. Maybe I'm missing something in my configuration, but after trying different settings with cz_customize, I'm not able to achieve the changelog generation features:

  • Grouping by change_type
  • Have only commits following the conventional commits specification/schema pattern

Thanks once again, and let me know if you need further information.

@woile
Copy link
Member

woile commented Dec 23, 2021

I think the commit_parser regex is not exposed in the customize

commit_parser = r"^(?P<change_type>feat|fix|refactor|perf|BREAKING CHANGE)(?:\((?P<scope>[^()\r\n]*)\)|\()?(?P<breaking>!)?:\s(?P<message>.*)?" # noqa

and it looks like the customize is using the default from the base

commit_parser: Optional[str] = r"(?P<message>.*)"

Any thoguhts on this @Lee-W ? Was there a reason for not exposing commit_parser?

@Lee-W
Copy link
Member

Lee-W commented Dec 24, 2021

Back to the time cz_customize was designed, it was not designed to have any default value. But there might be some default values accidentally added to cz_cutsomize. What's in my mind now is to deprecate cz_customize and make the options in cz_* customizable

@whoracle
Copy link

whoracle commented Jun 10, 2022

Any updates on this topic? I stumbled over this, too. Or do I need to create a custom cz_ plugin?

@Lee-W
Copy link
Member

Lee-W commented Jul 22, 2022

We're out of bandwidth to implement this feature these days. PR is welcome 🙂

@Lee-W Lee-W added the issue-status: wait-for-implementation maintainers agree on the bug / feature label Jul 22, 2022
@robertschweizer
Copy link
Contributor

I think commit_parser is exposed since #442.

Better default handling for cz_customize as suggested by @Lee-W is also discussed here: #535

@shantonio
Copy link

shantonio commented Jun 26, 2023

@Lee-W
any updates to use cz_customize with default parser ?

@Lee-W
Copy link
Member

Lee-W commented Jun 27, 2023

No update at this moment. Would appreciate it if anyone wants to take a look 🙂

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: bug
Projects
None yet
Development

No branches or pull requests

6 participants