Skip to content

Adopt DemaConsulting.Rendering packages and update compliance docs - #12

Merged
Malcolmnixon merged 5 commits into
mainfrom
feature/adopt-dema-rendering
Jul 3, 2026
Merged

Adopt DemaConsulting.Rendering packages and update compliance docs#12
Malcolmnixon merged 5 commits into
mainfrom
feature/adopt-dema-rendering

Conversation

@Malcolmnixon

Copy link
Copy Markdown
Member

This pull request makes significant architectural and documentation changes to reflect the migration from in-house layout and rendering engines to off-the-shelf packages (DemaConsulting.Rendering). The SysML2Tools codebase and its documentation are updated to remove references to the custom SVG/PNG renderers and geometric layout engines, and instead document the integration and usage of the off-the-shelf rendering and layout solutions. This streamlines the design, clarifies the new dependencies, and simplifies the project structure.

Key changes include:

1. Removal of custom SVG/PNG renderer projects and documentation

  • Removed DemaConsulting.SysML2Tools.Svg and DemaConsulting.SysML2Tools.Png projects and their associated test projects from the solution file (DemaConsulting.SysML2Tools.slnx).
  • Deleted SVG/PNG renderer documentation and references throughout the design docs, including the system/unit breakdown, navigation aids, and folder mappings. [1] [2] [3] [4] [5] [6] [7] [8]

2. Migration to off-the-shelf rendering and layout packages

  • Updated subsystem and unit descriptions to show that geometric layout and rendering are now handled by the DemaConsulting.Rendering and DemaConsulting.Rendering.Layout packages, including the introduction of the LayeredPlacement adapter. [1] [2] [3] [4] [5] [6] [7]
  • Clarified that the core library now consumes off-the-shelf rendering contracts and delegates geometric placement/routing to these packages. [1] [2] [3]

3. Documentation and design file updates

  • Revised system and subsystem diagrams, navigation aids, and design introductions to reflect the new architecture and dependencies. [1] [2] [3] [4] [5] [6] [7] [8]
  • Updated explanations for layout and rendering flows, and removed references to the phased introduction of custom layout engines. [1] [2] [3]

4. Project and solution structure simplification

  • Removed references to now-obsolete projects and documentation files from the solution and design YAML definitions. [1] [2] [3] [4]

5. Clarification of third-party dependencies

  • Updated notes on PNG rendering to clarify that SkiaSharp is now used via the off-the-shelf DemaConsulting.Rendering.Skia package, and documented the implications for consumers. [1] [2]

These changes collectively modernize the codebase and documentation, making maintenance easier and aligning the project with current architectural decisions.

Malcolm Nixon and others added 5 commits July 2, 2026 18:37
Replace SysML2Tools' internal copy of the SysML-agnostic layout/rendering code with the
released DemaConsulting.Rendering 0.1.0-beta.2 packages. Core now references
DemaConsulting.Rendering.Layout (transitively Rendering + Abstractions); the Tool references
the Svg and Skia renderer packages. The internal Svg and Png projects and the layout-engine,
IR, and rendering-contract sources are removed.

The four engine-using view strategies (General, Interconnection, ActionFlow, StateTransition)
are rewritten from the internal engine APIs to the public facades via a new LayeredPlacement
helper that wraps LayeredLayoutAlgorithm, plus ContainmentLayout and ConnectorRouter. beta.2
honors Direction=Down, so the vertical-flow views migrate faithfully. Stale engine and
library-type unit tests are removed; the remaining strategy and rendering tests are re-pointed
to the package namespaces. Builds green and all tests pass on net8.0/net9.0/net10.0.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the requirements, design, and verification artifacts for the layout IR, layout
engines, shared metrics, rendering contracts, theme, and the Svg/Png systems that were
deleted from the codebase and now come from the DemaConsulting.Rendering packages. Add the
packages as a DemaConsulting.Rendering OTS item (requirements + verification, each linked to
real passing SysML2Tools tests) and document the new LayeredPlacement adapter unit. Rewire
requirements.yaml, .reviewmark.yaml, the design/verification introductions, and the document
assembly definitions. lint.ps1 passes (reqstream, reviewmark, versionmark, yamllint, cspell,
markdownlint, dotnet format).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Regenerate the committed gallery renders from the sample models with the migrated layout.
Six of the eight views are byte-identical; the General (drone) and State Transition (elevator)
views shift slightly because the layered and containment algorithms in the DemaConsulting.Rendering
packages pack and space nodes marginally differently from the previous internal engine. Only those
two views' SVG and PNG outputs change.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fix migration-caused documentation staleness surfaced by the formal-review
pass over the affected review-sets:

- action-flow / state-transition strategy design: drop stale NotationMetrics
  and Theme.CleanLegMargin back-edge wording; note the ~1px cosmetic back-edge
  difference from the dropped BackEdgeEntryApproach knob.
- general strategy design: cite the ContainmentLayout.Pack / ConnectorRouter.Route
  / BoxMetrics OTS calls; labelled -> labeled.
- diagram-renderer design: drop 'future phase injects ILayoutStrategy' wording;
  mark LayoutTree / IRenderer / RenderOptions / RenderOutput as OTS-owned.
- rendering.yaml: retarget the mis-traced ILayoutStrategy requirement onto real
  end-to-end BuildLayout tests (SoftwareStructureModel/GeneralViewModel render).
- ots/dema-rendering.yaml: narrow the routing requirement wording to the tested
  evidence.
- LayeredPlacement.cs: add <exception> XML doc to Place.

Build green; lint.ps1 green.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Close the Contracts formal-review finding that rendering.yaml framed contracts
now owned by DemaConsulting.Rendering.Abstractions/Svg/Skia as subsystem-provided.
Reword the IRenderer, Theme, RenderOptions, and BuiltinThemes requirement titles
to consumption phrasing (render/style/configure using off-the-shelf ...). IDs and
traced tests are unchanged, so traceability is preserved; all referenced tests
still exist in RenderingTests.cs and pass.

lint.ps1 green.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Malcolmnixon
Malcolmnixon merged commit 2a8862b into main Jul 3, 2026
15 checks passed
@Malcolmnixon
Malcolmnixon deleted the feature/adopt-dema-rendering branch July 3, 2026 00:57
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.

1 participant