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.
This commit is contained in:
Thore Cimbal
2026-08-20 12:00:00 +00:00
parent 8ca03feffa
commit ac343e9347
2 changed files with 19 additions and 2 deletions
+13 -1
View File
@@ -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/
+6 -1
View File
@@ -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"];
}
/**