tale-ndjson 0.2.1

A tail-compatible tool for pretty-printing ndjson files, especially logs.
Documentation
# git-cliff configuration file
# See: https://git-cliff.org/docs/configuration

[changelog]
# changelog header VERY FUSSY.
header = """# Changelog

All notable changes to this project are	documented in this file.
We use [semantic versioning](https://semver.org/spec/v2.0.0.html).

"""
# template for the changelog body
# https://keats.github.io/tera/docs/#introduction
body = """
{% if version %}\
    ## [{{ version | trim_start_matches(pat="v") }}] - {{ 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 %}
        - {{ commit.message | upper_first }}\
    {% endfor %}
{% endfor %}\n
"""
# remove the leading and trailing whitespace from the templates
trim = true
# changelog footer
footer = ""

[git]
# parse the commits based on https://www.conventionalcommits.org
conventional_commits = false
# filter out the commits that are not conventional
filter_unconventional = false
# 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}](https://github.com/ceejbot/tale/issues/${2}))" },
	# Clean up version tags
	{ pattern = '^v([0-9])', replace = "Release v${1}" },
]
# regex for parsing and grouping commits
commit_parsers = [
	# Versioning and releases
	{ message = "^v[0-9]", group = "<!-- 0 -->๐Ÿš€ Release" },
	{ message = "^Release", group = "<!-- 0 -->๐Ÿš€ Release" },

	# Features and additions
	{ message = "^[Aa]dd", group = "<!-- 1 -->๐Ÿš€ Features" },
	{ message = "^[Ff]eat", group = "<!-- 1 -->๐Ÿš€ Features" },
	{ message = "^[Ii]mplement", group = "<!-- 1 -->๐Ÿš€ Features" },
	{ message = "^[Ee]nable", group = "<!-- 1 -->๐Ÿš€ Features" },
	{ message = "^[Ss]upport", group = "<!-- 1 -->๐Ÿš€ Features" },

	# Fixes and improvements
	{ message = "^[Ff]ix", group = "<!-- 2 -->๐Ÿ› Bug Fixes" },
	{ message = "^[Rr]epair", group = "<!-- 2 -->๐Ÿ› Bug Fixes" },
	{ message = "^[Rr]esolve", group = "<!-- 2 -->๐Ÿ› Bug Fixes" },
	{ message = "^[Cc]orrect", group = "<!-- 2 -->๐Ÿ› Bug Fixes" },

	# Performance and optimizations
	{ message = "^[Oo]ptimiz", group = "<!-- 3 -->โšก Performance" },
	{ message = "^[Pp]erf", group = "<!-- 3 -->โšก Performance" },
	{ message = "^[Ss]peed", group = "<!-- 3 -->โšก Performance" },
	{ message = "^[Ii]mprov.*performance", group = "<!-- 3 -->โšก Performance" },

	# Refactoring and code quality
	{ message = "^[Rr]efactor", group = "<!-- 4 -->โ™ป๏ธ Refactor" },
	{ message = "^[Cc]lean", group = "<!-- 4 -->โ™ป๏ธ Refactor" },
	{ message = "^[Rr]eorganiz", group = "<!-- 4 -->โ™ป๏ธ Refactor" },
	{ message = "^[Ss]implify", group = "<!-- 4 -->โ™ป๏ธ Refactor" },

	# Documentation
	{ message = "^[Dd]oc", group = "<!-- 5 -->๐Ÿ“š Documentation" },
	{ message = "^[Uu]pdate.*README", group = "<!-- 5 -->๐Ÿ“š Documentation" },
	{ message = "^README", group = "<!-- 5 -->๐Ÿ“š Documentation" },

	# Tests
	{ message = "^[Tt]est", group = "<!-- 6 -->๐Ÿงช Testing" },
	{ message = "^[Aa]dd.*test", group = "<!-- 6 -->๐Ÿงช Testing" },

	# Dependencies and tooling
	{ message = "^[Bb]ump", group = "<!-- 7 -->๐Ÿ“ฆ Dependencies" },
	{ message = "^[Uu]pdate.*dep", group = "<!-- 7 -->๐Ÿ“ฆ Dependencies" },
	{ message = "^[Aa]dd.*dep", group = "<!-- 7 -->๐Ÿ“ฆ Dependencies" },

	# Build and CI
	{ message = "^[Bb]uild", group = "<!-- 8 -->๐Ÿ—๏ธ Build" },
	{ message = "^[Cc][Ii]", group = "<!-- 8 -->๐Ÿ—๏ธ Build" },
	{ message = "^[Cc]argo", group = "<!-- 8 -->๐Ÿ—๏ธ Build" },

	# Clippy and formatting - usually minor
	{ message = "^[Cc]lippy", group = "<!-- 9 -->๐Ÿ”ง Misc" },
	{ message = "^[Ff]mt", group = "<!-- 9 -->๐Ÿ”ง Misc" },
	{ message = "^[Ff]ormat", group = "<!-- 9 -->๐Ÿ”ง Misc" },
	{ message = "is never satisfied", group = "<!-- 9 -->๐Ÿ”ง Misc" },

	# Everything else gets grouped as misc
	{ message = ".*", group = "<!-- 9 -->๐Ÿ”ง Misc" },
]
# 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 = ""
# 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