123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- # configuration file for git-cliff
- [changelog]
- # changelog header
- header = """
- # Changelog\n
- For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim).\n
- Following is a list of fixes/features commits.\n
- """
- # template for the changelog body
- # https://github.com/Keats/tera
- # https://keats.github.io/tera/docs/
- 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 | upper_first }}
- --------------------------------------------------------------------------------
- {% for commit in commits | sort(attribute="message")%}\
- {% if not commit.scope %}\
- - {{ commit.id | truncate(length=12, end="") }} {{ commit.message }}
- {% endif %}\
- {% endfor %}\
- {% for group, commits in commits | group_by(attribute="scope") %}\
- {% for commit in commits | sort(attribute="message") %}\
- - {{ commit.id | truncate(length=12, end="") }} {{commit.scope}}: {{ commit.message }}
- {% endfor %}\
- {% endfor %}
- {% endfor %}\n
- """
- # remove the leading and trailing whitespace from the template
- trim = true
- [git]
- # parse the commits based on https://www.conventionalcommits.org
- conventional_commits = true
- # filter out the commits that are not conventional
- filter_unconventional = true
- # process each line of a commit as an individual commit
- split_commits = false
- # regex for preprocessing the commit messages
- commit_preprocessors = [
- # { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/neovim/neovim/issues/${2}))"},
- ]
- # regex for parsing and grouping commits
- commit_parsers = [
- { message = "!:", group = "<!-- 0 -->BREAKING"},
- { message = "^feat", group = "<!-- 1 -->FEATURES"},
- { message = "^fix", group = "<!-- 2 -->FIXES"},
- { message = "^perf", group = "<!-- 3 -->PERFORMANCE"},
- { message = "^build", group = "<!-- 4 -->BUILD"},
- { message = "^vim-patch", group = "<!-- 5 -->VIM PATCHES"},
- { message = "^refactor", group = "<!-- 6 -->REFACTOR" },
- { message = "^ci", group = "<!-- 8 -->CI" },
- { message = "^test", group = "<!-- 9 -->TESTING" },
- { message = "^docs", group = "<!-- 99 -->DOCUMENTATION" },
- { message = "^revert", group = "<!-- 999 -->REVERTED CHANGES" },
- { message = ".*", group = "<!-- 9999 -->OTHER"},
- ]
- # filter out the commits that are not matched by commit parsers
- filter_commits = true
- # glob pattern for matching git tags
- tag_pattern = "v[0-9]*"
- # regex for skipping tags
- skip_tags = "v0.1.0-beta.1"
- # regex for ignoring tags
- ignore_tags = ""
- # sort the tags chronologically
- date_order = false
- # sort the commits inside sections by oldest/newest order
- sort_commits = "oldest"
|