Skip to content

feat: replace changelog generation with git-cliff#90

Merged
JnyJny merged 3 commits intomainfrom
feature/git-cliff-changelog
Mar 24, 2026
Merged

feat: replace changelog generation with git-cliff#90
JnyJny merged 3 commits intomainfrom
feature/git-cliff-changelog

Conversation

@JnyJny
Copy link
Copy Markdown
Owner

@JnyJny JnyJny commented Mar 15, 2026

Replace triple-stacked changelog generators with git-cliff in both the cookiecutter template and the repo itself.

Problem

Same issue as busylight-core#55: three overlapping changelog generators (BobAnkh, custom git log script, GitHub generateReleaseNotes) producing duplicate/messy output.

Template changes (what generated projects get)

  • cliff.toml with conventional commit parsing, GitHub links, noise filtering
  • git-cliff in dev dependencies
  • poe tasks: changelog and release-notes using git-cliff
  • Preflight checks: publish refuses to run from wrong branch or dirty tree
  • Release workflow: single git-cliff step replaces all three generators

Repo changes (cookiecutter itself)

  • Same git-cliff setup for the repo's own releases
  • Preflight checks on release tasks
  • Updated release.yaml workflow

Reference

Based on the pattern established in JnyJny/busylight-core#55.

Closes #89

Authored by Jny

JnyJny added 3 commits March 15, 2026 13:31
Replace triple-stacked changelog generators (BobAnkh, custom script,
GitHub generateReleaseNotes) with git-cliff in both the cookiecutter
template and the cookiecutter repo itself.

Changes to generated projects (template):
- Add cliff.toml with conventional commit parsing and GitHub links
- Add git-cliff to dev dependencies
- Replace poe changelog/release-notes tasks with git-cliff commands
- Add publish preflight checks (main branch + clean tree)
- Update release workflow to use git-cliff for release notes + CHANGELOG

Changes to cookiecutter repo:
- Same git-cliff setup for the repo's own releases
- Add preflight checks to release tasks

Closes #89

Authored by Jny
The cookiecutter template directory's cliff.toml contains git-cliff
Tera template syntax (self::remote_url(), trim_start_matches, etc.)
that conflicts with Jinja2 processing during project generation.

Wrap non-cookiecutter template expressions in {% raw %}...{% endraw %}
blocks so Jinja2 passes them through untouched while still expanding
cookiecutter.github_username and cookiecutter.package_name.

Authored by Jny
@JnyJny JnyJny merged commit 51176ff into main Mar 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add git-cliff for changelog generation

1 participant