# Configuration file for [`git-cliff`](https://github.com/orhun/git-cliff)
# See https://git-cliff.org/docs/configuration

[changelog]
header = """
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n
"""
# https://tera.netlify.app/docs/#introduction
body = """
{% if version %}\
    ## [{{ version | trim_start_matches(pat="v") }}](https://github.com/alloy-rs/chains/releases/tag/v{{ version | trim_start_matches(pat="v") }}) - {{ timestamp | date(format="%Y-%m-%d") }}
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
    ### {{ group | title }}
    {% for commit in commits %}
        - {% if commit.scope %}[{{ commit.scope }}] {% endif %}{{ commit.message | upper_first | split(pat="\\n") | first }}\
    {% endfor %}
{% endfor %}\n
"""
trim = true
footer = "<!-- generated by git-cliff -->"

[git]
conventional_commits = true
filter_unconventional = false
commit_preprocessors = [
    { pattern = '#(\d+)', replace = "[#$1](https://github.com/alloy-rs/chains/issues/$1)" },
]
commit_parsers = [
    { message = "^[Ff]eat", group = "Features" },
    { message = "^[Ff]ix", group = "Bug Fixes" },
    { message = "^[Dd]oc", group = "Documentation" },
    { message = ".*\\b([Dd]eps|[Dd]ependencies|[Bb]ump)\\b", group = "Dependencies" },
    { message = "^[Pp]erf", group = "Performance" },
    { message = "^[Rr]efactor", group = "Refactor" },
    { message = ".*\\b([Ss]tyle|[Ff]mt|[Ff]ormat)\\b", group = "Styling" },
    { message = "^[Tt]est", group = "Testing" },
    { message = "^[Cc]hore", group = "Miscellaneous Tasks" },

    { message = ".*", group = "Other" },
]
protect_breaking_commits = false
filter_commits = false
tag_pattern = "v[0-9]*"
skip_tags = "beta|alpha"
ignore_tags = "rc"
sort_commits = "newest"
