diff --git a/cliff.toml b/cliff.toml index b8dedcf..206b387 100644 --- a/cliff.toml +++ b/cliff.toml @@ -1,18 +1,10 @@ -# git-cliff ~ default configuration file +# 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 header -header = """ -# Changelog\n -All notable changes to this project will be documented in this file.\n -""" -# template for the changelog body -# https://keats.github.io/tera/docs/#introduction +# A Tera template to be rendered for each release in the changelog. +# See https://keats.github.io/tera/docs/#introduction body = """ {% if version %}\ ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} @@ -26,17 +18,16 @@ body = """ {% if commit.breaking %}[**breaking**] {% endif %}\ {{ commit.message | upper_first }}\ {% endfor %} -{% endfor %}\n -""" -# template for the changelog footer -footer = """ - +{% endfor %} """ -# remove the leading and trailing s +# Remove leading and trailing whitespaces from the changelog's body. trim = true -# postprocessors +# Render body even when there are no releases to process. +render_always = true +# An array of regex based postprocessors to modify the changelog. postprocessors = [ - # { pattern = '', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL + # Replace the placeholder with a URL. + #{ pattern = '', replace = "https://github.com/orhun/git-cliff" }, ] # render body even when there are no releases to process # render_always = true @@ -44,21 +35,29 @@ postprocessors = [ # output = "test.md" [git] -# parse the commits based on https://www.conventionalcommits.org +# Parse commits according to the conventional commits specification. +# See https://www.conventionalcommits.org conventional_commits = true -# filter out the commits that are not conventional +# Exclude commits that do not match the conventional commits specification. filter_unconventional = true -# process each line of a commit as an individual commit +# Require all commits to be conventional. +# Takes precedence over filter_unconventional. +require_conventional = false +# Split commits on newlines, treating each line as an individual commit. split_commits = false -# regex for preprocessing the commit messages +# An array of regex based parsers to modify commit messages prior to further processing. commit_preprocessors = [ - # Replace issue numbers + # Replace issue numbers with link templates to be updated in `changelog.postprocessors`. #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/issues/${2}))"}, - # Check spelling of the commit with https://github.com/crate-ci/typos - # If the spelling is incorrect, it will be automatically fixed. + # Check spelling of the commit message using https://github.com/crate-ci/typos. + # If the spelling is incorrect, it will be fixed automatically. #{ pattern = '.*', replace_command = 'typos --write-changes -' }, ] -# regex for parsing and grouping commits +# Prevent commits that are breaking from being excluded by commit parsers. +protect_breaking_commits = false +# An array of regex based parsers for extracting data from the commit message. +# Assigns commits to groups. +# Optionally sets the commit's scope and can decide to exclude commits from further processing. commit_parsers = [ { message = "^feat", group = "๐Ÿš€ Features" }, { message = "^fix", group = "๐Ÿ› Bug Fixes" }, @@ -67,6 +66,7 @@ commit_parsers = [ { message = "^refactor", group = "๐Ÿšœ Refactor" }, { message = "^style", group = "๐ŸŽจ Styling" }, { message = "^test", group = "๐Ÿงช Testing" }, + { message = "^\\(.*\\)$", skip = true }, { message = "^chore\\(release\\): prepare for", skip = true }, { message = "^chore\\(deps.*\\)", skip = true }, { message = "^chore\\(pr\\)", skip = true }, @@ -75,13 +75,25 @@ commit_parsers = [ { message = "^chore: Update Elixir workflow", skip = true }, { message = "^chore: Update library configuration", skip = true }, { message = "^chore|^ci", group = "โš™๏ธ Miscellaneous Tasks" }, + { message = "^security", group = "๐Ÿ›ก๏ธ Security" }, { body = ".*security", group = "๐Ÿ›ก๏ธ Security" }, { message = "^revert", group = "โ—€๏ธ Revert" }, { message = ".*", group = "๐Ÿ’ผ Other" }, ] -# filter out the commits that are not matched by commit parsers +# Exclude commits that are not matched by any commit parser. filter_commits = false -# sort the tags topologically +# Fail on a commit that is not matched by any commit parser. +fail_on_unmatched_commit = false +# An array of link parsers for extracting external references, and turning them into URLs, using regex. +link_parsers = [] +# Include only the tags that belong to the current branch. +use_branch_tags = false +# Order releases topologically instead of chronologically. topo_order = false -# sort the commits inside sections by oldest/newest order +# Order commits topologically instead of chronologically. +topo_order_commits = true +# Order of commits in each group/release within the changelog. +# Allowed values: newest, oldest sort_commits = "oldest" +# Process submodules commits +recurse_submodules = false