#0099 geschlossen: Upstream-Anschluss vollzogen, v0.6.0 in Produktion
ThreadNet-Web:main auf 8ca03fe, Merge-Commit 88c4e15 mit beiden echten Eltern. GHSA-wrcp-5v3v-3j6v ist mit dem Versionssprung erledigt. Drei Anlaeufe: rc.1 erzeugte kein Image (.npmrc fehlte im Docker-Kontext, unter pnpm 11 fatal), rc.2 ging live und brach die Raumliste, rc.3 bestand die Abnahme. ADR-0022 um zwei Korrekturen ergaenzt, die erst die Ausfuehrung gezeigt hat: Die stille Klasse verschwindet nicht ganz, sie dreht sich um. Der Merge meldet, wenn Upstream eine Datei verschiebt - das hat gehalten. Er meldet nicht, wenn beide Seiten die Aufloesung ueberleben und nur eine noch Sinn ergibt. Genau das brach rc.2. Und: ein gruener Build war nie eine Abnahme. Der web-Job baut nur, webpack wirft Typen weg. tsc meldete den Fehler durchgehend, gefragt hatte ihn niemand. Seit 8ca03fe fuehrt docker_web den Job typecheck als needs. Daraus die stehende Regel fuer kuenftige Merges: nach der Konfliktaufloesung auf ueberlebende Reste pruefen, nicht nur auf verlorene Zeilen. Wo Zeichenketten statt Typen im Spiel sind, braucht es einen Abgleich gegen die Registry - fuer Einstellungen einmalig gefahren, 135 abgefragte gegen 152 registrierte.
This commit is contained in:
@@ -73,3 +73,31 @@ und ohne diese Messung wäre der Merge auf eine erfundene Grundlage gelaufen.
|
||||
empfangen) ist der Merge nicht abgenommen.
|
||||
- Schritt 4 aus #0099 — ein Verfahren zum Auftragen der Patches — wird damit
|
||||
gegenstandslos.
|
||||
|
||||
## Nachtrag 2026-08-19: ausgeführt, und was die Ausführung korrigiert
|
||||
|
||||
Vollzogen. `ThreadNet-Web:main` steht auf `8ca03fe`, der Merge-Commit `88c4e15` trägt
|
||||
beide echten Eltern. Produktion läuft auf `v0.6.0`. Zwei Annahmen dieser ADR haben sich
|
||||
in der Praxis verschoben:
|
||||
|
||||
**Die stille Klasse verschwindet nicht ganz — sie dreht sich um.** Die Entscheidung
|
||||
begründet sich damit, dass Git künftig meldet, wenn Upstream eine Datei verschiebt, die
|
||||
wir angefasst haben. Das hat gehalten (`RoomListItemWrapper`-Umbenennung wurde als
|
||||
Konflikt gemeldet). Was ein Drei-Wege-Merge **nicht** meldet, ist der umgekehrte Fall:
|
||||
Beide Seiten überleben die Auflösung, aber nur eine ergibt noch Sinn. Genau das brach
|
||||
`v0.6.0-rc.2` in Produktion — eine `getValue`-Zeile auf einen von Upstream entfernten
|
||||
Einstellungsschlüssel, die niemand mehr liest und die trotzdem wirft.
|
||||
|
||||
**Ein grüner Build ist keine Abnahme, und war nie eine.** Diese ADR sagt richtig
|
||||
„Abnahme ist kein Build, sondern ein Funktionstest" — gemeint war der ClamAV-Test. Der
|
||||
rc.2-Vorfall zeigt die Lücke davor: Der CI-Job `web` **baut** nur, webpack entfernt
|
||||
Typen ohne sie zu prüfen. `tsc` meldete den Fehler durchgehend, gefragt hatte ihn
|
||||
niemand. Seit `8ca03fe` führt `docker_web` den Job `typecheck` als `needs`; kein Image
|
||||
entsteht mehr ohne bestandene Typprüfung.
|
||||
|
||||
**Daraus die stehende Regel für künftige Upstream-Merges:** Nach der Konfliktauflösung
|
||||
gehört eine Prüfung auf *überlebende* Reste — nicht nur auf verlorene Zeilen. Der
|
||||
billigste Hebel ist die Typprüfung; sie fand beide Reste sofort. Wo Zeichenketten statt
|
||||
Typen im Spiel sind (Einstellungsschlüssel, Feature-Namen, Übersetzungs-IDs), reicht sie
|
||||
nicht, und es braucht einen Abgleich gegen die jeweilige Registry — für Einstellungen
|
||||
wurde er einmalig gefahren: 135 abgefragte gegen 152 registrierte.
|
||||
|
||||
Reference in New Issue
Block a user