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>
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
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>
- 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>
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>
Kai Moritz [Sat, 12 Apr 2025 09:32:49 +0000 (11:32 +0200)]
Übung zur Fehlerbehandlung basieren auf den Spring-Versionen
* Dadurch kann man ggf. live auf die JSON-Beispiele umgschwenken
* Außerdem erleichtert das den Switch zwischen Vanilla Kafka und Spring Kafka
* Möglich, da das Fehlerhandling jetzt ein fortgeschrittenes Thema ist