diff --git a/KNOWN-ISSUES.md b/KNOWN-ISSUES.md new file mode 100644 index 0000000000..4cbc81c706 --- /dev/null +++ b/KNOWN-ISSUES.md @@ -0,0 +1,70 @@ +# Known Issues — Build Infrastructure & Tooling + +*Captured: 2026-04-15, branch `core-ui-split`* + +## 1. NPE in EcoreGeneratorFragment2 when genModel is not configured + +**Issue:** dsldevkit/dsl-devkit#1309 +**File:** `com.avaloq.tools.ddk.xtext.generator/src/.../ecore/EcoreGeneratorFragment2.java:93-94` +**Since:** commit `45aed05d7` (Feb 2022) + +`EcoreGeneratorFragment2.generate()` passes null `genModel` to `CustomClassAwareEcoreGenerator`, which NPEs at `URI.createURI(genModel)`. The fragment is used in `GenerateTestLanguage.mwe2` line 68 with empty config `{}`. The standard `EMFGeneratorFragment2` on line 63 derives genModel automatically — this custom DDK fragment doesn't. + +**Fix options:** Guard against null, derive from language config, or remove the fragment from the MWE2 workflow if redundant. + +--- + +## 2. No "run all generators" launch config or Maven-based generation + +**Files:** `com.avaloq.tools.ddk.workflow/src/.../Ddk.mwe2` (aggregator exists but no launch config) +**Launch configs exist only for:** GenerateCheck, GenerateCheckCfg, GenerateTestLanguage + +`Ddk.mwe2` chains all DDK language generators (Expression, Export, Format, Scope, Check, CheckCfg, Valid, TypeModel, ModelInference) but has no Eclipse launch config. There's also no `xtext-maven-plugin` configured in any pom.xml, so generation can only happen from Eclipse by right-clicking individual `.mwe2` files. This blocks CI-based regeneration and is relevant to the core-ui-split migration (pure Maven modules could use `xtext-maven-plugin`). + +--- + +## 3. itemis ANTLR p2 repository is dead + +**URL:** `https://download.itemis.com/updates/releases/2.1.1/` → HTTP 404 +**Direct jar still works:** `https://download.itemis.com/antlr-generator-3.2.0-patch.jar` → HTTP 200 +**Maven Central alternative:** `org.eclipse.xtext:xtext-antlr-generator:2.1.1` + +Xtext's `AntlrToolFacade` (in `org.eclipse.xtext.xtext.generator`) tries to load `de.itemis.xtext.antlr.toolrunner.AntlrToolRunner` from the classpath. If not found, it auto-downloads the jar to `./.antlr-generator-3.2.0-patch.jar`. The `.gitignore` files in `workflow/` and `sample.helloworld/` correctly hide these auto-downloads. No p2 repository anywhere currently hosts this feature — not Eclipse Orbit, not the Xtext update site (it's declared as `optional='true' greedy='false'`). Source: `github.com/xtext/org.xtext.antlr.generator`. + +--- + +## 4. MWE2 workflow generates .xtend files that conflict with xtend-gen + +Running `GenerateTestLanguage.mwe2` creates `.xtend` stub files in `src/` directories (e.g., `TestLanguageScopeProvider.xtend`, `TestLanguageProposalProvider.xtend`). These conflict with the `.java` files already in `xtend-gen/`, causing "type is already defined" errors. The `.xtend` files are generated by Xtext's `XtextGenerator` as user-editable stubs — but the project already has compiled versions in `xtend-gen/`. Either the `xtend-gen/` files should be cleaned before regeneration, or the `.xtend` stubs should be suppressed if they already exist. + +**Affected modules:** `check.test.runtime`, `check.test.runtime.ui` + +--- + +## 5. dsl-devkit structural issues (build infrastructure) + +### 5a. No root pom.xml +The aggregator POM lives at `ddk-parent/pom.xml` instead of the repo root. All `` entries use `../` relative paths. You must `cd ddk-parent` to build. Standard Maven convention is root pom.xml as aggregator. + +### 5b. ddk-parent is both aggregator and parent +Normally these are separate — a root aggregator POM and a parent POM that child modules inherit. Combining them in a subdirectory creates the `../` path issue and makes `-pl` usage awkward. + +### 5c. ddk-target uses old packaging +Uses `pom` packaging with `build-helper-maven-plugin` to attach the `.target` file. Modern Tycho uses `eclipse-target-definition` packaging natively (as demonstrated in the PoC at `eclipse-maven-split/com.example.target/`). + +--- + +## 6. `-am` (also-make) broken for all Tycho modules + +Not a bug — fundamental to manifest-first builds. All inter-module dependencies are in `MANIFEST.MF` (`Require-Bundle`), not in `pom.xml`. Maven's `-am` only reads POM dependencies, so it can't resolve the build graph. Demonstrated with `check.ui` which has 7 in-project `Require-Bundle` entries but zero `` elements in its pom.xml. + +**Fix:** The core-ui-split migration addresses this — pure Maven `jar` modules declare dependencies in pom.xml, making `-am` work. For Tycho modules that stay Tycho, mirroring `Require-Bundle` entries as POM `` elements would also work. + +--- + +## 7. Empty/orphaned modules + +- `com.avaloq.tools.ddk.xtextspy/` — zero source files, only `bin/` and `target/` directories +- `com.avaloq.tools.ddk.xtextspy.test/` — zero source files, only `bin/` and `target/` directories + +These appear to be leftover from removed functionality. Listed in `ddk-parent/pom.xml` as modules but contain no code. diff --git a/com.avaloq.tools.ddk.check.runtime.core/META-INF/MANIFEST.MF b/com.avaloq.tools.ddk.check.runtime.core/META-INF/MANIFEST.MF index 0d377cc675..6a855f856c 100644 --- a/com.avaloq.tools.ddk.check.runtime.core/META-INF/MANIFEST.MF +++ b/com.avaloq.tools.ddk.check.runtime.core/META-INF/MANIFEST.MF @@ -7,6 +7,7 @@ Bundle-Vendor: Avaloq Group AG Bundle-RequiredExecutionEnvironment: JavaSE-21 Require-Bundle: org.eclipse.core.resources, org.eclipse.core.runtime, + org.eclipse.text, org.eclipse.xtext, org.eclipse.xtext.xbase.lib, org.apache.commons.lang3, diff --git a/com.avaloq.tools.ddk.check.test.runtime/GenerateTestLanguage.mwe2.launch b/com.avaloq.tools.ddk.check.test.runtime/GenerateTestLanguage.mwe2.launch index 8bef09dbbd..303866e781 100644 --- a/com.avaloq.tools.ddk.check.test.runtime/GenerateTestLanguage.mwe2.launch +++ b/com.avaloq.tools.ddk.check.test.runtime/GenerateTestLanguage.mwe2.launch @@ -10,7 +10,6 @@ - diff --git a/ddk-parent/readme.txt b/ddk-parent/readme.txt deleted file mode 100644 index 04452d6889..0000000000 --- a/ddk-parent/readme.txt +++ /dev/null @@ -1 +0,0 @@ -Download antlr-generator-3.2.0.jar into this folder. \ No newline at end of file diff --git a/ddk-target/ddk-antlr.target b/ddk-target/ddk-antlr.target deleted file mode 100644 index e9b22d249b..0000000000 --- a/ddk-target/ddk-antlr.target +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file