|
@@ -0,0 +1,95 @@
|
|
|
+# 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 = "^:sparkles:", group = "<!-- 0 -->✨️ Features" },
|
|
|
+ { message = "^Feature", group = "<!-- 0 -->✨️ Features" },
|
|
|
+ { message = "^:bug:", group = "<!-- 1 -->🐛 Bug Fixes" },
|
|
|
+ { message = ":memo:", group = "<!-- 3 -->📚 Documentation" },
|
|
|
+ { message = "^:zap:", group = "<!-- 4 -->⚡️ Performance" },
|
|
|
+ { message = "^:art:", group = "<!-- 5 -->🎨 Styling" },
|
|
|
+ { message = "^:construction_worker:", group = "<!-- 6 -->👷 CI/CD" },
|
|
|
+ { message = "^:recycle:", group = "<!-- 7 -->♻️ Refactor" },
|
|
|
+]
|
|
|
+# 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"
|