[changelog]
header = ""
body = """
{% if version %}\
## [{{ version }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | upper_first }}
{% for commit in commits %}
- {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first }}\
{% endfor %}
{% endfor %}\n
"""
trim = true
footer = """
<!-- generated by git-cliff -->
"""
postprocessors = []
[git]
conventional_commits = true
filter_commits = true
commit_groups = [
{ name = "Features", tags = ["feat"], body = "^[feat]" },
{ name = "Bug Fixes", tags = ["fix"], body = "^[fix]" },
{ name = "Documentation", tags = ["docs"], body = "^[docs]" },
{ name = "Performance", tags = ["perf"], body = "^[perf]" },
{ name = "Refactor", tags = ["refactor"], body = "^[refactor]" },
{ name = "Style", tags = ["style"], body = "^[style]" },
{ name = "Testing", tags = ["test"], body = "^[test]" },
{ name = "Chore", tags = ["chore"], body = "^[chore]" },
{ name = "CI", tags = ["ci"], body = "^[ci]" },
]
filter_unconventional = true
commit_preprocessors = [
{ pattern = '\((\w+)\)', replace = "($1)" },
]
commit_parsers = [
{ message = "^feat", group = "Features" },
{ message = "^fix", group = "Bug Fixes" },
{ message = "^docs", group = "Documentation" },
{ message = "^perf", group = "Performance" },
{ message = "^refactor", group = "Refactor" },
{ message = "^style", group = "Style" },
{ message = "^test", group = "Testing" },
{ message = "^chore\\(release\\)", skip = true },
{ message = "^chore", group = "Chore" },
{ message = "^ci", group = "CI" },
]
protect_breaking_commits = false
sort_commits = "oldest"