Skip to content

feat: add cliff.toml as a template file for standardized CHANGELOG generation #911

@tschm

Description

@tschm

Summary

jquantstats has a well-structured cliff.toml configuration for git-cliff that drives CHANGELOG generation. rhiza should ship a generic cliff.toml template so downstream projects get consistent changelog formatting out of the box.

Current state in jquantstats

The cliff.toml provides:

  • Conventional commits parsing (feat, fix, doc, perf, refactor, style, chore, build, ci, test, revert)
  • GitHub issue/PR link injection via commit_preprocessors
  • Comparison links in the changelog footer
  • tag_pattern = "v[0-9].*" matching the rhiza release convention

Key structure:

[git]
conventional_commits = true
filter_unconventional = false

commit_parsers = [
  { message = "^feat", group = "New Features" },
  { message = "^fix", group = "Bug Fixes" },
  { message = "^doc|^docs", group = "Documentation" },
  { message = "^perf", group = "Performance" },
  { message = "^refactor|^style|^chore|^build|^ci|^test", group = "Maintenance" },
  { message = "^revert", group = "Reverts" },
  { message = ".*", group = "Other Changes" },
]

commit_preprocessors = [
  { pattern = "\\(#([0-9]+)\\)", replace = "([#${1}](https://github.com/OWNER/REPO/issues/${1}))" },
]

tag_pattern = "v[0-9].*"

Proposed change

Add a cliff.toml template to rhiza with placeholder variables for OWNER/REPO that get substituted during make sync (similar to how other template files handle project-specific values).

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions