enhancement
major
minor
defect
critical
major
minor
major
#30098
Designsystem als Engine-Modul: Erstellung durch Maven anstelle einer eingecheckten Kopie mit Seals
Von bhu in der Überprüfung von !2014 (#30000) beantragt: Das Designsystem muss in tl-engine-7 untergebracht werden; generierte Stylesheets, die mit Prüfsummen eingecheckt werden, sind nicht verwaltbar.
Problem
Das Design-System-Paket (Token, Komponenten-Stylesheets, Generator, CSS-Gates, Ableitung für Kundenthemen) befindet sich im separaten Repository „TopLogic/tl-design-system“. Die generierten Stylesheets werden in „com.top_logic.layout.react/src/main/webapp/style/tl-design-system/“ kopiert, wobei jede Datei mit einem SHA-256-Hash gesichert ist; „TestDesignSystemCopy“ führt bei einer manuellen Bearbeitung zu einem Fehlschlag des Builds. Jede Änderung erfordert zwei Pull-Anfragen in zwei Repositorys, und das Paket „main“ darf nicht vor dem Repository „engine master“ ausgeführt werden.
Lösung
Vorschlag in !2014 (Kommentar 170048), Name und Ort stehen noch aus, bis bhu geantwortet hat:
- Neues Modul (vorgeschlagen: com.top_logic.design.system), das die Paketquellen enthält: src/ (Primitive, Tokens, Komponenten), tools/ (Generator, CSS-Lint, Derive), test/. Nur Node, keine npm-Abhängigkeiten.
- Erstellung über das „frontend-maven-plugin“ wie bei „com.top_logic.layout.react“: „npm run build“ generiert die Stylesheets in „target/“ und bündelt sie als Web-App-Ressourcen unter „style/tl-design-system/“; „npm test“ führt die Paket-Gates aus. Es wird nichts von dem, was generiert wird, eingecheckt.
- com.top_logic.layout.react hängt von dem Modul ab; TestDesignSystemCopy, die Seals und der Kopierschritt werden entfernt.
- Wird ohne Historie importiert (ein Commit); die Paket-Historie verbleibt im archivierten Repository „tl-design-system“, zusammen mit den zugehörigen Entscheidungsdokumenten.
- Vor !2014 zusammengeführt, das anschließend darauf rebasiert wird.