Skip to content

fix(emf): remove the two things that would break an examiner's import - #137

Merged
ExtraToast merged 1 commit into
mainfrom
emf-eclipse-import-prerequisites
Sep 16, 2026
Merged

ExtraToast merged 1 commit into
mainfrom
emf-eclipse-import-prerequisites

Conversation

@ExtraToast

Copy link
Copy Markdown
Contributor

Part of #132, and deliberately does not close it.

What this branch does

#132 asks for a clean Eclipse import to be proved by hand. That needs a person at the IDE, which is why the issue carries no status: ready-for-agent and why this leaves it open. What it does is remove two of the failures the issue predicts, so that session confirms rather than debugs.

m2e had no lifecycle mapping for exec-maven-plugin, which is how both metamodels generate their typed Java. Without one an import reports "Plugin execution not covered by lifecycle configuration" against every such execution, and a grader meets a red workspace before reading a line of the model. The mapping is declared in pluginManagement: Maven ignores it, m2e reads it. runOnIncremental is false, because regenerating a metamodel on every keystroke helps nobody and a full build still runs it.

#87 made this worse a few hours ago without noticing, by adding a second execution for the target metamodel. The issue named the risk against one generator and there are now two.

The generated sources do not exist at import time. build.properties names target/generated-sources/emf/ as a source folder, and on a clean clone that directory is not there: import first and the workspace opens with every reference to a generated package unresolved. emf/README.md now opens with the terminal build and says why it is needed, which is the second acceptance criterion taking its own "or" branch.

The README also notes that five of the six modules are eclipse-plugin packaging, which m2e maps through the Tycho configurator, so the importer may offer to install a connector and ask to restart.

What was checked, and what was not

Every file the instructions name exists: emf.target, model/skeleton.ecore, model/empty.xmi, model/skeleton.ocl, model/notes.xmi, identity.launch and file.launch.

Nothing here proves the import. Whether the target platform resolves, whether the OCL document reports skeletonHasAnApplication on empty.xmi, and whether the two launch configurations write their output are all still open, and all still #132's.

Verification

./mvnw -B -ntp verify from emf/ exits 0, so the lifecycle-mapping block is inert to Maven, which is the point of it. Root npm run verify green at 782 tests.

#132 asks for a clean Eclipse import to be proved by hand, which needs a person
at the IDE. Two of the failures it predicts can be removed first, so that
session confirms rather than debugs.

**m2e had no lifecycle mapping for `exec-maven-plugin`**, which is how both
metamodels generate their typed Java. Without one, an import reports "Plugin
execution not covered by lifecycle configuration" against every such execution,
and a grader meets a red workspace before reading a line of the model. The
mapping is declared in `pluginManagement`: Maven ignores it, m2e reads it.
`runOnIncremental` is false, because regenerating a metamodel on every
keystroke helps nobody and a full build still runs it. #87 made this worse
without noticing, by adding a second execution.

**The generated sources do not exist at import time.** `build.properties` names
`target/generated-sources/emf/` as a source folder, and on a clean clone that
directory is not there: import first and the workspace opens with every
reference to a generated package unresolved. The README now opens with the
terminal build and says why, which is the second acceptance criterion taking
its own "or" branch.

The README also notes that five of the six modules are `eclipse-plugin`
packaging, which m2e maps through the Tycho configurator, so the importer may
offer to install a connector.

Every file the instructions name was checked against the tree: `emf.target`,
`skeleton.ecore`, `empty.xmi`, `skeleton.ocl`, `notes.xmi`, `identity.launch`
and `file.launch` all exist. What remains is the import itself, and the
issue stays open for it.
@ExtraToast ExtraToast added type: chore Maintenance work without intended behavior change. area: deploy homelab-deploy, deploy-v2, manifests, and rollout flow. component: build Gradle, npm, packaging, or local build tooling. priority: P1 High; important and should be handled in the current iteration. labels Sep 16, 2026
@ExtraToast ExtraToast self-assigned this Sep 16, 2026
@github-actions

Copy link
Copy Markdown

Shape

bucket files additions deletions
documentation 1 +10 -1
tooling 1 +31 -0

Coverage

Baseline: main @ 21cba92.

metric this branch main diff
statements 99.20% 99.20% 0.00
branches 96.56% 96.56% 0.00
functions 100.00% 100.00% 0.00
lines 99.13% 99.13% 0.00

This pull request changed no covered line.

@ExtraToast
ExtraToast merged commit 4588083 into main Sep 16, 2026
23 checks passed
@ExtraToast
ExtraToast deleted the emf-eclipse-import-prerequisites branch September 16, 2026 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: deploy homelab-deploy, deploy-v2, manifests, and rollout flow. component: build Gradle, npm, packaging, or local build tooling. priority: P1 High; important and should be handled in the current iteration. type: chore Maintenance work without intended behavior change.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant