Update ChangeLog with narrative summary of post-0.100 changes

Add a hand-written "Version 0.101 (Unreleased)" section covering the
headless CLI export mode, PDF hyperlink cross-references, diagram
duplication, the Windows MSI versioning fix, the macOS file-open
regression fix, and expanded Korean translation support.

Add git-cliff config for changelog generation

Add cliff.toml, configured to group commits by keyword (fix/feat/
refactor/etc. in FR+EN) since the project history doesn't follow
Conventional Commits. Handles QET's tag format (X.Y / X.Y.Z, no v
prefix), excludes the floating "nightly" tag, dedupes repeated commit
messages per release, and truncates commit bodies to their summary
line to keep the generated changelog valid Markdown.

Usage:
export GITHUB_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxx
git-cliff --config cliff.toml <last_tag>..HEAD --prepend ChangeLog.md.
This commit is contained in:
Laurent Trinques
2026-07-04 11:09:49 +02:00
parent e19f523227
commit 3c8ba1b1ca
3 changed files with 1955 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
# Configuration for git-cliff, tuned to mimic github_changelog_generator's output style
# Doc: https://git-cliff.org/docs/configuration
[changelog]
header = """
# Changelog\n
All notable changes to QElectroTech are documented here.\n
"""
# Format proche de github_changelog_generator : titre de version avec lien de comparaison + date
body = """
{% if version %}\
## [{{ version }}]\
{%- if previous.version %}({{ previous.version }}...{{ version }}){% endif %} \
- {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [Unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | upper_first }}
{% for commit in commits | unique(attribute="message") %}
- {{ commit.message | trim | upper_first }} ([{{ commit.id | truncate(length=7, end="") }}](../../commit/{{ commit.id }}))\
{% endfor %}
{% endfor %}\n
"""
footer = ""
trim = true
[git]
conventional_commits = false
filter_unconventional = false
split_commits = false
protect_breaking_commits = false
filter_commits = false
tag_pattern = "^[0-9]+\\.[0-9]+(\\.[0-9]+)?$"
skip_tags = "nightly"
ignore_tags = "nightly"
topo_order = false
sort_commits = "newest"
# Ne garder que la première ligne du message (résumé), le corps détaillé
# est retiré ici plutôt qu'au moment de l'affichage, pour que la
# déduplication par message fonctionne correctement.
commit_preprocessors = [
{ pattern = "(?s)\n.*", replace = "" },
]
# Groupement par mots-clés (FR + EN), puisque l'historique QET
# ne suit pas Conventional Commits strictement.
commit_parsers = [
{ message = "^[Mm]erge", skip = true },
{ message = "^(?i)(fix|corrig|répar|bug)", group = "🐛 Bug Fixes" },
{ message = "^(?i)(feat|ajout|add|nouvelle|nouveau)", group = "🚀 Features" },
{ message = "^(?i)(doc|traduc|translation)", group = "📝 Documentation" },
{ message = "^(?i)(refactor|clean|nettoy|optimi)", group = "♻️ Refactoring / Cleanup" },
{ message = "^(?i)(element|librairie|library)", group = "📦 Elements / Libraries" },
{ message = ".*", group = "🔧 Other Changes" },
]
[remote.github]
owner = "qelectrotech"
repo = "qelectrotech-source-mirror"