Skip to content

Implement auto-layout algorithm and restructure gallery documentation#22

Merged
Malcolmnixon merged 3 commits into
mainfrom
feature/auto-layout-algorithm
Jul 15, 2026
Merged

Implement auto-layout algorithm and restructure gallery documentation#22
Malcolmnixon merged 3 commits into
mainfrom
feature/auto-layout-algorithm

Conversation

@Malcolmnixon

Copy link
Copy Markdown
Member

This pull request introduces and documents a new AutoLayoutAlgorithm meta-algorithm to the Rendering.Layout system, updates the architectural and design documentation to reflect this addition, and improves review coverage for new and existing layout engine units. It also adds documentation for SonarScanner for .NET integration and makes minor improvements to gallery documentation and spell-check configuration.

Rendering.Layout algorithm and documentation enhancements:

  • Added the AutoLayoutAlgorithm meta-algorithm, which automatically selects the best layout algorithm for each connected component and packs the results together. Updated all relevant documentation (README.md, docs/design/introduction.md, docs/design/rendering-layout.md) to describe this new algorithm and its capabilities. [1] [2] [3] [4] [5] [6] [7] [8] [9]

  • Updated system diagrams and lists to include new engine units (LayoutTreePacker, EdgeCountGapWidener) and clarified the composition of the engine and algorithm units in the design documentation. [1] [2] [3]

Review coverage improvements:

  • Added reviewmark entries for AutoLayoutAlgorithm, LayoutTreePacker, and EdgeCountGapWidener, ensuring these new units and their tests are included in the review process. [1] [2]

SonarScanner integration documentation:

  • Added a new design document describing the integration and usage of SonarScanner for .NET with the build pipeline, clarifying its role in the analysis and quality reporting workflow. [1] [2]

Other improvements:

  • Clarified gallery entry documentation to specify correct placement in group README files.
  • Extended the spell-check dictionary with terms relevant to new features and tooling.

Malcolm Nixon and others added 3 commits July 15, 2026 16:42
…ew findings

Adds the "auto" meta-layout-algorithm that routes each connected component
of a graph to the layered, containment, or hierarchical engine based on its
shape, then packs the results together. Adds edge-count-aware gap widening
shared across the containment and hierarchical algorithms via a common
EdgeCountGapWidener helper.

Restructures docs/gallery/ into topic-based groups, each with its own
README, and rewrites the top-level docs/gallery/README.md as a marketing
index that links to the group pages. Enforces that every gallery image is
produced via LayoutEngine.Layout, isolating the one hand-built LayoutTree
example into a dedicated custom-rendering group.

Remediates all 16 findings from the formal-review pass across the 18
review-sets covering this branch's changes:
- Fixes a real ComponentPacker/LayeredLayoutPipeline double axis-swap bug
  by making AxisTransform.NormalizeInputAxes idempotent per graph.
- Strengthens a weak AutoLayoutAlgorithm test to actually assert that a
  graph-level NodeSpacing override reaches a split-off component.
- Splits several compound reqstream requirements (hierarchical-layout-
  algorithm, containment-layout, containment-layout-algorithm) into atomic,
  independently-verifiable requirements, updating design/verification docs
  and coverage tables to match.
- Fixes stale documentation: removed a nonexistent orthogonal-router test
  reference, corrected ConnectorRouter's Connection XML doc describing
  obstacle handling, and added missing dependencies to the connector-router
  design doc.
- Fixes GalleryShowcaseTests.cs: adds AAA-style Arrange/Act-Assert comments
  to every fact, removes an orphaned XML doc summary, and adds the missing
  Gallery_ContainmentManySmallWideBoxes_RendersSvg fact.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Rendering-OTS-SonarScanner requirement had no satisfying test,
failing dotnet reqstream --enforce (333 of 334 requirements satisfied).
Removes the OTS reqstream/design/verification trio, the requirements.yaml
include, the .reviewmark.yaml review-set entry, and the catalog entry in
docs/design/ots.md. The actual SonarScanner for .NET tool install and CI
usage (dotnet-tools.json, build.yaml, versionmark.yaml) are unaffected.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@Malcolmnixon
Malcolmnixon merged commit d875755 into main Jul 15, 2026
6 checks passed
@Malcolmnixon
Malcolmnixon deleted the feature/auto-layout-algorithm branch July 15, 2026 21:26
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