Skip to content

[Add] Vendor Sirius + GMF ecore metamodels with ECoreNetto validation (closes #51)#63

Merged
samatstariongroup merged 1 commit into
developmentfrom
GH51
Jul 11, 2026
Merged

[Add] Vendor Sirius + GMF ecore metamodels with ECoreNetto validation (closes #51)#63
samatstariongroup merged 1 commit into
developmentfrom
GH51

Conversation

@samatstariongroup

Copy link
Copy Markdown
Member

Closes #51 (Phase A of the .aird support epic #50).

Vendors the Sirius + GMF Ecore metamodels behind the .aird diagram/representation format and
proves ECoreNetto loads them fully resolved — the input for generating the .aird object model
(#52). No production code; vendoring + validation + docs only.

What's here

  • resources/ecore-sirius/ — 5 vendored .ecore files (EPL-2.0) with LICENSE-EPL-2.0.md
    and a provenance README.md:
    • viewpoint.ecore, diagram.ecore, sequence.ecore, table.ecore — eclipse-sirius/sirius-desktop v7.6.0
    • notation.ecore — eclipse-gmf-runtime/gmf-notation 9655137
    • Declared nsURIs match the TestData/**/*.aird fixtures exactly (viewpoint/diagram/table 1.1.0, sequence 2.0.0, GMF notation 1.0.3).
  • NOTICE — extended with the Sirius (4) and GMF (5) third-party entries.
  • docs/sirius-metamodel-inventory.md — 20 packages across the 5 files; the per-package
    EClass/EEnum/EDataType table (source of truth for the test) and the dependency graph.
  • docs/sirius-ecorenetto-validation.md — the verdict + how it's proven.
  • Auriga.CodeGenerator.Tests/SiriusMetamodelValidationTestFixture.cs — 6 regression tests
    mirroring the Capella harness; the test csproj copies resources/ecore-sirius/*.ecore to
    Data/ecore-sirius/.

Modifications to the upstream ecores (documented in the README/NOTICE)

  1. Cross-file reference paths rewritten to self-contained form (same as the Capella set):
    ../../.../X.ecore#...X.ecore#..., and Ecore platform:/plugin/... refs →
    http://www.eclipse.org/emf/2002/Ecore#....
  2. Removed 10 documentation-only TagValues deprecation-marker annotations in diagram.ecore
    whose references point into another file's EAnnotation detail entries
    (viewpoint.ecore#//%Tags%/@details.N) — a fragment form ECoreNetto cannot resolve. No
    EClass, feature, supertype, or enumeration affected.

Validation

SiriusMetamodelValidationTestFixture asserts, against a single ECoreNetto ResourceSet:

  • 5/5 files load with 0 diagnostics
  • counts match the inventory: 20 packages, 454 EClass, 39 EEnum, 12 EDataType
  • 0 unresolved supertypes/feature types (520 supertype + 959 feature-type refs)
  • cross-file inheritance resolves (diagram/table/sequence → viewpoint; sequence → diagram)
  • eOpposite 28 declared = 28 resolved, all mutual
  • annotations preserved

Full Auriga.CodeGenerator.Tests suite: 84 passed, 0 failed (6 new + existing Capella/scaffold
tests unaffected — the Capella 21-file assertions are untouched since the Sirius files live in a
separate directory).

@github-actions

Copy link
Copy Markdown
Contributor
Package Line Rate Branch Rate Complexity Health
Auriga 38% 54% 15574
Auriga.CodeGenerator 90% 77% 404
Auriga.Extensions 97% 88% 48
Auriga.Reporting 0% 0% 12
Auriga.Xmi 25% 13% 40507
Summary 28% (27148 / 96125) 22% (10771 / 49070) 56545

@sonarqubecloud

Copy link
Copy Markdown

@samatstariongroup samatstariongroup merged commit f73b2a3 into development Jul 11, 2026
9 checks passed
@samatstariongroup samatstariongroup deleted the GH51 branch July 11, 2026 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Add] A1 — Vendor the Sirius + GMF Ecore metamodels

1 participant