docs(changelog): update cliff config and regenerate changelog

merge commit filtering, deduplication, granular chore parsing, and regenerate CHANGELOG.md using git-cliff.
This commit is contained in:
Andy
2026-02-07 18:46:43 -07:00
parent 62aa85c666
commit 6f3aafebc5
2 changed files with 397 additions and 698 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
# git-cliff ~ default configuration file # git-cliff ~ configuration file
# https://git-cliff.org/docs/configuration # https://git-cliff.org/docs/configuration
[changelog] [changelog]
@@ -8,8 +8,7 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Versions [3.0.0] and older use a format based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), This changelog is automatically generated using [git-cliff](https://git-cliff.org).\n
but versions thereafter use a custom changelog format using [git-cliff](https://git-cliff.org).\n
""" """
body = """ body = """
{% if version -%} {% if version -%}
@@ -17,9 +16,11 @@ body = """
{% else -%} {% else -%}
## [Unreleased] ## [Unreleased]
{% endif -%} {% endif -%}
{% for group, commits in commits | group_by(attribute="group") %} {% for group, commits in commits
| filter(attribute="merge_commit", value=false)
| group_by(attribute="group") %}
### {{ group | striptags | trim | upper_first }} ### {{ group | striptags | trim | upper_first }}
{% for commit in commits %} {% for commit in commits | unique(attribute="message") %}
- {% if commit.scope %}*{{ commit.scope }}*: {% endif %}\ - {% if commit.scope %}*{{ commit.scope }}*: {% endif %}\
{% if commit.breaking %}[**breaking**] {% endif %}\ {% if commit.breaking %}[**breaking**] {% endif %}\
{{ commit.message | upper_first }}\ {{ commit.message | upper_first }}\
@@ -38,34 +39,39 @@ footer = """
[unreleased]: https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}\ [unreleased]: https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}\
/compare/{{ release.previous.version }}..HEAD /compare/{{ release.previous.version }}..HEAD
{% endif -%} {% endif -%}
{% endfor %} {% endfor -%}
""" """
trim = true trim = true
postprocessors = [ postprocessors = []
# { pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL
]
[git] [git]
conventional_commits = true conventional_commits = true
filter_unconventional = true filter_unconventional = true
split_commits = false split_commits = false
commit_preprocessors = [] commit_preprocessors = [
# Strip emoji (both UTF-8 and :shortcode: styles) from commit messages
{ pattern = ' *(:\w+:|[\p{Emoji_Presentation}\p{Extended_Pictographic}]\x{FE0F}?\x{200D}?) *', replace = "" },
# Remove trailing PR/issue numbers like (#123) from commit messages
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "" },
]
commit_parsers = [ commit_parsers = [
{ message = "^feat", group = "<!-- 0 -->Features" }, { message = "^feat", group = "<!-- 0 -->Features" },
{ message = "^fix|revert", group = "<!-- 1 -->Bug Fixes" }, { message = "^fix", group = "<!-- 1 -->Bug Fixes" },
{ message = "^docs", group = "<!-- 2 -->Documentation" }, { message = "^revert", group = "<!-- 2 -->Reverts" },
{ message = "^style", skip = true }, { message = "^docs", group = "<!-- 3 -->Documentation" },
{ message = "^refactor", group = "<!-- 3 -->Changes" },
{ message = "^perf", group = "<!-- 4 -->Performance Improvements" }, { message = "^perf", group = "<!-- 4 -->Performance Improvements" },
{ message = "^refactor", group = "<!-- 5 -->Changes" },
{ message = "^style", skip = true },
{ message = "^test", skip = true }, { message = "^test", skip = true },
{ message = "^build", group = "<!-- 5 -->Builds" }, { message = "^chore\\(release\\)", skip = true },
{ message = "^chore\\(deps.*\\)", skip = true },
{ message = "^chore\\(pr\\)", skip = true },
{ message = "^chore", group = "<!-- 6 -->Maintenance" },
{ message = "^ci", skip = true }, { message = "^ci", skip = true },
{ message = "^chore", skip = true }, { message = "^build", group = "<!-- 7 -->Builds" },
{ body = ".*security", group = "<!-- 8 -->Security" },
] ]
protect_breaking_commits = false protect_breaking_commits = true
filter_commits = false filter_commits = true
# tag_pattern = "v[0-9].*"
# skip_tags = ""
# ignore_tags = ""
topo_order = false topo_order = false
sort_commits = "oldest" sort_commits = "oldest"