Skip to content

Commit

Permalink
docs: introduce git-cliff
Browse files Browse the repository at this point in the history
  • Loading branch information
azzamsa committed Jul 30, 2024
1 parent 3522787 commit f46c903
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .cliff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
[changelog]
# changelog header
header = """
# Changelog
All notable changes to this project will be documented in this file.
For previous changelog entries, see [_docs/CHANGELOG-OLD.md](_docs/CHANGELOG-OLD.md).
"""
# template for the changelog body
# https://tera.netlify.app/docs/#introduction
body = """
{% if version %}\
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | striptags | trim | upper_first }}
{% for commit in commits %}
{%- if commit.scope -%}
- **{{ commit.scope }}:** {{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/BiznetGIO/RESTKnot/commit/{{ commit.id }}))
{% if commit.breaking -%}
{% raw %} {% endraw %}- **BREAKING!** ⚠️ : {{ commit.breaking_description }}
{% endif -%}
{% if commit.body -%}
{% raw %}\n{% endraw %}{% raw %} {% endraw %}{{ commit.body | indent(width=4) }}{% raw %}\n{% endraw %}
{% endif -%}
{% else -%}
- {{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/BiznetGIO/RESTKnot/commit/{{ commit.id }}))
{% if commit.breaking -%}
{% raw %} {% endraw %}- **BREAKING!** ⚠️ : {{ commit.breaking_description }}
{% endif -%}
{% if commit.body -%}
{% raw %}\n{% endraw %}{% raw %} {% endraw %}{{ commit.body | indent(width=4) }}{% raw %}\n{% endraw %}
{% endif -%}
{% endif -%}
{% endfor -%}
{% raw %}\n{% endraw %}\
{% endfor %}\n
"""
# remove the leading and trailing whitespaces from the template
trim = true
# changelog footer
footer = """"""

[git]
# allow only conventional commits
# https://www.conventionalcommits.org
conventional_commits = true
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^feat", group = "<!-- 0 -->⛰️ Features" },
{ message = "^fix", group = "<!-- 1 -->🐛 Bug Fixes" },
{ message = "^refactor", group = "<!-- 2 -->🚜 Refactor" },
{ message = "^doc", group = "<!-- 3 -->📚 Documentation" },
{ message = "^perf", group = "<!-- 4 -->⚡ Performance" },
{ message = "^test", group = "<!-- 5 -->🧪 Testing" },
{ message = "^build", group = "<!-- 6 -->🏗️ Build" },
{ message = "^ci", group = "<!-- 7 -->🤖 CI" },
]
# glob pattern for matching git tags
tag_pattern = "v[0-9]*"
# sort the commits inside sections by oldest/newest order
sort_commits = "newest"
5 changes: 5 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,8 @@ fmt-check:
lint:
# Run `typos --write-changes` to fix the mistakes
typos

# Generate changelog
changelog-gen version:
git-cliff --config .cliff.toml --output CHANGELOG.md --tag {{ version }} v0.7.13..
just fmt

0 comments on commit f46c903

Please sign in to comment.