Skip to content

Commit

Permalink
feat: add cliff changelog support (#146)
Browse files Browse the repository at this point in the history
  • Loading branch information
mattsse committed Jun 17, 2024
1 parent 79774a6 commit 7afa93c
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 0 deletions.
52 changes: 52 additions & 0 deletions cliff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Configuration file for [`git-cliff`](https://github.com/orhun/git-cliff)
# See https://git-cliff.org/docs/configuration

[changelog]
header = """
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).\n
"""
# https://tera.netlify.app/docs/#introduction
body = """
{% if version %}\
## [{{ version | trim_start_matches(pat="v") }}](https://github.com/paradigmxyz/revm-inspectors/releases/tag/v{{ version | trim_start_matches(pat="v") }}) - {{ timestamp | date(format="%Y-%m-%d") }}
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | title }}
{% for commit in commits %}
- {% if commit.scope %}[{{ commit.scope }}] {% endif %}{{ commit.message | upper_first | split(pat="\\n") | first }}\
{% endfor %}
{% endfor %}\n
"""
trim = true
footer = "<!-- generated by git-cliff -->"

[git]
conventional_commits = true
filter_unconventional = false
commit_preprocessors = [
{ pattern = '#(\d+)', replace = "[#$1](https://github.com/paradigmxyz/revm-inspectors/issues/$1)" },
]
commit_parsers = [
{ message = "^[Ff]eat", group = "Features" },
{ message = "^[Ff]ix", group = "Bug Fixes" },
{ message = "^[Dd]oc", group = "Documentation" },
{ message = ".*\\b([Dd]eps|[Dd]ependencies|[Bb]ump)\\b", group = "Dependencies" },
{ message = "^[Pp]erf", group = "Performance" },
{ message = "^[Rr]efactor", group = "Refactor" },
{ message = ".*\\b([Ss]tyle|[Ff]mt|[Ff]ormat)\\b", group = "Styling" },
{ message = "^[Tt]est", group = "Testing" },
{ message = "^[Cc]hore", group = "Miscellaneous Tasks" },

{ message = ".*", group = "Other" },
]
protect_breaking_commits = false
filter_commits = false
tag_pattern = "v[0-9]*"
skip_tags = "beta|alpha"
ignore_tags = "rc"
sort_commits = "newest"
2 changes: 2 additions & 0 deletions release.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ sign-commit = true
sign-tag = true
shared-version = true
pre-release-commit-message = "chore: release {{version}}"
tag-prefix = "" # tag only once instead of per every crate
pre-release-hook = ["sh", "-c", "$WORKSPACE_ROOT/scripts/changelog.sh --tag {{version}}"]
12 changes: 12 additions & 0 deletions scripts/changelog.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
set -e -o pipefail

root=$(dirname "$(dirname "$0")")
cmd=(git cliff --workdir "$root" --output "$root/CHANGELOG.md" "$@")

if [ "$DRY_RUN" = "true" ]; then
echo "skipping due to dry run: ${cmd[*]}" >&2
exit 0
else
"${cmd[@]}"
fi

0 comments on commit 7afa93c

Please sign in to comment.