From ac343e9347ca36791b28ab5e121e81772cb90745 Mon Sep 17 00:00:00 2001 From: Thore Cimbal Date: Thu, 20 Aug 2026 12:00:00 +0000 Subject: [PATCH] Typpruefung auf den ganzen Baum ausweiten apps/desktop/electron-builder.ts:237 war der letzte Typfehler im eigenen Code: config.dmg ist moeglicherweise undefined, weil Upstreams Configuration-Interface zwar linux/win/mac/deb verpflichtend macht, dmg aber nicht. Der Wert steht literal in config - behoben mit ! statt mit einer Zeile in Upstreams Interface, weil der Kommentar direkt darueber genau diese Aenderung vermeiden will, um bei Upstream-Merges keinen Konflikt zu erzeugen. Dasselbe Idiom nutzt die Datei weiter unten fuer win.signtoolOptions. Damit ist der Baum typrein und der Job kann von apps/web auf pnpm -r wechseln. Bis heute brach die Baumpruefung an genau dieser Datei ab und erreichte apps/web nie - deshalb war das Tor am 19.08. eng gefasst; die Begruendung ist hinfaellig. desktop_linux und desktop_windows fuehren typecheck jetzt ebenfalls als needs. Ein Typfehler im Desktop-Code haette sonst weiter ein Paket erzeugt - genau das Loch, das fuer das Web-Image geschlossen wurde. Massstab bleibt unveraendert: kein Fehler ausserhalb von node_modules. Upstreams drei in matrix-js-sdk 42.2.0 bleiben ausgenommen. --- .gitlab-ci.yml | 14 +++++++++++++- apps/desktop/electron-builder.ts | 7 ++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5705f1ad26..4b649f6f19 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -162,7 +162,11 @@ typecheck: # Farbcodes muessen raus: nx faerbt auch in der Pipe, und dann steht zwischen "error" # und "TS" eine Escape-Sequenz - ein grep auf "error TS" liefe ins Leere und das Tor # waere immer gruen, ohne je zu pruefen. - - pnpm --dir apps/web lint:types 2>&1 | sed -r 's/\x1b\[[0-9;]*[mK]//g' | tee tsc.log || true + # Ganzer Baum, nicht nur apps/web: Bis 2026-08-20 brach `pnpm -r lint:types` an + # apps/desktop/electron-builder.ts ab (config.dmg moeglicherweise undefined) und + # erreichte apps/web nie - deshalb war der Job anfangs eng gefasst. Der Fehler ist + # behoben, damit deckt das Tor auch die Desktop-Pakete ab. + - pnpm -r --workspace-concurrency=1 lint:types 2>&1 | sed -r 's/\x1b\[[0-9;]*[mK]//g' | tee tsc.log || true - | if grep -E "error TS[0-9]+" tsc.log | grep -v node_modules; then echo "FEHLER: Typfehler im eigenen Code (siehe oben)." @@ -254,6 +258,10 @@ desktop_linux: image: registry.git.lab/axion1337.chat/threadnet-web/desktop-build:bullseye needs: - job: web + # Seit 2026-08-20 prueft typecheck den ganzen Baum, also auch apps/desktop - + # dann darf auch kein Desktop-Paket ohne bestandene Pruefung entstehen. + - job: typecheck + artifacts: false artifacts: true rules: - if: $CI_COMMIT_TAG =~ /^v/ @@ -295,6 +303,10 @@ desktop_windows: - windows needs: - job: web + # Seit 2026-08-20 prueft typecheck den ganzen Baum, also auch apps/desktop - + # dann darf auch kein Desktop-Paket ohne bestandene Pruefung entstehen. + - job: typecheck + artifacts: false artifacts: true rules: - if: $CI_COMMIT_TAG =~ /^v/ diff --git a/apps/desktop/electron-builder.ts b/apps/desktop/electron-builder.ts index 174fe991d4..2612cf780c 100644 --- a/apps/desktop/electron-builder.ts +++ b/apps/desktop/electron-builder.ts @@ -234,7 +234,12 @@ if (variant["mac.icon"]) { } if (variant["dmg.badgeIcon"]) { - config.dmg.badgeIcon = variant["dmg.badgeIcon"]; + // `!`, weil Upstreams Configuration-Interface oben zwar linux/win/mac/deb + // verpflichtend macht, dmg aber nicht - der Wert steht literal in config. + // Dort eine Zeile zu ergaenzen waere die schoenere Loesung und genau die + // Aenderung an Upstreams Block, die der Kommentar oben vermeiden will. + // Dasselbe Idiom nutzt die Datei weiter unten fuer win.signtoolOptions. + config.dmg!.badgeIcon = variant["dmg.badgeIcon"]; } /**