From cdb2df69c72728cf41999f10ae9d944720b41022 Mon Sep 17 00:00:00 2001 From: Kyle Simpson Date: Thu, 29 Feb 2024 22:39:22 +0000 Subject: [PATCH] Chore: Initial git-cliff config A little hacked together, but it is close enough to our primary format. Will still require manual sorting of commits by function since we're not doing conventional commits, but its lower friction for filling out github usernames etc. --- cliff.toml | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 cliff.toml diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 0000000..06bde0f --- /dev/null +++ b/cliff.toml @@ -0,0 +1,77 @@ +# git-cliff ~ configuration file +# https://git-cliff.org/docs/configuration + +[changelog] +# template for the changelog body +# https://keats.github.io/tera/docs/#introduction +body = """ +{% if version %}\ + {%- set versionlink = version -%} +{% else %}\ + {%- set versionlink = "unreleased" -%} +{% endif %}\ +## [{{ versionlink }}] — {{ timestamp | date(format="%Y-%m-%d") }} + +### Changed +{% for commit in commits %} + - {{ commit.message | split(pat="\n") | first | upper_first | trim }} \ + {% if commit.github.username %}([@{{ commit.github.username }}]){% raw %} {% endraw %}{%- endif -%} \ + [c:{{ commit.id | truncate(length=7, end="") }}] +{%- endfor -%} + +{%- macro remote_url() -%} + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} +{%- endmacro -%} + +{% raw %}\n{% endraw %} + +[{{ versionlink }}]: {{ self::remote_url() }}/compare/{{ previous.version }}...{{ versionlink }} + +\ +{% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} + [@{{ contributor.username }}]: https://github.com/{{ contributor.username }} +{%- endfor -%}\ +{% raw %}\n{% endraw %} + +\ +{% for commit in commits %} + [c:{{ commit.id | truncate(length=7, end="") }}]: {{ self::remote_url() }}/commit/{{ commit.id }} +{%- endfor -%} +{% raw %}\n{% endraw %} + +""" +# remove the leading and trailing whitespace from the template +trim = true +# changelog footer +footer = """ + +""" +# postprocessors +postprocessors = [] + +[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 = [ + # remove issue numbers from commits + { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "" }, +] +# 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 = false +# 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"