]> juplo.de Git - demos/kafka/training/log
demos/kafka/training
13 days agoWIP
Kai Moritz [Fri, 12 Jun 2026 17:17:29 +0000 (19:17 +0200)]
WIP

13 days agochore: Vim-Swap-Dateien in .gitignore aufgenommen
Kai Moritz [Fri, 12 Jun 2026 17:13:26 +0000 (17:13 +0000)]
chore: Vim-Swap-Dateien in .gitignore aufgenommen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 days agoVersehentlich committete Swap-Datei entfernt
Kai Moritz [Fri, 12 Jun 2026 17:12:54 +0000 (17:12 +0000)]
Versehentlich committete Swap-Datei entfernt

13 days agorefactor: branches.sh in lib.sh konsolidiert; rebase.sh neu erstellt
Kai Moritz [Fri, 12 Jun 2026 17:12:40 +0000 (17:12 +0000)]
refactor: branches.sh in lib.sh konsolidiert; rebase.sh neu erstellt

lib.sh enthält jetzt direkt $BRANCHES und $BRANCH_ROOT (Bash-Assoziativarray
mit allen ROOT-Beziehungen). branches.sh entfällt. rebase.sh rebasiert alle
Branches nicht-interaktiv auf ihren jeweiligen ROOT aus $BRANCH_ROOT.
CLAUDE.md aktualisiert: Authoritäts-Statement, Skripttabelle, Hinweis zum
Hinzufügen neuer Branches und alle Referenzen auf branches.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 days agofix(push.sh): Backup-Tags nur anlegen, wenn mind. ein Remote-Stand ungetagged ist
Kai Moritz [Fri, 12 Jun 2026 16:59:52 +0000 (16:59 +0000)]
fix(push.sh): Backup-Tags nur anlegen, wenn mind. ein Remote-Stand ungetagged ist

Bisher wurde nur geprüft, ob Branches überschrieben werden (kein Fast-Forward)
und dabei ungetagged sind. Jetzt gilt: sind alle Remote-Stände bereits remote
getagged (einheitlich oder nicht), werden keine TIMESTAMP-Backup-Tags angelegt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 days agodocs(CLAUDE.md): push.sh-Beschreibung und Session-Tagging-Schema aktualisiert
Kai Moritz [Fri, 12 Jun 2026 16:56:22 +0000 (16:56 +0000)]
docs(CLAUDE.md): push.sh-Beschreibung und Session-Tagging-Schema aktualisiert

push.sh-Eintrag in der Skripttabelle beschreibt jetzt --tag und --force.
Session-Tagging: manuellen Loop am Sitzungsende durch ./push.sh --tag claude-N --force ersetzt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 days agofeat(push.sh): --tag und --force für explizites Tagging beim Push
Kai Moritz [Fri, 12 Jun 2026 16:54:20 +0000 (16:54 +0000)]
feat(push.sh): --tag und --force für explizites Tagging beim Push

Neu: --tag <suffix> erstellt <branch>--<suffix> für alle Branches
und pusht die Tags nach den Branches. Mit --force werden bestehende
Tags lokal (-f) und remote (--force) überschrieben.

Die bisherige automatische Suche nach gemeinsamen lokalen Tags und
deren Push entfällt. Das Backup-Tagging für überschriebene Remote-
Stände (TIMESTAMP) bleibt unverändert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 days agorefactor: $BRANCHES enthält direkt Branch-Namen statt Variablennamen
Kai Moritz [Fri, 12 Jun 2026 16:46:47 +0000 (16:46 +0000)]
refactor: $BRANCHES enthält direkt Branch-Namen statt Variablennamen

Die Indirektionsebene (Variablenname → Wert über declare -n) wird
entfernt. branches.sh definiert nur noch $BRANCHES mit direkten
Branch-Namen; grundlagen/docker ist jetzt darin enthalten.
lib.sh und copy.sh brauchen keine Namensauflösung mehr.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 days agoNeuer Branch `springkafka/spring-consumer--vorlage`
Kai Moritz [Wed, 10 Jun 2026 20:53:34 +0000 (22:53 +0200)]
Neuer Branch `springkafka/spring-consumer--vorlage`

13 days agoNeuer Branch `springkafka/spring-producer--vorlage`
Kai Moritz [Wed, 10 Jun 2026 19:37:50 +0000 (21:37 +0200)]
Neuer Branch `springkafka/spring-producer--vorlage`

13 days agoNeuer Branch `consumer/simple-consumer--retention-ms`
Kai Moritz [Wed, 10 Jun 2026 17:19:37 +0000 (19:19 +0200)]
Neuer Branch `consumer/simple-consumer--retention-ms`

13 days agoNeuer Branch `consumer/simple-consumer--max-poll-interval-ms`
Kai Moritz [Wed, 10 Jun 2026 15:24:32 +0000 (17:24 +0200)]
Neuer Branch `consumer/simple-consumer--max-poll-interval-ms`

3 weeks agoAktualisiere CLAUDE.md: schulung.conf ist jetzt versioniert
Kai Moritz [Mon, 1 Jun 2026 21:44:12 +0000 (21:44 +0000)]
Aktualisiere CLAUDE.md: schulung.conf ist jetzt versioniert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoFüge schulung.conf hinzu und entferne sie aus .gitignore
Kai Moritz [Mon, 1 Jun 2026 21:43:29 +0000 (21:43 +0000)]
Füge schulung.conf hinzu und entferne sie aus .gitignore

schulung.conf gehört zur Schulungskonfiguration und soll zusammen mit
den Branches für die jeweilige Schulung versioniert werden.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: schulung.conf.example und copy.sh-Filterlogik dokumentieren
Kai Moritz [Sun, 31 May 2026 21:00:53 +0000 (21:00 +0000)]
CLAUDE.md: schulung.conf.example und copy.sh-Filterlogik dokumentieren

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: schulung.conf für selektives Kopieren von Branches
Kai Moritz [Sun, 31 May 2026 20:59:36 +0000 (20:59 +0000)]
copy.sh: schulung.conf für selektives Kopieren von Branches

Neue optionale Konfigurationsdatei schulung.conf (eine Branch-Angabe
pro Zeile, #-Kommentare): Nur gelistete Branches werden kopiert.
technik-check und --livecoding-Branches werden immer kopiert.
Ein --vorlage-Eintrag schließt den zugehörigen Lösungs-Branch
automatisch mit ein. Ohne schulung.conf: Verhalten wie bisher.

schulung.conf ist per .gitignore lokal; schulung.conf.example
dokumentiert das Format.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoBranch springkafka/technik-check--vorlage → springkafka/technik-check umbenannt
Kai Moritz [Sun, 31 May 2026 20:15:42 +0000 (20:15 +0000)]
Branch springkafka/technik-check--vorlage → springkafka/technik-check umbenannt

Der Branch braucht kein --vorlage-Suffix mehr, da copy.sh ihn ohnehin
per Sonderfall behandelt. Angepasst in:
- branches.sh: Variable und BRANCHES-Liste
- copy.sh: Sonderfall-Match
- CLAUDE.md: ROOT-Tabelle, Ausnahme-Hinweis, Skripte-Abschnitt, TGZ-Abschnitt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: technik-check nach training-exercises/technik-check/ kopieren
Kai Moritz [Sun, 31 May 2026 20:08:26 +0000 (20:08 +0000)]
copy.sh: technik-check nach training-exercises/technik-check/ kopieren

Sonderfall für springkafka/technik-check--vorlage: wird nicht wie andere
--vorlage-Branches nach vorlagen/springkafka/technik-check/ kopiert,
sondern direkt nach training-exercises/technik-check/ — sichtbar neben
den Übungsverzeichnissen statt tief verschachtelt in vorlagen/.

CLAUDE.md: Ausnahme in Suffix-Tabelle, TGZ-Abschnitt und Skript-Pfad
aktualisiert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agolib.sh: reset_branches_to_remote zeigt nur tatsächlich geänderte Branches
Kai Moritz [Sun, 31 May 2026 19:53:23 +0000 (19:53 +0000)]
lib.sh: reset_branches_to_remote zeigt nur tatsächlich geänderte Branches

Branches, bei denen lokaler Stand und origin/<branch> bereits identisch
sind, werden ohne Ausgabe übersprungen. Profitiert auch reset.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: Verweigert Ausführung bei schmutziger Arbeitskopie
Kai Moritz [Sun, 31 May 2026 19:49:35 +0000 (19:49 +0000)]
copy.sh: Verweigert Ausführung bei schmutziger Arbeitskopie

Vor dem ersten git checkout wird geprüft, ob die Arbeitskopie sauber ist.
Bei geänderten, gestagten oder nicht versionierten Dateien wird abgebrochen
und die betroffenen Dateien werden aufgelistet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: Zeitstempel-Rauschen entfernt, gradle/-Bug vollständig behoben
Kai Moritz [Sun, 31 May 2026 19:46:11 +0000 (19:46 +0000)]
copy.sh: Zeitstempel-Rauschen entfernt, gradle/-Bug vollständig behoben

Ausgabe-Filter: Zeige nur echte Inhaltsänderungen, keine Zeitstempel-Updates.
rsync --itemize-changes liefert z.B. ">f..t......" wenn git checkout den
Zeitstempel einer Datei aktualisiert, ohne den Inhalt zu ändern (da git
keine Zeitstempel preserviert). Neues Muster:
  >f[+c]...    neue Datei oder Prüfsumme geändert
  >f.[+s]...   Dateigröße geändert (= Inhalt geändert)
  cd++++...    neues Verzeichnis
  *deleting    Datei/Verzeichnis gelöscht

Bug-Fix: Voriger Fix schloss nur gradle/wrapper/ aus; rsync versuchte
gradle/ selbst zu löschen, scheiterte aber weil das ausgeschlossene
Unterverzeichnis gradle/ nicht-leer ließ. Fix: gradle/ komplett
ausschließen. Das Verzeichnis wird ausschließlich von init-exercises.sh
verwaltet (--gradle befüllt, --maven räumt auf).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: rsync-Bug behoben — gradle/wrapper nach init-exercises --gradle
Kai Moritz [Sun, 31 May 2026 19:21:57 +0000 (19:21 +0000)]
copy.sh: rsync-Bug behoben — gradle/wrapper nach init-exercises --gradle

Problem: Nach init-exercises.sh --gradle enthält das Ziel
gradle/wrapper/gradle-wrapper.jar (von init-exercises.sh hinzugefügt).
Beim nächsten copy.sh-Lauf versuchte rsync --delete das Verzeichnis
gradle/wrapper/ zu löschen (nicht in Maven-only-Branches wie grundlagen/*),
scheiterte aber weil die ausgeschlossene JAR das Verzeichnis nicht-leer ließ:
  cannot delete non-empty directory: gradle/wrapper

Fix: Das gesamte gradle/wrapper/-Verzeichnis wird von rsync ausgeschlossen
statt nur einzelner Dateien darin. Das Verzeichnis wird ausschließlich
von init-exercises.sh verwaltet (--gradle kopiert Wrapper, --maven räumt auf).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: Ausgabe bereinigt — nur tatsächliche Änderungen sichtbar
Kai Moritz [Sun, 31 May 2026 19:21:42 +0000 (19:21 +0000)]
copy.sh: Ausgabe bereinigt — nur tatsächliche Änderungen sichtbar

Statt rsync -av (alle Dateien) jetzt --itemize-changes mit Filter:
Ausgabe zeigt nur neue/geänderte Dateien (>f, cd) und Löschungen (*deleting).
Vor jedem Branch-Sync wird ein Header angezeigt (branch → ziel/pfad),
sodass klar ist, was gerade verarbeitet wird.

Weitere Bereinigungen:
- git checkout/reset/fetch mit -q: keine "Switched to branch"- und
  "HEAD is now at"-Ausgaben mehr (lib.sh, copy.sh)
- "Ignoriere Einzelschritte" → "Überspringe <branch>" (kürzer)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoSkripte: einheitliche --name-value-Parameter, --help, Umstrukturierung
Kai Moritz [Sun, 31 May 2026 17:32:37 +0000 (17:32 +0000)]
Skripte: einheitliche --name-value-Parameter, --help, Umstrukturierung

Parameter-Vereinheitlichung (alle Skripte):
- Alle Parameter verwenden --name value (Leerzeichen statt =, keine
  Positional-Argumente mehr): reset.sh --tag, diff.sh --tag/--from/--to,
  copy.sh --tag/--local
- Alle Skripte erhalten --help mit vollständiger Beschreibung

Umstrukturierung:
- build.sh und patch-nexus.sh aus scripting entfernt; beide operieren
  auf kopierten Übungsverzeichnissen und gehören zu technik-check--vorlage
- copy.sh: --nexus-url entfernt (patch-nexus.sh liegt jetzt in technik-check)
- copy.sh: RSYNC_OPTS-Excludes für entfernte Skripte bereinigt

CLAUDE.md:
- Skript-Tabelle aufgeteilt nach Branch (scripting vs. technik-check--vorlage)
- Parameter-Dokumentation entfernt (--help in jedem Skript)
- Hinweis ergänzt, dass technik-check-Skripte nach copy.sh bereitstehen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agolib.sh: Gemeinsame Logik aus Skripten extrahiert
Kai Moritz [Sun, 31 May 2026 17:06:38 +0000 (17:06 +0000)]
lib.sh: Gemeinsame Logik aus Skripten extrahiert

Neue Shared Library lib.sh, die branches.sh einbindet und drei
zentrale Bausteine bereitstellt, die zuvor in mehreren Skripten
dupliziert waren:

- $BRANCH_NAMES: Array aller Branch-Namen (inkl. grundlagen/docker),
  ersetzt das wiederholte `for i in grundlagen__docker $BRANCHES; do
  declare -n branch=$i`-Muster in push.sh, reset.sh, diff.sh, copy.sh
  und die manuelle BRANCH_LIST-Konstruktion in push.sh.

- find_common_tag_suffixes(): Vereinheitlicht zwei unterschiedliche
  Implementierungen desselben Algorithmus (push.sh nutzte git rev-parse,
  copy.sh nutzte git tag -l + comm).

- reset_branches_to_remote(): Extrahiert die identische Reset-Schleife
  aus copy.sh und reset.sh.

Alle Skripte binden nun lib.sh statt branches.sh ein. lib.sh wird
ebenfalls in den rsync-Excludes von copy.sh geführt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: gradle/wrapper/.gradle-version von rsync-Löschung ausschließen
Kai Moritz [Sun, 31 May 2026 14:57:45 +0000 (14:57 +0000)]
copy.sh: gradle/wrapper/.gradle-version von rsync-Löschung ausschließen

Der Versions-Marker wird von README-gradle.sh erzeugt und ist gitignoriert.
Ohne diesen Ausschluss würde --delete den Marker nach jedem copy.sh-Lauf
entfernen, was README-gradle.sh anschließend mit einem Fehler scheitern lässt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: --local-Schalter ergänzt, Tag-Suffix auf --tag= umgestellt
Kai Moritz [Sun, 31 May 2026 14:29:25 +0000 (14:29 +0000)]
copy.sh: --local-Schalter ergänzt, Tag-Suffix auf --tag= umgestellt

--local kopiert lokale Branch-HEADs ohne Remote-Aktualisierung.
Der bisher positionale Tag-Suffix wird nun als --tag=<suffix> übergeben.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh, init-exercises.sh: Ausgabeverzeichnisse unter ../training-exercises/ zusamme...
Kai Moritz [Sun, 31 May 2026 13:55:45 +0000 (13:55 +0000)]
copy.sh, init-exercises.sh: Ausgabeverzeichnisse unter ../training-exercises/ zusammenfassen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: Remote-Stände aktualisieren, wenn kein Tag-Suffix angegeben
Kai Moritz [Sun, 31 May 2026 13:41:47 +0000 (13:41 +0000)]
copy.sh: Remote-Stände aktualisieren, wenn kein Tag-Suffix angegeben

Ohne Tag-Suffix-Parameter prüft das Skript vor der Aktualisierung, ob
alle Branches (inkl. grundlagen/docker) einheitlich getagged sind. Fehlt
einem Branch ein gemeinsames Tag, bricht das Skript mit einer Fehlermeldung
ab. Liegt ein gemeinsames Tag vor, werden alle Branches per fetch+reset auf
den jeweiligen origin-Stand gebracht, bevor das Kopieren beginnt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: push.sh-Beschreibung aktualisiert, Commit-Anweisung ergänzt
Kai Moritz [Sun, 31 May 2026 13:29:32 +0000 (13:29 +0000)]
CLAUDE.md: push.sh-Beschreibung aktualisiert, Commit-Anweisung ergänzt

push.sh-Beschreibung spiegelt jetzt das neue Verhalten wider:
bedingte TIMESTAMP-Backup-Tags im Remote und Push gemeinsamer lokaler
Tag-Suffixe. Außerdem neue Sektion "Arbeitsanweisungen" mit der Regel,
nach jeder Aufgabe einen Commit zu erzeugen.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agopush.sh: Backup-Tags nur bei Bedarf und nur im Remote anlegen
Kai Moritz [Sun, 31 May 2026 13:28:15 +0000 (13:28 +0000)]
push.sh: Backup-Tags nur bei Bedarf und nur im Remote anlegen

Bisher wurden automatisch für jeden Branch zwei lokale Backup-Tags
(--BACKUP-ORIGIN--<TIMESTAMP> und --BACKUP-ORIGIN--LAST) erzeugt und
gepusht. Das neue Verhalten:

- Branches werden weiterhin per --force gepusht.
- Backup-Tags werden nur noch dann erzeugt, wenn mindestens ein Branch
  durch den Push umgeschrieben (nicht nur erweitert) würde und der
  bisherige Remote-Stand in diesem Branch noch keinen Tag im Remote hat.
  In diesem Fall werden TIMESTAMP-Tags für alle Remote-Stände direkt im
  Remote-Repository angelegt.
- Existiert lokal ein gemeinsames Tag-Suffix (d.h. für jeden Branch B
  existiert ein lokaler Tag B--S, z.B. --claude-5), wird dieses
  zusammen mit den Branches in den Remote gepusht, sofern es dort noch
  nicht vorhanden ist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoClaude wird jetzt nicht mehr direkt aus dem Repository gestartet
Kai Moritz [Sun, 31 May 2026 13:06:39 +0000 (13:06 +0000)]
Claude wird jetzt nicht mehr direkt aus dem Repository gestartet

3 weeks agoCLAUDE.md: Historische Branches, producer→consumer-Kettendesign und Effizienz-Prinzip...
Kai Moritz [Sun, 31 May 2026 12:41:06 +0000 (12:41 +0000)]
CLAUDE.md: Historische Branches, producer→consumer-Kettendesign und Effizienz-Prinzip dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Suffix-Tabelle um Zielverzeichnisse ergänzt, copy.sh-Beschreibung korrigiert
Kai Moritz [Sun, 31 May 2026 12:29:50 +0000 (12:29 +0000)]
CLAUDE.md: Suffix-Tabelle um Zielverzeichnisse ergänzt, copy.sh-Beschreibung korrigiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Hinweis ergänzt, dass keine Git-Erkundungsbefehle nötig sind
Kai Moritz [Sun, 31 May 2026 12:24:54 +0000 (12:24 +0000)]
CLAUDE.md: Hinweis ergänzt, dass keine Git-Erkundungsbefehle nötig sind

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: bootstrap-gradle.sh → init-exercises.sh, Beschreibungen aktualisiert
Kai Moritz [Sun, 31 May 2026 11:04:26 +0000 (11:04 +0000)]
CLAUDE.md: bootstrap-gradle.sh → init-exercises.sh, Beschreibungen aktualisiert

- Skript-Tabelle: bootstrap-gradle.sh durch init-exercises.sh ersetzt,
  README-gradle.sh-Beschreibung auf neue --update-Logik aktualisiert
- Reine Docker-Verzeichnisse: Beschreibung präzisiert (Image-Artefakte in
  unterschiedlichen Setups zum Analysieren des Verhaltens)
- gradle-wrapper.properties als maßgebliche Gradle-Versionsquelle dokumentiert
- Versions-Marker .gradle-version als gitignoriert erwähnt
- TGZ-Verzeichnisstruktur: Referenz auf bootstrap-gradle.sh aktualisiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: checkout_branch-Funktion extrahiert, case vor checkout verschoben
Kai Moritz [Sun, 31 May 2026 09:47:24 +0000 (09:47 +0000)]
copy.sh: checkout_branch-Funktion extrahiert, case vor checkout verschoben

TAG_SUFFIX-if/else war dupliziert (grundlagen/docker + Schleife). Jetzt in
checkout_branch() gekapselt. case-Statement steht jetzt vor dem Checkout,
sodass --livecoding--schritte-Branches gar nicht erst ausgecheckt werden.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: push.sh-Beschreibung um einheitlichen Zeitstempel pro Lauf ergänzt
Kai Moritz [Sun, 31 May 2026 09:30:28 +0000 (09:30 +0000)]
CLAUDE.md: push.sh-Beschreibung um einheitlichen Zeitstempel pro Lauf ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoSkripte: Best Practices -- Timestamp einmalig, Schleifen-Duplizierung entfernt, Quoting
Kai Moritz [Sun, 31 May 2026 09:28:06 +0000 (09:28 +0000)]
Skripte: Best Practices -- Timestamp einmalig, Schleifen-Duplizierung entfernt, Quoting

push.sh: TIMESTAMP einmal vor der Schleife berechnen (alle Branches eines Laufs
teilen denselben Zeitstempel); Variablen gequotet.

reset.sh: Duplizierte Schleife zu einer einzigen zusammengeführt; ref-Variable
bestimmt den Ziel-Stand; Variablen gequotet.

build.sh: =~ (Regex) durch == mit Glob-Pattern ersetzt (*--vorlage, grundlagen/*).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: Sonderfall technik-check entfernt, Ziel folgt immer dem Branch-Namen
Kai Moritz [Sun, 31 May 2026 09:24:02 +0000 (09:24 +0000)]
copy.sh: Sonderfall technik-check entfernt, Ziel folgt immer dem Branch-Namen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: copy.sh-Beschreibung um --delete und Verzeichnis-Bereinigung ergänzt
Kai Moritz [Sun, 31 May 2026 00:52:35 +0000 (00:52 +0000)]
CLAUDE.md: copy.sh-Beschreibung um --delete und Verzeichnis-Bereinigung ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agocopy.sh: --delete für rsync, veraltete Verzeichnisse bereinigen
Kai Moritz [Sun, 31 May 2026 00:51:37 +0000 (00:51 +0000)]
copy.sh: --delete für rsync, veraltete Verzeichnisse bereinigen

- rsync --delete: beim erneuten Kopieren werden aus dem Branch entfernte
  Dateien auch im Zielverzeichnis gelöscht
- Nach dem Kopieren: Verzeichnisse in vorlagen/, livecoding/, spickzettel/,
  die keinem aktuellen Branch mehr entsprechen, werden gelöscht
- Pfadberechnung im case-Statement vereinheitlicht (dest-Variable)
- trap sichert Cleanup der temporären Datei auch bei Fehlerabbruch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Skripte überarbeitet, alte Referenzen entfernt
Kai Moritz [Sat, 30 May 2026 00:34:51 +0000 (00:34 +0000)]
CLAUDE.md: Skripte überarbeitet, alte Referenzen entfernt

- Skript-Tabelle um detaillierte Beschreibungen ergänzt
- Abschnitt für Skripte im technik-check--vorlage-Branch hinzugefügt
- Alle Verweise auf alte Großbuchstaben-Skripte (BRANCHES.sh, REBASE.sh,
  PUSH.sh, RESET.sh, DIFF.sh, TAG.sh) auf neue Namen aktualisiert
- Einleitung "Manueller Rebase-Workflow" ohne REBASE.sh-Referenz neu formuliert
- config/flawed-setup--zookeeper vollständig entfernt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks ago.claude/settings.local.json: claude-6-Tag-Befehle freigegeben
Kai Moritz [Sat, 30 May 2026 00:26:50 +0000 (00:26 +0000)]
.claude/settings.local.json: claude-6-Tag-Befehle freigegeben

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agopatch-nexus.sh: URL-Escaping in gradle-wrapper.properties korrigiert
Kai Moritz [Sat, 30 May 2026 00:20:19 +0000 (00:20 +0000)]
patch-nexus.sh: URL-Escaping in gradle-wrapper.properties korrigiert

sed konsumiert '\' im Replacement; awk erledigt das korrekt (gsub ersetzt
':' durch '\:' bevor die Zeile ausgegeben wird).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: config/flawed-setup--zookeeper vollständig entfernt
Kai Moritz [Sat, 30 May 2026 00:14:14 +0000 (00:14 +0000)]
CLAUDE.md: config/flawed-setup--zookeeper vollständig entfernt

Gehört nicht zu den Übungs-Branches.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Hinweis auf config/flawed-setup--zookeeper bereinigt
Kai Moritz [Sat, 30 May 2026 00:12:17 +0000 (00:12 +0000)]
CLAUDE.md: Hinweis auf config/flawed-setup--zookeeper bereinigt

Operativer Zustandshinweis (war/ist in branches.sh) entfernt.
ZooKeeper-Warnung kompakt in die ROOT-Tabelle verschoben.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agobranches.sh: config/flawed-setup--zookeeper entfernt; CLAUDE.md angepasst
Kai Moritz [Sat, 30 May 2026 00:09:34 +0000 (00:09 +0000)]
branches.sh: config/flawed-setup--zookeeper entfernt; CLAUDE.md angepasst

Der Branch wird manuell behandelt und hat keine Variable mehr in branches.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Skript-Tabelle aktualisiert, TGZ-Struktur dokumentiert
Kai Moritz [Fri, 29 May 2026 23:59:00 +0000 (23:59 +0000)]
CLAUDE.md: Skript-Tabelle aktualisiert, TGZ-Struktur dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCOPY.sh → copy.sh: vollständig überarbeitet
Kai Moritz [Fri, 29 May 2026 23:58:36 +0000 (23:58 +0000)]
COPY.sh → copy.sh: vollständig überarbeitet

- Script-Excludes auf neue Kleinbuchstaben-Namen aktualisiert
- .gitignore nicht mehr ausgeschlossen (Teilnehmer brauchen sie)
- gradle/wrapper/gradle-wrapper.jar explizit ausgeschlossen
- Sonderfall springkafka/technik-check → vorlagen/grundlagen/technik-check/
- --livecoding--schritte vor --livecoding geprüft (Pattern-Reihenfolge)
- Bash-String-Operationen statt sed für Suffix-Entfernung
- --nexus-url=<url> Parameter: ruft patch-nexus.sh auf die Vorlagen auf
- Parameterübergabe für Tag-Suffix und Optionen vereinheitlicht

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoRESET.sh → reset.sh: source branches.sh
Kai Moritz [Fri, 29 May 2026 23:54:40 +0000 (23:54 +0000)]
RESET.sh → reset.sh: source branches.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoPUSH.sh → push.sh: source branches.sh
Kai Moritz [Fri, 29 May 2026 23:54:33 +0000 (23:54 +0000)]
PUSH.sh → push.sh: source branches.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoDIFF.sh → diff.sh: Zwei-Tag-Vergleich ergänzt
Kai Moritz [Fri, 29 May 2026 23:54:26 +0000 (23:54 +0000)]
DIFF.sh → diff.sh: Zwei-Tag-Vergleich ergänzt

Neu: ./diff.sh <suffix1> <suffix2> vergleicht zwei Tag-Stände
(z.B. ./diff.sh claude-5 claude-6). Quellreferenz auf branches.sh
aktualisiert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agopatch_gradle_for_si_nexus.sh → patch-nexus.sh (überarbeitet)
Kai Moritz [Fri, 29 May 2026 23:53:27 +0000 (23:53 +0000)]
patch_gradle_for_si_nexus.sh → patch-nexus.sh (überarbeitet)

Neu: Nexus-URL als Pflichtparameter statt hardcodiert; optionaler
--gradle-dist-url für Gradle-Distributionen hinter Firewalls; patcht
zusätzlich gradle-wrapper.properties. Emojis entfernt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoBRANCHES.sh → branches.sh umbenannt
Kai Moritz [Fri, 29 May 2026 23:52:47 +0000 (23:52 +0000)]
BRANCHES.sh → branches.sh umbenannt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agobuild.sh: BUILD.sh, MAVEN.sh und GRADLE.sh zusammengeführt
Kai Moritz [Fri, 29 May 2026 23:21:44 +0000 (23:21 +0000)]
build.sh: BUILD.sh, MAVEN.sh und GRADLE.sh zusammengeführt

Unterstützt Maven- und Gradle-Branches. Ohne Argument nur Build,
mit --publish auch Docker-Image in die Registry veröffentlichen.
Gradle-Branches rufen automatisch bootstrap-gradle.sh auf, falls
vorhanden.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoREBASE.sh und TAG.sh gelöscht
Kai Moritz [Fri, 29 May 2026 23:20:19 +0000 (23:20 +0000)]
REBASE.sh und TAG.sh gelöscht

REBASE.sh ist obsolet: Rebases werden manuell mit Claude durchgeführt,
da sie von Inhalt und Branch-Abhängigkeiten abhängen und nicht sinnvoll
zu skripten sind.

TAG.sh ist obsolet: Session-Tags werden von Claude direkt vergeben.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks ago.claude/settings.local.json: Gradle-Wrapper-Setup-Befehle freigegeben
Kai Moritz [Fri, 29 May 2026 23:13:10 +0000 (23:13 +0000)]
.claude/settings.local.json: Gradle-Wrapper-Setup-Befehle freigegeben

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoBRANCHES.sh: __ROOT-Variablen entfernt, 3 fehlende Branches in Iterationsliste ergänz...
Kai Moritz [Fri, 29 May 2026 22:58:12 +0000 (22:58 +0000)]
BRANCHES.sh: __ROOT-Variablen entfernt, 3 fehlende Branches in Iterationsliste ergänzt; CLAUDE.md: Zuständigkeiten dokumentiert

3 weeks agoCLAUDE.md: Versionsangaben entfernt (veralten bei Updates)
Kai Moritz [Fri, 29 May 2026 22:10:22 +0000 (22:10 +0000)]
CLAUDE.md: Versionsangaben entfernt (veralten bei Updates)

3 weeks agoCLAUDE.md: Rebase-Mechanik erklärt (git log zwischen Sessions), Spring-Boot-Version...
Kai Moritz [Fri, 29 May 2026 22:07:22 +0000 (22:07 +0000)]
CLAUDE.md: Rebase-Mechanik erklärt (git log zwischen Sessions), Spring-Boot-Version aktualisiert

3 weeks agoCLAUDE.md: Hinweis auf Sonderbranches aktualisiert (nur noch config/flawed-setup...
Kai Moritz [Fri, 29 May 2026 21:18:04 +0000 (21:18 +0000)]
CLAUDE.md: Hinweis auf Sonderbranches aktualisiert (nur noch config/flawed-setup--zookeeper)

3 weeks agoCLAUDE.md: Immer mit Branch-HEADs arbeiten, nicht mit --claude-N-Tags
Kai Moritz [Fri, 29 May 2026 19:10:03 +0000 (19:10 +0000)]
CLAUDE.md: Immer mit Branch-HEADs arbeiten, nicht mit --claude-N-Tags

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: ROOT-Lookup aus BRANCHES.sh → CLAUDE.md; vollständiges Session-Tagging
Kai Moritz [Fri, 29 May 2026 18:53:58 +0000 (18:53 +0000)]
CLAUDE.md: ROOT-Lookup aus BRANCHES.sh → CLAUDE.md; vollständiges Session-Tagging

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Verifikationsschritt nach Rebase ergänzt
Kai Moritz [Fri, 29 May 2026 18:40:18 +0000 (18:40 +0000)]
CLAUDE.md: Verifikationsschritt nach Rebase ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Vollständige Branch-ROOT-Tabelle ergänzt
Kai Moritz [Fri, 29 May 2026 18:19:01 +0000 (18:19 +0000)]
CLAUDE.md: Vollständige Branch-ROOT-Tabelle ergänzt

- Tabelle mit allen Branches und ihren ROOTs direkt in CLAUDE.md eingetragen
- Nicht-intuitive ROOTs markiert (z.B. kafkalistener → consumer/spring-consumer)
- Branches, die nicht in der BRANCHES-Iterationsliste sind, explizit aufgeführt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks agoCLAUDE.md: Rebase-Ansatz auf `git rebase -i` umgestellt; ROOT-Ermittlung dokumentiert
Kai Moritz [Fri, 29 May 2026 18:09:17 +0000 (18:09 +0000)]
CLAUDE.md: Rebase-Ansatz auf `git rebase -i` umgestellt; ROOT-Ermittlung dokumentiert

- Rebase-Strategie von manuellem Cherry-Pick auf `git rebase -i` umgestellt
- Dokumentiert, wie der ROOT eines Branches über BRANCHES.sh nachgeschlagen wird
- Erklärt den Umgang mit Konflikten beim interaktiven Rebase

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 weeks ago`CLAUDE.md` überflüssige Hinweise auf bereits umgesetzte Verbesserungen von Claude...
Kai Moritz [Fri, 29 May 2026 17:05:37 +0000 (19:05 +0200)]
`CLAUDE.md` überflüssige Hinweise auf bereits umgesetzte Verbesserungen von Claude entfernen lassen

3 weeks ago`CLAUDE.md` übersetzt und weitere Erklärungen zu den Live-Codings ergänzt (mit Hilfe...
Kai Moritz [Fri, 29 May 2026 17:02:46 +0000 (19:02 +0200)]
`CLAUDE.md` übersetzt und weitere Erklärungen zu den Live-Codings ergänzt (mit Hilfe von Claude)

3 weeks agoÜberflüssigen Branch `consumer/simple-consumer-livecoding--schritte` entfernt
Kai Moritz [Fri, 29 May 2026 09:00:35 +0000 (11:00 +0200)]
Überflüssigen Branch `consumer/simple-consumer-livecoding--schritte` entfernt

3 weeks agoCLAUDE.md: Compacted learnings of last session
Kai Moritz [Fri, 29 May 2026 08:21:38 +0000 (10:21 +0200)]
CLAUDE.md: Compacted learnings of last session

4 weeks agoCLAUDE.md: Principle of minimal diffs between chained branches documented
Kai Moritz [Sat, 23 May 2026 08:08:32 +0000 (08:08 +0000)]
CLAUDE.md: Principle of minimal diffs between chained branches documented

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoCLAUDE.md: MOVE/ALIGN-Commit-Konvention dokumentiert
Kai Moritz [Sat, 23 May 2026 07:59:19 +0000 (07:59 +0000)]
CLAUDE.md: MOVE/ALIGN-Commit-Konvention dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoCLAUDE.md: Docker-Image-Naming und infrastruktur-only Branches dokumentiert
Kai Moritz [Sat, 23 May 2026 06:53:53 +0000 (06:53 +0000)]
CLAUDE.md: Docker-Image-Naming und infrastruktur-only Branches dokumentiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoCLAUDE.md mit Hilfe von Claude um Hinweise zur Arbeitsweise ergänzt
Kai Moritz [Sat, 23 May 2026 06:08:44 +0000 (06:08 +0000)]
CLAUDE.md mit Hilfe von Claude um Hinweise zur Arbeitsweise ergänzt

4 weeks agobuild: Docker-Push-Befehle auf Jib (grundlagen) und bootBuildImage (Spring Boot)...
Kai Moritz [Fri, 22 May 2026 17:18:54 +0000 (17:18 +0000)]
build: Docker-Push-Befehle auf Jib (grundlagen) und bootBuildImage (Spring Boot) umstellen

- BUILD.sh, MAVEN.sh: `mvn docker:push` durch plugin-spezifischen Push ersetzt
- GRADLE.sh: `gradle buildDockerImage` durch `gradle jib` bzw. `gradle bootBuildImage --publishImage` ersetzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks agoCLAUDE.md um Hinweise zur Gliederung und Verwendung der Übungs-Blöcke ergänzt
Kai Moritz [Fri, 22 May 2026 10:28:45 +0000 (12:28 +0200)]
CLAUDE.md um Hinweise zur Gliederung und Verwendung der Übungs-Blöcke ergänzt

4 weeks agoCLAUDE.md für Claude Code hinzugefügt
Kai Moritz [Fri, 22 May 2026 08:26:53 +0000 (08:26 +0000)]
CLAUDE.md für Claude Code hinzugefügt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3 months ago`PUSH.sh` scheitert nicht mehr, wenn der Branch neu ist
Kai Moritz [Tue, 24 Mar 2026 16:06:22 +0000 (17:06 +0100)]
`PUSH.sh` scheitert nicht mehr, wenn der Branch neu ist

3 months agoVorlage für Übung Megagroup überarbeitet
Kai Moritz [Sun, 22 Mar 2026 20:28:53 +0000 (21:28 +0100)]
Vorlage für Übung Megagroup überarbeitet

3 months agoBranches `consuergroup` und `spickzettel` entfernt, Livecoding ergänzt
Kai Moritz [Sun, 22 Mar 2026 14:20:07 +0000 (15:20 +0100)]
Branches `consuergroup` und `spickzettel` entfernt, Livecoding ergänzt

3 months ago`RESET.sh` kann auch auf ein Tag-Prefix zurücksetzen
Kai Moritz [Sat, 21 Mar 2026 12:08:14 +0000 (13:08 +0100)]
`RESET.sh` kann auch auf ein Tag-Prefix zurücksetzen

3 months agoFehlenden Branch `consumer/spring-consumer--vorlage` ergänzt
Kai Moritz [Wed, 18 Mar 2026 19:42:15 +0000 (20:42 +0100)]
Fehlenden Branch `consumer/spring-consumer--vorlage` ergänzt

3 months agoUmbenennung: `spring/*` -> `springkafka/*`
Kai Moritz [Wed, 18 Mar 2026 18:06:39 +0000 (19:06 +0100)]
Umbenennung: `spring/*` -> `springkafka/*`

3 months agoUmbenennung ohne Spring-Kafka: `spring/spring-*/` -> `consumer/spring-*`
Kai Moritz [Mon, 16 Mar 2026 19:06:17 +0000 (20:06 +0100)]
Umbenennung ohne Spring-Kafka: `spring/spring-*/` -> `consumer/spring-*`

3 months agoBranch für die Vorführung der Übung Fire & Forget
Kai Moritz [Sun, 15 Mar 2026 10:04:40 +0000 (11:04 +0100)]
Branch für die Vorführung der Übung Fire & Forget

3 months agoBranch für NO-DLT hinzugefügt
Kai Moritz [Thu, 22 May 2025 15:31:09 +0000 (17:31 +0200)]
Branch für NO-DLT hinzugefügt

3 months agoBranches für das Tuning der Proudcer-Fehlerbehandlung
Kai Moritz [Fri, 16 May 2025 05:35:32 +0000 (07:35 +0200)]
Branches für das Tuning der Proudcer-Fehlerbehandlung

3 months agoBranch für ein einfaches DLT-Setup
Kai Moritz [Thu, 15 May 2025 21:38:03 +0000 (23:38 +0200)]
Branch für ein einfaches DLT-Setup

3 months agoBranches zu Fehlerbehandlung bei Spring Kafka umorganisiert und um DLT-Beispiel ergänzt
Kai Moritz [Thu, 15 May 2025 20:08:29 +0000 (22:08 +0200)]
Branches zu Fehlerbehandlung bei Spring Kafka umorganisiert und um DLT-Beispiel ergänzt

3 months agoDas von Chat-GPT erzeugte Skript die Gradle-Ergänzungen überarbeitet
Kai Moritz [Thu, 15 May 2025 15:07:06 +0000 (17:07 +0200)]
Das von Chat-GPT erzeugte Skript die Gradle-Ergänzungen überarbeitet

13 months agoVon Chat-GPT - Auszuführen in z.B. `vorlagen`
Kai Moritz [Thu, 15 May 2025 05:19:28 +0000 (07:19 +0200)]
Von Chat-GPT - Auszuführen in z.B. `vorlagen`

13 months agoEinzelschritte eines Live-Codings werden nicht mit kopiert
Kai Moritz [Wed, 7 May 2025 19:23:23 +0000 (21:23 +0200)]
Einzelschritte eines Live-Codings werden nicht mit kopiert

13 months agoBranches für Live-Codings vervollständigt
Kai Moritz [Wed, 7 May 2025 18:54:05 +0000 (20:54 +0200)]
Branches für Live-Codings vervollständigt

14 months agoRecordHandler, HealthIndicator und ErrorHandling beruhen auf Generics
Kai Moritz [Sun, 13 Apr 2025 08:45:45 +0000 (10:45 +0200)]
RecordHandler, HealthIndicator und ErrorHandling beruhen auf Generics

14 months agoDoppelt geführten Branch `spring/sumup_messages` entfernt
Kai Moritz [Sat, 12 Apr 2025 22:28:06 +0000 (00:28 +0200)]
Doppelt geführten Branch `spring/sumup_messages` entfernt

14 months agoWIP: Fortgeschrittene Consumer-Themen basieren auf `spring/spring-consumer`
Kai Moritz [Sat, 12 Apr 2025 22:25:04 +0000 (00:25 +0200)]
WIP: Fortgeschrittene Consumer-Themen basieren auf `spring/spring-consumer`

14 months ago`spring/spring-consumer--vorlage` ist im Grunde die selbe, wie `spring/spring-consume...
Kai Moritz [Sat, 12 Apr 2025 21:36:02 +0000 (23:36 +0200)]
`spring/spring-consumer--vorlage` ist im Grunde die selbe, wie `spring/spring-consumer--json--vorlage`

14 months agoWIP:Branch `spring/spring-producer--livecoding` ist eigentlich: `spring/spring-producer`
Kai Moritz [Sat, 12 Apr 2025 20:59:26 +0000 (22:59 +0200)]
WIP:Branch `spring/spring-producer--livecoding` ist eigentlich: `spring/spring-producer`

14 months agoFortgeschrittene Consumer-Themen basieren auf `spring/spring-consumer`
Kai Moritz [Sat, 12 Apr 2025 13:44:13 +0000 (15:44 +0200)]
Fortgeschrittene Consumer-Themen basieren auf `spring/spring-consumer`

* `consumer/spring-consumer` wird gar nicht mehr benötigt
* `consumer/spring-consumer` ist identisch mit `spring/spring-consumer`