Skip to content

Commit 976ecdd

Browse files
chore(changelog): add git-cliff config for Conventional-Commit changelog
1 parent 186d370 commit 976ecdd

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

cliff.toml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# git-cliff changelog config — builds CHANGELOG.md from Conventional Commits.
2+
# Uniform across every DIG repo (Rust + JS/TS). Consumed by .github/workflows/release.yml,
3+
# which regenerates the changelog on merge and commits it BEFORE tagging (so the changelog
4+
# is included in the vX.Y.Z tag). See CLAUDE.md §3.6.
5+
[changelog]
6+
header = """
7+
# Changelog
8+
9+
All notable changes to this project are documented here.
10+
This project adheres to [Semantic Versioning](https://semver.org) and
11+
[Conventional Commits](https://www.conventionalcommits.org).\n
12+
"""
13+
body = """
14+
{% if version %}\
15+
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
16+
{% else %}\
17+
## [Unreleased]
18+
{% endif %}\
19+
{% for group, commits in commits | group_by(attribute="group") %}
20+
### {{ group | striptags | trim | upper_first }}
21+
{% for commit in commits %}\
22+
- {% if commit.scope %}**{{ commit.scope }}:** {% endif %}{{ commit.message | upper_first }}\
23+
{% endfor %}
24+
{% endfor %}\n
25+
"""
26+
trim = true
27+
footer = ""
28+
29+
[git]
30+
conventional_commits = true
31+
filter_unconventional = true
32+
split_commits = false
33+
protect_breaking_commits = true
34+
filter_commits = false
35+
tag_pattern = "v[0-9]*"
36+
topo_order = false
37+
sort_commits = "oldest"
38+
commit_parsers = [
39+
{ message = "^feat", group = "<!-- 0 -->Features" },
40+
{ message = "^fix", group = "<!-- 1 -->Bug Fixes" },
41+
{ message = "^perf", group = "<!-- 2 -->Performance" },
42+
{ message = "^refactor", group = "<!-- 3 -->Refactor" },
43+
{ message = "^docs", group = "<!-- 4 -->Documentation" },
44+
{ message = "^test", group = "<!-- 5 -->Testing" },
45+
{ message = "^build", group = "<!-- 6 -->Build" },
46+
{ message = "^ci", group = "<!-- 7 -->CI" },
47+
{ message = "^style", group = "<!-- 8 -->Styling" },
48+
{ message = "^chore\\(release\\)", skip = true },
49+
{ message = "^chore", group = "<!-- 9 -->Chores" },
50+
{ body = ".*security", group = "<!-- 10 -->Security" },
51+
{ message = "^revert", group = "<!-- 11 -->Reverts" },
52+
]

0 commit comments

Comments
 (0)