[changelog] header = """ # Changelog All notable changes to this project will be documented in this file.\n """ body = """ {% if version %}\ # [{{ version | trim_start_matches(pat="v") }}]\ {% if previous %}\ {% if previous.commit_id %}\ ([{{ previous.commit_id | truncate(length=7, end="") }}]({{ previous.commit_id }})...[{{ commit_id | truncate(length=7, end="") }}]({{ commit_id }}))\ {% endif %}\ {% endif %}\ - ({{ 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 %}\ {% if commit.scope %}\ **{{commit.scope}}:** \ {% endif %}\ {{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}]({{ commit.id }}))\ {% endfor %} {% endfor %}\n """ trim = true footer = "" [git] conventional_commits = true filter_unconventional = true commit_parsers = [ { message = "^feat", group = "Features"}, { message = "^fix", group = "Bug Fixes"}, { message = "^docs", group = "Documentation"}, { message = "^perf", group = "Performance"}, { message = "^refactor", group = "Refactor"}, { message = "^typings", group = "Typings"}, { message = "^types", group = "Typings"}, { message = ".*deprecated", body = ".*deprecated", group = "Deprecation"}, { message = "^revert", skip = true}, { message = "^style", group = "Styling"}, { message = "^test", group = "Testing"}, { message = "^chore", skip = true}, { message = "^ci", skip = true}, { message = "^build", skip = true}, { body = ".*security", group = "Security"}, ] filter_commits = true tag_pattern = "[0-9]*" skip_tags = "v[0-9]*|11|12" ignore_tags = "" topo_order = false sort_commits = "newest"