123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- # git-cliff ~ configuration file
- # https://git-cliff.org/docs/configuration
- #
- # Lines starting with "#" are comments.
- # Configuration options are organized into tables and keys.
- # See documentation for more information on available options.
- [changelog]
- # template for the changelog body
- # https://keats.github.io/tera/docs/#introduction
- body = """
- {%- macro remote_url() -%}
- https://github.com/magicblock-labs/bolt
- {%- endmacro -%}
- {% macro print_commit(commit) -%}
- {% if commit.message is matching("#") %} \
- - {{ commit.message | upper_first }} \
- {% endif %} \
- {% endmacro -%}
- {% 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
- | filter(attribute="scope")
- | unique(attribute="message")
- | sort(attribute="scope") %}
- {{ self::print_commit(commit=commit) }}
- {%- endfor -%}
- {% raw %}\n{% endraw %}\
- {%- for commit in commits %}
- {%- if not commit.scope -%}
- {{ self::print_commit(commit=commit) }}
- {% endif -%}
- {% endfor -%}
- {% endfor %}\n
- """
- # remove the leading and trailing whitespace from the templates
- trim = true
- # postprocessors
- postprocessors = [
- { pattern = '<REPO>', replace = "https://github.com/magicblock-labs/bolt" },
- { pattern = '\* :.*', replace = "" },
- { pattern = '\s*\n', replace = "\n" },
- { pattern = '\n.*(R|r)elease.*\n', replace = "" },
- { pattern = '### 🐛 Bug Fixes', replace = "\n### 🐛 Bug Fixes" },
- { pattern = '##', replace = "\n##" },
- { pattern = '- *(:\w+:|[\p{Emoji_Presentation}\p{Extended_Pictographic}](?:\u{FE0F})?\u{200D}?) *', replace = "- " },
- ]
- [git]
- # parse the commits based on https://www.conventionalcommits.org
- conventional_commits = false
- # 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 = [
- # # Check spelling of the commit with https://github.com/crate-ci/typos
- # # If the spelling is incorrect, it will be automatically fixed.
- # { pattern = '.*', replace_command = 'typos --write-changes -' },
- #]
- # regex for parsing and grouping commits
- commit_parsers = [
- { message = "^Feat", group = "<!-- 0 -->✨️ Features" },
- { message = "^✨", group = "<!-- 0 -->✨️ Features" },
- { message = "^:sparkles:", group = "<!-- 0 -->✨️ Features" },
- { message = "^Feature", group = "<!-- 0 -->✨️ Features" },
- { message = "^fix", group = "<!-- 1 -->🐛 Bug Fixes" },
- { message = "^🐛", group = "<!-- 1 -->🐛 Bug Fixes" },
- { message = "^:bug:", group = "<!-- 1 -->🐛 Bug Fixes" },
- { message = "^📚", group = "<!-- 3 -->📚 Documentation" },
- { message = "^:memo:", group = "<!-- 3 -->📚 Documentation" },
- { message = "^docs", group = "<!-- 3 -->📚 Documentation" },
- { message = "^⚡️", group = "<!-- 4 -->⚡️ Performance" },
- { message = "^:zap:", group = "<!-- 4 -->⚡️ Performance" },
- { message = "^perf", group = "<!-- 4 -->⚡️ Performance" },
- { message = "^🎨", group = "<!-- 5 -->🎨 Styling" },
- { message = "^:art:", group = "<!-- 5 -->🎨 Styling" },
- { message = "^style", group = "<!-- 5 -->🎨 Styling" },
- { message = "^♻️", group = "<!-- 7 -->♻️ Refactor" },
- { message = "^refactor", group = "<!-- 7 -->♻️ Refactor" },
- { message = "^:recycle:", group = "<!-- 7 -->♻️ Refactor" },
- { message = "^🧪", group = "<!-- 8 -->🧪 Testing" },
- { message = "^:test_tube:", group = "<!-- 8 -->🧪 Testing" },
- { message = "^test", group = "<!-- 8 -->🧪 Testing" },
- { message = "^👷", group = "<!-- 6 -->👷 CI/CD" },
- { message = "^:construction_worker:", group = "<!-- 6 -->👷 CI/CD" },
- { message = "^ci", group = "<!-- 6 -->👷 CI/CD" },
- { message = "^:wrench:", group = "<!-- 9 -->🔧 Maintenance" },
- { message = "^🔧", group = "<!-- 9 -->🔧 Maintenance" },
- { message = "^chore", group = "<!-- 9 -->🔧 Maintenance" }
- ]
- # protect breaking changes from being skipped due to matching a skipping commit_parser
- protect_breaking_commits = false
- # filter out the commits that are not matched by commit parsers
- filter_commits = true
- # regex for matching git tags
- tag_pattern = "v[0-9].*"
- # regex for skipping tags
- skip_tags = "beta|alpha"
- # regex for ignoring tags
- ignore_tags = "rc"
- # sort the tags topologically
- topo_order = false
- # sort the commits inside sections by oldest/newest order
- sort_commits = "newest"
|