Skip to content

Conversation

@sandr01d
Copy link
Collaborator

@sandr01d sandr01d commented Dec 30, 2025

Check list

  • I have performed a self-review of my code
  • I have commented my code in hard-to-understand areas
  • I have added unit tests for my code
  • I have made corresponding changes to the documentation

Description

As discussed in #479, we'd like to use conventional commits for this project going forward. To help with this, this PR

  1. Adds a CI job to validate commit messages of PRs using commitlint.
  2. Modifies the release job to generate a richer changelog using git-cliff.

I'm using both of these tools in my dayjob, so I'm already familiar with them.

commitlint seems to be the goto solution for linting against conventional commits and from my research seems to be pretty much the only option. The downside of commitlint is that it is only available through npm, which means we have to first install npm and then commitlint in the workflow - which is a bit slow. I tried using the setup-node action, as outlined in commitlints docs, but this action seems to assume a Node.js based project and complains about the missing package-lock.json.

I decided to go with git-cliff, because I've had a very good experience using it and because I know it to be very flexible. Another big plus IMO, is that it can also be installed locally, which makes testing/troubleshooting a lot easier. I've created a release on my fork, so you can get an impression about how the changelog would look like. Ignore that most changes are currently listed under "Other". This is only the case because those commits do not follow conventional commits yet.

Type of change

  • Bug fix
  • New feature
  • Refactor
  • Breaking change
  • Test
  • Documentation change
  • CI

Test environment

  • Shell
    • bash
    • zsh
    • fish
  • OS
    • Linux
    • Mac OS X
    • Windows
    • Others:

@sandr01d sandr01d self-assigned this Dec 30, 2025
@sandr01d sandr01d force-pushed the conventional-commits branch 4 times, most recently from 8fc2a49 to ec7684f Compare December 30, 2025 20:34
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.

1 participant