neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

cliff.toml (2835B)


      1 # configuration file for git-cliff
      2 
      3 [changelog]
      4 # changelog header
      5 header = """
      6 # Changelog\n
      7 Following is a list of commits (fixes/features only) in this release.\n
      8 See `:help news` in Nvim for release notes.\n
      9 """
     10 # template for the changelog body
     11 # https://github.com/Keats/tera
     12 # https://keats.github.io/tera/docs/
     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 | upper_first }}
     21    --------------------------------------------------------------------------------
     22    {% for commit in commits | sort(attribute="message")%}\
     23        {% if not commit.scope %}\
     24            - {{ commit.id | truncate(length=12, end="") }} {{ commit.message }}
     25        {% endif %}\
     26    {% endfor %}\
     27    {% for group, commits in commits | group_by(attribute="scope") %}\
     28        {% for commit in commits | sort(attribute="message") %}\
     29            - {{ commit.id | truncate(length=12, end="") }} {{commit.scope}}: {{ commit.message }}
     30        {% endfor %}\
     31    {% endfor %}
     32 {% endfor %}\n
     33 """
     34 # remove the leading and trailing whitespace from the template
     35 trim = true
     36 
     37 [git]
     38 # parse the commits based on https://www.conventionalcommits.org
     39 conventional_commits = true
     40 # filter out the commits that are not conventional
     41 filter_unconventional = true
     42 # process each line of a commit as an individual commit
     43 split_commits = false
     44 # regex for preprocessing the commit messages
     45 commit_preprocessors = [
     46 #    { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/neovim/neovim/issues/${2}))"},
     47 ]
     48 # regex for parsing and grouping commits
     49 commit_parsers = [
     50    { message = "!:", group = "<!-- 0 -->BREAKING"},
     51    { message = "^feat", group = "<!-- 1 -->FEATURES"},
     52    { message = "^fix", group = "<!-- 2 -->FIXES"},
     53    { message = "^perf", group = "<!-- 3 -->PERFORMANCE"},
     54    { message = "^build", group = "<!-- 4 -->BUILD"},
     55    { message = "^vim-patch", group = "<!-- 5 -->VIM PATCHES"},
     56    { message = "^refactor", group = "<!-- 6 -->REFACTOR" },
     57    { message = "^ci", group = "<!-- 8 -->CI" },
     58    { message = "^test", group = "<!-- 9 -->TESTING" },
     59    { message = "^docs", group = "<!-- 99 -->DOCUMENTATION" },
     60    { message = "^revert", group = "<!-- 999 -->REVERTED CHANGES" },
     61    { message = ".*", group = "<!-- 9999 -->OTHER"},
     62 ]
     63 # filter out the commits that are not matched by commit parsers
     64 filter_commits = true
     65 # glob pattern for matching git tags
     66 tag_pattern = "v[0-9]*"
     67 # regex for skipping tags
     68 skip_tags = "v0.1.0-beta.1"
     69 # regex for ignoring tags
     70 ignore_tags = ""
     71 # sort the tags chronologically
     72 date_order = false
     73 # sort the commits inside sections by oldest/newest order
     74 sort_commits = "oldest"