122 lines
4.6 KiB
TOML
122 lines
4.6 KiB
TOML
# configuration file for git-cliff (0.1.0)
|
|
|
|
[changelog]
|
|
# changelog header
|
|
header = """
|
|
# Yary Changelog\n
|
|
"""
|
|
# template for the changelog body
|
|
# https://tera.netlify.app/docs/#introduction
|
|
body = """
|
|
{%- set github = "https://github.com/dolysis/yary" -%}
|
|
{%- set has_breaking = commits | filter(attribute="breaking", value=true) | length > 0 -%}
|
|
{% if version %}\
|
|
## [{{ version }} - {{ timestamp | date(format="%Y-%m-%d") }}]({{ github ~ "/releases/tag/" ~ version }})
|
|
{% else %}\
|
|
## Unreleased
|
|
{% endif %}\
|
|
{% if previous %}\
|
|
{% if previous.commit_id %}
|
|
[{{ previous.version }}..{{ version | default(value="HEAD") }}]\
|
|
({{ github ~ "/compare/" ~ previous.commit_id ~ ".." ~ commit_id }})\
|
|
{% endif %}\
|
|
{% endif %}\
|
|
{% if has_breaking %}
|
|
### BREAKING CHANGES ({{ version | default(value="Unreleased") }})
|
|
{% for group, commits in commits | filter(attribute="breaking", value=true) | group_by(attribute="group") %}
|
|
#### {{ group | upper_first }}
|
|
{% for commit in commits %}
|
|
- {{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}]({{ github ~ "/commit/" ~ commit.id }}))\
|
|
{% if commit.scope %}{{ " <sup>" ~ commit.scope ~ "</sup>" | safe }}{% endif %}\
|
|
{% if commit.breaking_description != commit.message %}\
|
|
{{ "\n" }} > {{ commit.breaking_description | replace(from="\n", to=" ") }}\
|
|
{% endif %}\
|
|
{% endfor %}
|
|
{% endfor %}
|
|
{%- endif -%}
|
|
{% for group, commits in commits | filter(attribute="breaking", value=false) | group_by(attribute="group") %}
|
|
### {{ group | upper_first }}
|
|
{% for commit in commits %}
|
|
- {{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}]({{ github ~ "/commit/" ~ commit.id }}))\
|
|
{% if commit.scope %}{{ " <sup>" ~ commit.scope ~ "</sup>" | safe }}{% endif %}\
|
|
{% endfor %}
|
|
{% endfor %}\n
|
|
"""
|
|
# remove the leading and trailing whitespace from the template
|
|
trim = true
|
|
# changelog footer
|
|
footer = """
|
|
<!-- generated by git-cliff -->
|
|
"""
|
|
|
|
[git]
|
|
# parse the commits based on https://www.conventionalcommits.org
|
|
conventional_commits = true
|
|
# filter out the commits that are not conventional
|
|
filter_unconventional = false
|
|
# regex for parsing and grouping commits
|
|
commit_parsers = [
|
|
# CI/CD (.github/)
|
|
{ message = "^ci/", group = "CI/CD", default_scope = "ci" },
|
|
{ message = "^ci:", group = "CI/CD", default_scope = "ci" },
|
|
{ message = "^cd/", group = "CI/CD", default_scope = "cd" },
|
|
{ message = "^cd:", group = "CI/CD", default_scope = "cd" },
|
|
|
|
# Misc. repo tasks
|
|
{ message = "^chores?", group = "Chores" },
|
|
{ message = "^build", group = "Build" },
|
|
{ message = "^style", group = "Style" },
|
|
|
|
# Documentation (docs/)
|
|
{ message = "^doc", group = "Documentation" },
|
|
|
|
# src/event
|
|
{ message = "^lib/event", group = "Lib.Event" },
|
|
{ message = "^event/", group = "Lib.Event" },
|
|
{ message = "^event/parser", group = "Lib.Event", default_scope = "parser" },
|
|
|
|
# src/reader
|
|
{ message = "^lib/reader", group = "Lib.Reader" },
|
|
{ message = "^reader/", group = "Lib.Reader" },
|
|
{ message = "^reader:", group = "Lib.Reader" },
|
|
{ message = "^reader/borrow", default_scope = "borrow" },
|
|
{ message = "^reader/owned", default_scope = "owned" },
|
|
|
|
# src/scanner
|
|
{ message = "^lib/scanner", group = "Lib.Scanner" },
|
|
{ message = "^scanner/", group = "Lib.Scanner" },
|
|
{ message = "^scanner:", group = "Lib.Scanner" },
|
|
{ message = "^scalar/", group = "Lib.Scanner", default_scope = "scalar" },
|
|
{ message = "^scalar:", group = "Lib.Scanner", default_scope = "scalar" },
|
|
|
|
# src/token
|
|
{ message = "^lib/token", group = "Lib.Token" },
|
|
{ message = "^token/", group = "Lib.Token" },
|
|
{ message = "^token:", group = "Lib.Token" },
|
|
|
|
# src/error
|
|
{ message = "^lib/error", group = "Lib.Error" },
|
|
{ message = "^error/", group = "Lib.Error" },
|
|
|
|
# src/queue
|
|
{ message = "^lib/queue", group = "Lib.Queue" },
|
|
{ message = "^queue/", group = "Lib.Queue" },
|
|
|
|
# Catch alls, should be close to/at the bottom
|
|
{ message = "^lib", group = "Lib" },
|
|
{ message = "^[^/]+/error:", default_scope = "error" },
|
|
{ message = "^[^:]+: .*tests?.*", default_scope = "tests" },
|
|
]
|
|
# filter out the commits that are not matched by commit parsers
|
|
filter_commits = false
|
|
# glob pattern for matching git tags
|
|
tag_pattern = "v[0-9]*"
|
|
# regex for skipping tags
|
|
skip_tags = ""
|
|
# regex for ignoring tags
|
|
ignore_tags = '''v[0-9]\.[0-9]\.[0-9]-.*'''
|
|
# sort the tags chronologically
|
|
date_order = false
|
|
# sort the commits inside sections by oldest/newest order
|
|
sort_commits = "newest"
|