[workspace]
changelog_update = true
git_release_enable = true
publish = true
publish_allow_dirty = false
pr_draft = true
[changelog]
protect_breaking_commits = true
tag_pattern = '^v[0-9]+\.[0-9]+\.[0-9]+$'
commit_preprocessors = [
{ pattern = '\s*\(#([0-9]+)\)$', replace = "" },
]
commit_parsers = [
{ message = '^(chore|fix)\(deps.*\)', skip = true },
{ group = "<!-- 00 -->๐ Features", message = "^feat" },
{ group = "<!-- 01 -->๐ Bug Fixes", message = "^fix" },
{ group = "<!-- 50 -->๐ Refactor", message = "^refactor" },
{ group = "<!-- 51 -->โก Performance", message = "^perf" },
{ group = "<!-- 52 -->๐จ Styling", message = "^style" },
{ group = "<!-- 60 -->๐ Documentation", message = "^docs?" },
{ group = "<!-- 80 -->๐งช Testing", message = "^test" },
{ group = "<!-- 98 -->โ๏ธ Revert", message = "^revert" },
{ group = "<!-- 99 -->โ๏ธ Miscellaneous Tasks", message = "(^chore|.*)" },
]
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.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
<!-- markdownlint-disable -->
"""
body = """
## [{{ version | trim_start_matches(pat="v") }}]{% if release_link %}({{ release_link }}){% endif %} - _{{ timestamp | date(format="%Y-%m-%d") }}_
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | striptags | trim | upper_first }}
{% for commit in commits -%}
- {% if commit.scope -%}_({{ commit.scope }})_ {% endif -%}
{% if commit.breaking %}[**breaking**] {% endif -%}
{{ commit.message | upper_first }}
{% endfor -%}
{% endfor %}
{% if github.contributors %}
### Contributors
{% for contributor in github.contributors %}
{% if not contributor.username or contributor.username is ending_with("[bot]") %}{% continue %}{% endif %}
- @{{ contributor.username }}
{% endfor -%}
{% endif -%}
"""