Back to Git Cliff

What's new in 2.6.0?

website/blog/git-cliff-2.6.0.md

2.13.15.2 KB
Original Source
<center> <a href="https://github.com/orhun/git-cliff"> </a> </center>

git-cliff is a command-line tool (written in Rust) that provides a highly customizable way to generate changelogs from git history.

It supports using custom regular expressions to alter changelogs which are mostly based on conventional commits. With a single configuration file, a wide variety of formats can be applied for a changelog, thanks to the Jinja2/Django-inspired template engine.

More information and examples can be found in the GitHub repository.

What's new? ⛰️

The full changelog can be found here.


🛠️ Deprecated integration fields

The following fields are deprecated and will be removed in the next releases:

  • commit.github, commit.gitea, commit.gitlab, commit.bitbucket

You can now use the commit.remote field instead. For example:

diff
-{% if commit.github.username %}
+{% if commit.remote.username %}

🌲 Better branch support

If you have diverged branches for your project and want to changelog for each branch, you can now use the --use-branch-tags option.

bash
$ git cliff --use-branch-tags

The generated changelog above will only include the tags from the current branch.

Also, you can use it from the configuration file:

toml
[git]
use_branch_tags  = true

:::info

See the implementation for more explanation and the coolest hand-drawn diagram ever!

:::


♾️ Render always

Do you want to always render the changelog even if there are no changes? Boom, now you can now use the render_always option:

toml
[changelog]
render_always = true

📤 Output from configuration

This is pretty self-explanatory:

toml
[changelog]
output = "CHANGELOG.md"

This option does not take precedence over command-line arguments which means you can override it with the --output option.


📦 Improve Typescript API

We added the missing options and documented all options with tsdoc comments.

Also, we improved the skipCommit option to accept an array of values.

:::info

See the implementation for more information.

:::


✂️ Trim commit messages

We now remove the trailing newline for commits, which means you can use $ anchor in your regular expressions:

toml
[git]
commit_preprocessors = [
  # remove the issue number at the end of the commit message (e.g. #123)
  { pattern = ' #\d+$', replace = ""}
]

🌟 Better example templates

The example templates are now more intuitive and conventionally correct. We removed the non-beginner-friendly options and changed the defaults to be easier to start with. Weheee!


🧰 Other

  • (template) [breaking/core] Add name parameter to the constructor - (e577113)
  • (bump) Suppress template warning when --bumped-version is used (#855) - (8bebbf9)
  • (changelog) Do not change the tag date if tag already exists (#861) - (fbb643b)
  • (changelog) Correctly set the tag message for the latest release (#854) - (e41e8dd)
  • (changelog) Don't change the context when provided via --from-context (#820) - (ff72406)

Contributions 👥

  • @nejcgalof made their first contribution in #853
  • @pplmx made their first contribution in #824

Any contribution is highly appreciated! See the contribution guidelines for getting started.

Feel free to submit issues and join our Discord / Matrix for discussion!

Follow git-cliff on Twitter & Mastodon to not miss any news!

Support 🌟

If you liked git-cliff and/or my other projects on GitHub, consider donating to support my open source endeavors.

Have a fantastic day! ⛰️