You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SVGs generated by ea svg / ea spa must be fully identical to what Enterprise Architect builds — same structure, geometry, connectors, and fonts — so that generated SPA output is visually indistinguishable from EA's own SVG export.
Ea::Svg::Parity::Suite (lib/ea/svg/parity/suite.rb) already exists to drive this: it renders every diagram and compares against per-diagram EA reference SVGs (<eaid>.svg in a reference directory). It currently measures element counts only (rect, polygon, path, text), and the repository ships zero EA reference exports.
A representative set of EA-exported reference SVGs committed as parity fixtures (export from EA for a subset of the public PLATEAU models in metanorma/plateau-models — class diagrams, views with connectors, diagrams with notes/labels).
Parity::Checker extended beyond element counts: per-element geometry deltas, font face/size/weight, connector endpoints docked at the stored ports, arrowhead placement.
Parity::Suite runs in CI against the fixtures and fails on deltas.
Export reference SVGs from EA for a small fixed subset (e.g. 10 diagrams spanning the defect cases) and drop them into the parity reference directory — the suite can then produce a baseline delta report to size the remaining work.
Goal
SVGs generated by
ea svg/ea spamust be fully identical to what Enterprise Architect builds — same structure, geometry, connectors, and fonts — so that generated SPA output is visually indistinguishable from EA's own SVG export.Ea::Svg::Parity::Suite(lib/ea/svg/parity/suite.rb) already exists to drive this: it renders every diagram and compares against per-diagram EA reference SVGs (<eaid>.svgin a reference directory). It currently measures element counts only (rect,polygon,path,text), and the repository ships zero EA reference exports.Tracked defects blocking parity
source_edge/source_duid(and the QEA builder never sets them); storedwaypointsendpoints unused.font_size;FontResolveralways falls back to theme.TextRendererTypeError: can't convert nil into Floaton some diagrams: crashesea svg --alloutright, and 297/3,702 diagrams in the PLATEAU CG3 model render as metadata-only in the SPA.What "done" means
Parity::Checkerextended beyond element counts: per-element geometry deltas, font face/size/weight, connector endpoints docked at the stored ports, arrowhead placement.Parity::Suiteruns in CI against the fixtures and fails on deltas.First step
Export reference SVGs from EA for a small fixed subset (e.g. 10 diagrams spanning the defect cases) and drop them into the parity reference directory — the suite can then produce a baseline delta report to size the remaining work.