From d9c8d0426a64777f89ea2d0798ba7beb0d67bf0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kat=20March=C3=A1n?= <kzm@zkat.tech>
Date: Wed, 15 Sep 2021 20:52:13 -0700
Subject: [PATCH] meta: add publishing bits

---
 .clog.toml    |  5 -----
 Makefile.toml | 11 +++++++++
 cliff.toml    | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 73 insertions(+), 5 deletions(-)
 delete mode 100644 .clog.toml
 create mode 100644 Makefile.toml
 create mode 100644 cliff.toml

diff --git a/.clog.toml b/.clog.toml
deleted file mode 100644
index f3501fc..0000000
--- a/.clog.toml
+++ /dev/null
@@ -1,5 +0,0 @@
-[clog]
-repository = "https://github.com/zkat/big-brain"
-subtitle = ""
-changelog = "CHANGELOG.md"
-from-latest-tag = true
diff --git a/Makefile.toml b/Makefile.toml
new file mode 100644
index 0000000..1b83b43
--- /dev/null
+++ b/Makefile.toml
@@ -0,0 +1,11 @@
+[tasks.changelog]
+workspace=false
+install_crate="git-cliff"
+command = "git-cliff"
+args = ["--prepend", "CHANGELOG.md", "-u", "--tag", "${@}"]
+
+[tasks.release]
+workspace=false
+install_crate="cargo-release"
+command = "cargo"
+args = ["release", "--workspace", "${@}"]
diff --git a/cliff.toml b/cliff.toml
new file mode 100644
index 0000000..bfd826c
--- /dev/null
+++ b/cliff.toml
@@ -0,0 +1,62 @@
+# configuration file for git-cliff (0.1.0)
+
+[changelog]
+# changelog header
+header = """
+# `big-brain` Release Changelog
+
+"""
+
+# template for the changelog body
+# https://tera.netlify.app/docs/#introduction
+body = """
+{% if version %}\
+<a name="{{ version }}"></a>
+## {{ version | replace(from="v", to="") }} ({{ timestamp | date(format="%Y-%m-%d") }})
+{% else %}\
+## Unreleased
+{% endif %}\
+{% for group, commits in commits | filter(attribute="scope") | group_by(attribute="group") %}
+### {{ group | upper_first }}
+{% for commit in commits %}
+{% if commit.scope %}\
+* **{{ commit.scope }}:** {{ commit.message }} ([{{ commit.id | truncate(length=8, end="") }}](https://github.com/zkat/big-brain/commit/{{ commit.id }}))
+{%- if commit.breaking %}
+    * **BREAKING CHANGE**: {{ commit.breaking_description }}
+{%- endif %}\
+{% endif %}\
+{% endfor %}
+{% endfor %}
+"""
+
+# remove the leading and trailing whitespace from the template
+trim = false
+
+# changelog footer
+# footer = """
+# <!-- generated by git-cliff -->
+# """
+
+[git]
+# allow only conventional commits
+# https://www.conventionalcommits.org
+conventional_commits = true
+# regex for parsing and grouping commits
+commit_parsers = [
+    { message = "^feat*", group = "Features"},
+    { message = "^fix*", group = "Bug Fixes"},
+    { message = "^doc*", group = "Documentation"},
+    { message = "^perf*", group = "Performance"},
+    { message = "^refactor*", group = "Refactor"},
+    { message = "^style*", group = "Styling"},
+    { message = "^test*", group = "Testing"},
+    { message = "^chore\\(release\\): prepare for*", skip = true},
+    { message = "^chore*", group = "Miscellaneous Tasks"},
+    { body = ".*security", group = "Security"},
+]
+# filter out the commits that are not matched by commit parsers
+filter_commits = true
+# glob pattern for matching git tags
+# tag_pattern = "v?[0-9]*"
+# regex for skipping tags
+# skip_tags = "v0.1.0-beta.1"
-- 
GitLab