From c69c163b34c1eb198f78e5c4b906960d3126cec5 Mon Sep 17 00:00:00 2001 From: Vitali Graf Date: Sat, 21 Mar 2026 16:02:05 +0100 Subject: [PATCH] =?UTF-8?q?Feat:=20Version-Bump-Skill=20hinzugef=C3=BCgt?= =?UTF-8?q?=20und=20installer.iss-Version=20synchronisiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit installer.iss hatte noch Version 0.1.0 statt 1.0.0. Neuer Skill fragt bei jedem Commit, ob die Programmversion aktualisiert werden soll. Co-Authored-By: Claude Opus 4.6 --- .claude/skills/version-bump/SKILL.md | 65 ++++++++++++++++++++++++++++ installer.iss | 2 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 .claude/skills/version-bump/SKILL.md diff --git a/.claude/skills/version-bump/SKILL.md b/.claude/skills/version-bump/SKILL.md new file mode 100644 index 0000000..9160f21 --- /dev/null +++ b/.claude/skills/version-bump/SKILL.md @@ -0,0 +1,65 @@ +--- +name: version-bump +description: "Versionsverwaltung für DocuMentor-Commits. Verwende diesen Skill IMMER wenn der Benutzer einen Git-Commit erstellen möchte, 'commit' erwähnt, oder nach /commit fragt. Der Skill fragt vor dem Commit, ob die Programmversion aktualisiert werden soll, und aktualisiert alle versionsbezogenen Dateien einheitlich." +--- + +# Version Bump Skill + +Dieser Skill stellt sicher, dass bei jedem Commit die Programmversion bewusst behandelt wird. Bevor der eigentliche Commit erstellt wird, wird der Benutzer gefragt, ob und wie die Version angepasst werden soll. + +## Warum das wichtig ist + +DocuMentor speichert die Version an mehreren Stellen gleichzeitig (pyproject.toml, Installer-Dateien, Lizenz-Footer). Wenn diese aus dem Takt geraten, entstehen inkonsistente Builds. Dieser Skill verhindert das, indem er alle Stellen auf einmal aktualisiert. + +## Ablauf + +### Schritt 1: Benutzer fragen + +Bevor du den Commit erstellst, frage den Benutzer mit dem AskUserQuestion-Tool: + +**Frage:** "Soll die Programmversion aktualisiert werden?" + +Optionen: +- **Patch (X.Y.Z+1)** — Bugfix, kleine Änderung +- **Minor (X.Y+1.0)** — Neues Feature, Erweiterung +- **Major (X+1.0.0)** — Breaking Change, großer Meilenstein +- **Nein, Version beibehalten** — Keine Versionsänderung + +Zeige dabei die aktuelle Version aus `pyproject.toml` in der Frage an. + +### Schritt 2: Version aktualisieren (falls gewünscht) + +Wenn der Benutzer eine Versionserhöhung wählt, aktualisiere **alle** folgenden Dateien einheitlich: + +1. **`pyproject.toml`** (Zeile 3) — Source of Truth + ``` + version = "X.Y.Z" + ``` + +2. **`DocuMentor.wxs`** (Zeile 7) — WiX Installer + ```xml + Version="X.Y.Z" + ``` + +3. **`installer.iss`** (Zeile 13) — Inno Setup + ``` + #define MyAppVersion "X.Y.Z" + ``` + +4. **`THIRD_PARTY_LICENSES.txt`** (letzte Zeile) — Lizenz-Footer + ``` + Erstellt für: DocuMentor vX.Y.Z + ``` + +Lies zuerst die aktuelle Version aus `pyproject.toml`, berechne die neue Version, und aktualisiere dann alle Dateien. + +### Schritt 3: Commit erstellen + +Nachdem die Versionsdateien aktualisiert wurden (oder der Benutzer "Nein" gewählt hat), erstelle den Commit ganz normal nach den üblichen Commit-Konventionen. Falls die Version geändert wurde, füge die geänderten Versionsdateien zum Commit hinzu. + +## Wichtige Hinweise + +- Die Version in `pyproject.toml` ist die Single Source of Truth +- `create_version_info.py` liest automatisch aus `pyproject.toml` — diese Datei muss nicht manuell angepasst werden +- `uv.lock` wird durch `uv sync` automatisch aktualisiert — nicht manuell ändern +- Wenn der Benutzer "Nein" wählt, einfach normal mit dem Commit fortfahren diff --git a/installer.iss b/installer.iss index e393320..6b326a7 100644 --- a/installer.iss +++ b/installer.iss @@ -10,7 +10,7 @@ ; Build-Befehl: iscc installer.iss #define MyAppName "DocuMentor" -#define MyAppVersion "0.1.0" +#define MyAppVersion "1.0.0" #define MyAppPublisher "Ihr Name/Organisation" #define MyAppURL "https://github.com/yourusername/xsl-validator" #define MyAppExeName "DocuMentor.exe"