| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| # git-cliff ~ default 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 footer |
| 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 |
| body = """ |
| {% if version %}\ |
| ## [{{ version | trim_start_matches(pat="release-") }}] - {{ 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 %} |
| - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ |
| {% if commit.breaking %}[**breaking**] {% endif %}\ |
| {{ commit.message | upper_first }}\ |
| {% if commit.github.username %} by @{{ commit.github.username }}{%- endif %}\ |
| {% endfor %} |
| {% endfor %} |
| ## New Contributors |
| {% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} |
| * @{{ contributor.username }} made their first contribution in #{{ contributor.pr_number }} |
| {% endfor %}\n |
| """ |
| # template for the changelog footer |
| footer = """ |
| <!-- generated by git-cliff --> |
| """ |
| # remove the leading and trailing s |
| trim = true |
| # postprocessors |
| postprocessors = [ |
| # { pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" }, # replace repository URL |
| ] |
| |
| [git] |
| # parse the commits based on https://www.conventionalcommits.org |
| conventional_commits = true |
| # 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 = [ |
| # Replace issue numbers |
| #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"}, |
| # 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 = "<!-- 00 -->๐ Features" }, |
| { message = "^fix", group = "<!-- 01 -->๐ Bug Fixes" }, |
| { message = "^doc", group = "<!-- 03 -->๐ Documentation" }, |
| { message = "^perf", group = "<!-- 04 -->โก Performance" }, |
| { message = "^refactor", group = "<!-- 02 -->๐ Refactor" }, |
| { message = "^style", group = "<!-- 05 -->๐จ Styling" }, |
| { message = "^test", group = "<!-- 07 -->๐งช Testing" }, |
| { message = "^chore\\(release\\): prepare for", skip = true }, |
| { message = "^chore\\(deps.*\\)", skip = true }, |
| { message = "^chore\\(pr\\)", skip = true }, |
| { message = "^chore\\(pull\\)", skip = true }, |
| { message = "^build: bump version", skip = true }, |
| { message = "^build\\(release\\): bump version", skip = true }, |
| { message = "^build", group = "<!-- 06 -->๐ ๏ธ Build" }, |
| { message = "^chore|^ci", group = "<!-- 08 -->โ๏ธ Miscellaneous Tasks" }, |
| { body = ".*security", group = "<!-- 09 -->๐ก๏ธ Security" }, |
| { message = "^revert", group = "<!-- 10 -->โ๏ธ Revert" }, |
| ] |
| # 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 = "^release-[0-9]+\\.[0-9]+\\.[0-9]+$" |
| # regex for skipping tags |
| # skip_tags = "" |
| # regex for ignoring tags |
| # ignore_tags = "" |
| # sort the tags topologically |
| topo_order = false |
| # sort the commits inside sections by oldest/newest order |
| sort_commits = "oldest" |
| # limit the number of commits included in the changelog. |
| # limit_commits = 42 |
| |
| [remote.github] |
| owner = "apache" |
| repo = "hudi-rs" |