Skip to main content

What's new in 2.7.0? πŸ†•

Β· 5 min read
Orhun ParmaksΔ±z
Author of git-cliff

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.


πŸ₯‹ Jujutsu Support​

git-cliff now supports opening a repository that has been cloned using Jujutsu!

For example:

$ jj git clone --colocate https://github.com/orhun/git-cliff

$ cd git-cliff

$ git cliff # works!
caution

This works differently with colocated and non-colocated repositories. See the documentation for more information.

tip

Watch my first live reaction to Jujutsu on this stream: Learning Jujutsu (a version control system)


☘️ Add missing fields to context​

A bug causing some fields such as footer to be missing in the context JSON has been fixed.

This means that the following command now yields an identical result with git-cliff:

# hey look, a snake eating its own tail! 🐍
git cliff --context | git cliff --from-context

πŸ“© Raw message in context​

The context now contains the raw/unprocessed full commit message in the raw_message field. For example:

{
"version": "v0.1.0-rc.21",
"message": "The annotated tag message for the release",
"commits": [
{
"raw_message": "<type>[scope]: <description>\n[body]\n[footer(s)]"
}
]
}

You can use it like so:

{% for commit in commits %}
{{ commit.raw_message }}
{% endfor %}

βš™οΈ Remote API URL configuration​

In addition to the command-line/environment variables, you can now override the remote API URL in the configuration file as follows:

[remote.gitlab]
owner = "archlinux"
repo = "arch-repro-status"
api_url = "https://gitlab.archlinux.org/api/v4" # new!

This is useful when you have a self-hosted Git service and want to use the API for fetching metadata.

See the remote configuration for more information.


✨ Preserve first time contributors​

There was a bug causing the first time contributors to be removed from the changelog when there was a new release. This has been fixed and now the first time contributors are preserved in the changelog.

So if you run git cliff now, you might get new names in the changelog! Don't be surprised.

See this pull request for more details.


πŸ‹ ARM Docker images​

We brought back the Docker images for ARM64! πŸŽ‰ See them here.

docker run --platform linux/arm64 -t -v "$(pwd)":/app/ "orhunp/git-cliff:${TAG:-latest}"

There was a problem building these images due to the timeouts in the GitHub Actions workflow. This turned out to be a problem related to needlessly fetching the Rust toolchain in the build step of cargo-chef and is now fixed in this pull request.

See the related discussion here.


❄️ Nix environment​

We now have a basic and reproducible dev environment using Nix along with CI checks for it.

Here is the Nix flake and you can use it by running nix build and nix run commands.


🎨 Colored help​

A small cosmetic change, but the output of git cliff --help is now colorful!

Try it for yourself :)


πŸ’– User testimonials​

Do you like git-cliff? Spread the word on social media and let me know your thoughts! I will be featuring your testimonials.

I collected the testimonials that I could find so far and added them to the website. It picks one randomly on each page load.

Shoutout to those amazing people!


πŸš€ Stabilize remote integration​

The remote integration with GitHub/GitLab/Gitea/Bitbucket has been stabilized and now works as expected (apart from a couple of bugs that come and go occasionally).


🧰 Other​

  • (log) Add trace log about which command is being run - (a9b2690)
  • (bitbucket) Match PR and release metadata correctly (#907) - (e936ed5)
  • (changelog) Include the root commit when --latest is used with one tag (#901) - (508a97e)
  • (config) Add the 'other' parser to the default config - (12cb1df)
  • (git) Improve docs for commit_preprocessors and commit_parsers (#928) - (c1f1215)

Contributions πŸ‘₯​

  • @pauliyobo made their first contribution in #896
  • @blackheaven made their first contribution in #939
  • @Muhammad-Owais-Warsi made their first contribution in #928
  • @kemitix made their first contribution in #930
  • @mcwarman made their first contribution in #925
  • @LtdSauce made their first contribution in #919
  • @dqkqd made their first contribution in #920
  • @gsquire made their first contribution in #909
  • @rarescosma made their first contribution in #901
  • @vsn4ik made their first contribution in #894

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! ⛰️