wb-cache 0.1.0

Your L1 in-app write-behind cache for various kinds of backends.
Documentation
# 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]
    body = """
{% if version %}\
    ## [{{ version }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
    ## [unreleased]
{% endif %}\
{% if message %}
### Release Notes

{{message}}
{% 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 }}\
            {% for footer in commit.footers %}\
                {% set footer_token = footer.token | lower %}\
                {% if footer_token == "annotate" or footer_token == "annotation" %}\n

                    {{ footer.value | indent(prefix="    ", first=true) }}
                {% endif %}\
            {% endfor %} \
            {% for footer in commit.footers %}\
                {% if footer.breaking %}\n{{ "    - ⚠️  " }}{{ footer.value | indent(prefix="         ") }}{% endif %}\
            {% endfor %}\
    {% endfor %}
{% endfor %}\n
""" # template for the changelog body    # changelog header
    header = """
# Changelog\n
"""
    # https://keats.github.io/tera/docs/#introduction
    # 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 = "<!-- 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 = '^[mM]aint(\(.*\))?', group = "<!-- 7 --> Maintenance" },
        { message = "^chore\\(release\\): prepare for", skip = true },
        { message = "^chore\\(deps.*\\)", skip = true },
        { message = "^chore\\(pr\\)", skip = true },
        { message = "^chore\\(pull\\)", skip = true },
        { message = "^[Mm]inor: ", skip = true },
        { message = "^chore|^ci", group = "<!-- 7 -->️ Miscellaneous Tasks" },
        { body = ".*security", group = "<!-- 8 --> Security" },
        { message = "^revert", group = "<!-- 9 -->️ 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 = "(fieldx-|^)v[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