feedr 0.5.0

Feedr is a feature-rich terminal-based RSS/Atom feed reader written in Rust.
Documentation
# Configuration file for git-cliff
# See: https://git-cliff.org/docs/configuration

[changelog]
# Changelog header
header = """
# Changelog

"""

# Template for the changelog body
body = """
{%- macro remote_url() -%}
  https://github.com/bahdotsh/feedr
{%- endmacro -%}

{% if version %}\
    {% if previous.version %}\
        ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
    {% else %}\
        ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
    {% endif %}\
{% else %}\
    ## [Unreleased]
{% endif %}\

{% for group, commits in commits | group_by(attribute="group") %}
    ### {{ group | striptags | trim | upper_first }}
    {% for commit in commits
    | filter(attribute="scope")
    | sort(attribute="scope") %}
        - **({{commit.scope}})**: {{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }}))
        {%- if commit.breaking %}
        {% raw %}  {% endraw %}- **BREAKING**: {{ commit.breaking_description }}
        {%- endif -%}
    {%- endfor %}
    {% for commit in commits %}
        {%- if not commit.scope -%}
        - {{ commit.message | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}]({{ self::remote_url() }}/commit/{{ commit.id }}))
        {% if commit.breaking -%}
        {% raw %}  {% endraw %}- **BREAKING**: {{ commit.breaking_description }}
        {% endif -%}
        {%- endif -%}
    {%- endfor -%}
    {% raw %}

{% endraw %}\
{% endfor %}\
"""

# Template for the changelog footer
footer = """
<!-- generated by git-cliff -->
"""

# Remove the leading and trailing whitespace from the template
trim = true

[git]
# Parse the commits based on https://www.conventionalcommits.org
conventional_commits = true
# Filter out 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 with links
    { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/bahdotsh/feedr/issues/${2}))"},
    # Clean up commit messages
    { pattern = '^\s*\n', replace = "" },
]
# Regex for parsing and grouping commits
commit_parsers = [
    { message = "^feat", group = "<!-- 0 -->๐Ÿš€ Features" },
    { message = "^fix", group = "<!-- 1 -->๐Ÿ› Bug Fixes" },
    { message = "^doc", group = "<!-- 3 -->๐Ÿ“š Documentation" },
    { message = "^perf", group = "<!-- 4 -->โšก Performance" },
    { message = "^refactor", group = "<!-- 2 -->๐Ÿšœ Refactor" },
    { message = "^style", group = "<!-- 5 -->๐ŸŽจ Styling" },
    { message = "^test", group = "<!-- 6 -->๐Ÿงช Testing" },
    { message = "^chore\\(release\\): prepare for", skip = true },
    { message = "^chore\\(deps.*\\)", skip = true },
    { message = "^chore\\(pr\\)", skip = true },
    { message = "^chore\\(pull\\)", skip = true },
    { message = "^chore|^ci", group = "<!-- 7 -->โš™๏ธ Miscellaneous Tasks" },
    { message = "^deps", group = "<!-- 8 -->๐Ÿ“ฆ Dependencies" },
    { message = "^build", group = "<!-- 9 -->๐Ÿ—๏ธ Build System" },
    { message = "^revert", group = "<!-- 10 -->โ—€๏ธ Revert" },
    # Custom groups for feedr
    { message = "^feed", group = "<!-- 0 -->๐Ÿš€ Features" },
    { message = "^ui", group = "<!-- 1 -->๐ŸŽจ User Interface" },
    { message = "^filter", group = "<!-- 0 -->๐Ÿš€ Features" },
    { message = "^category", group = "<!-- 0 -->๐Ÿš€ Features" },
    { message = "^search", group = "<!-- 0 -->๐Ÿš€ Features" },
    # Catch-all for other commits
    { body = ".*security", group = "<!-- 1 -->๐Ÿ”’ Security" },
    { message = ".*", group = "<!-- 7 -->โš™๏ธ Miscellaneous Tasks" },
]
# 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 = "v0.1.0-beta.1"
# 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