eff67332aa
ignore_tags drops rc-tagged commits from the final tag's section instead of folding them forward — a simulated v0.1.0 rendered zero commits. Excluding rc tags from tag_pattern makes finals span back to the last real tag (full history for v0.1.0, verified 8.8KB in a scratch clone) and rc tags render [Unreleased] with everything pending.
52 lines
1.7 KiB
TOML
52 lines
1.7 KiB
TOML
[changelog]
|
|
header = """
|
|
# Changelog\n
|
|
"""
|
|
body = """
|
|
{% if version %}\
|
|
## [{{ version }}] — {{ timestamp | date(format="%Y-%m-%d") }}
|
|
{% else %}\
|
|
## [Unreleased]
|
|
{% endif %}\
|
|
{% for group, commits in commits | group_by(attribute="group") %}
|
|
### {{ group | striptags | trim }}
|
|
{% for commit in commits %}
|
|
- {{ commit.message | split(pat="\n") | first | trim }}\
|
|
{% endfor %}
|
|
{% endfor %}\n
|
|
"""
|
|
trim = true
|
|
|
|
[git]
|
|
conventional_commits = true
|
|
filter_unconventional = true
|
|
split_commits = false
|
|
protect_breaking_commits = false
|
|
filter_commits = false
|
|
# Only final tags count as releases — rc rehearsal tags must not become
|
|
# section boundaries, or the final tag's notes would cover only
|
|
# commits-since-last-rc (v0.1.0 rendered 0 commits with ignore_tags, which
|
|
# drops rc-tagged commits instead of folding them forward). With rc tags
|
|
# outside the pattern, finals render the full span and rc tags render
|
|
# [Unreleased] with everything pending. Verified empirically on both.
|
|
tag_pattern = 'v[0-9]+\.[0-9]+\.[0-9]+$'
|
|
topo_order = false
|
|
sort_commits = "oldest"
|
|
|
|
commit_parsers = [
|
|
{ message = "^feat", group = "Added" },
|
|
{ message = "^fix", group = "Fixed" },
|
|
{ message = "^perf", group = "Changed" },
|
|
{ message = "^refactor", group = "Changed" },
|
|
{ message = "^security", group = "Security" },
|
|
{ body = ".*security", group = "Security" },
|
|
{ body = "BREAKING", group = "Breaking" },
|
|
{ footer = "BREAKING.CHANGE", group = "Breaking" },
|
|
{ message = "^docs", skip = true },
|
|
{ message = "^style", skip = true },
|
|
{ message = "^chore", skip = true },
|
|
{ message = "^ci", skip = true },
|
|
{ message = "^test", skip = true },
|
|
{ message = "^build", skip = true },
|
|
]
|