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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions