enhancement
major
minor
major
minor
minor
#29921
Renovate hinterlässt in npm-Lock-Dateien verwaiste Einträge, die der nächste Maven-Build wieder entfernt
Die Lock-Datei-Aktualisierung von Renovate verwendet eine andere npm-Version als der Maven-Build (frontend-maven-plugin mit Node 24.21.0, npm 11.19.0). Beim Update von @radix-ui/react-separator auf 1.2.0 (PR !1923) blieben die Einträge @radix-ui/react-primitive 2.1.11 und @radix-ui/react-slot 1.4.0 in com.top_logic.layout.react.wysiwyg/package-lock.json stehen, obwohl nichts mehr von ihnen abhängt; die neuen Versionen wurden stattdessen als verschachtelte Kopien unter dem aktualisierten Paket eingetragen. Der nächste npm install des Maven-Builds entfernt die verwaisten Einträge und ändert damit die versionierte Lock-Datei in jedem Arbeitsbereich, der das Modul baut.
Lösung
renovate.json:
- constraints.npm = 11.19.0: Renovate aktualisiert Lock-Dateien mit der npm-Version, die der Build benutzt (die im Node-Download der Root-POM gebündelte Version), so dass Renovates Ergebnis dem des Builds entspricht.
- postUpdateOptions: ["npmDedupe"]: Renovate führt nach jedem Update npm dedupe aus; verschachtelte Duplikate werden auf die oberste Ebene gezogen und verwaiste Einträge entfernt. Das Ergebnis ist unter einem einfachen npm install stabil.
Die Lock-Datei des Moduls com.top_logic.layout.react.wysiwyg wird einmalig dedupliziert (keine Versionsänderung, nur Zusammenlegung der Radix-Kopien). Die Lock-Dateien von com.top_logic.layout.react.mui und com.top_logic.umljs würden bei einem dedupe Patch-Versionen anheben; das bleibt den regulären Renovate-Updates überlassen.