Repository navigation
fix(build): OCL-Prüfung und C-OCL-Vorschläge im Deployment - #183
Merged
Merged
Conversation
Im Deployment war die OCL-Pruefung aus und der C-OCL-Editor machte keine
Vorschlaege. Drei Fehler im Plugin-Build (scripts/build-plugins.js):
- externalFn nahm alle @emfts/* aus dem Bundle, die Laufzeit stellt aber
nur die sharedModules bereit. @emfts/ocl.engine und ocl.langium blieben
nackte Importe ("Failed to resolve module specifier"). Jetzt bleibt
genau SHARED_MODULES extern, alles andere wird gebuendelt - eine Liste
statt zwei, die mitwachsen mussten.
- Worker per new URL('...worker.ts', import.meta.url) baut der
Library-Build nicht: der OCL-LSP-Worker (und der FEEL-Worker) landete
als roher TypeScript-Text in einer data:video/mp2t-URL. Jetzt ueber
Vites ?worker-Import, als ES-Modul-Worker gebaut.
- Worker-Dateien wurden unter /assets/ statt /plugins/<id>/assets/
gesucht (Monaco-Worker 404). base './' adressiert sie relativ zum
Plugin.
Nach self. kamen nur allgemeine OCL-Operationen, keine Features der Klasse: - Die Kontextklasse steht im C-OCL punktgetrennt (university.Student), der Editor schrieb sie so in den Dokumentkopf. OCL trennt Pakete mit ::, der Kopf liess sich nicht parsen und der Sprachserver kannte den Typ von self nicht. oclContextName wandelt um. - Die Paketregistrierung beim Sprachserver brach am ersten eingebauten Paket ab (Ecore hat keine Resource zum Serialisieren) - die Modelle des Workspace kamen nie an. Jetzt je Paket, eingebaute uebersprungen.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Im Deployment (gene.modelatlas.cloud) war die OCL-Prüfung aus, und der C-OCL-Editor machte keine Vorschläge. Gefunden im MCP-Browser am ausgelieferten Build, bestätigt an einem lokalen Produktions-Build.
Ursachen
1. OCL-Engine nicht ladbar (
ui-problems-panel)scripts/build-plugins.jsnahm alle@emfts/*aus dem Bundle. Die Laufzeit stellt aber nur diesharedModulesbereit.@emfts/ocl.engineund@emfts/ocl.langiumblieben als nackte Importe stehen:Failed to resolve module specifier '@emfts/ocl.engine'. Folge: „0 constraints from 0 package(s)“, keine Validierung, keine C-OCL-Filter.→ Extern bleibt genau
SHARED_MODULES, alles andere wird gebündelt. Es gibt nur noch eine Liste statt zwei, die gleich gehalten werden mussten (vgl. b8f4c06).2. LSP-Worker kaputt (
transformation,dmn-editor)new URL('../workers/ocl-lsp-worker.ts', import.meta.url)baut der Library-Build nicht als Worker. Der rohe TypeScript-Text landete in einerdata:video/mp2t-URL. Der Worker startete nicht, die LSP-Initialisierung lief in den Timeout. Beim FEEL-Worker war es genauso.→ Vites
?worker-Import,worker.format: 'es'.3. Monaco-Worker 404 (
transformation,xml-editor,ui-uimodel-forms)Der Worker wurde unter
/assets/…statt/plugins/<id>/assets/…gesucht, und Monaco wich auf den Haupt-Thread aus.→
base: './': Die Worker-Dateien werden relativ zum Plugin adressiert.4. Keine Features nach
self.(C-OCL-Editor)context university.Student) in den Dokumentkopf. Das ist kein gültiges OCL, und der Sprachserver kannte den Typ vonselfnicht. →oclContextNamewandelt inuniversity::Studentum.Geprüft
build-plugins.js+prepare-plugins, ausgeliefert pervite preview) mit demuni-Workspace:self.schlägtkurse,matrikelnummer,nameundunivor@emfts-Importe, Worker unterassets/relativ zum Plugin, Worker-Bundles ohne offene Importe.Nicht in diesem PR
icons-cwmliefert im Deployment 404, obwohl es im Release-Build enthalten ist.dmn-editornimmt der Release-Workflow absichtlich heraus.