Skip to content

test(qa): PPTX boundary guards, flagship deck example, CI install step#416

Open
DemchaAV wants to merge 2 commits into
developfrom
feature/pptx-guards-examples
Open

test(qa): PPTX boundary guards, flagship deck example, CI install step#416
DemchaAV wants to merge 2 commits into
developfrom
feature/pptx-guards-examples

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Why

The PPTX backend's module boundaries had no bytecode-level guards (nothing stopped POI from leaking into the engine or a template, or the PDF backend from growing a PPTX dependency), the ShapeOutline exhaustiveness guard only proved the PDF dispatch chains, and the flagship Engine Deck rendered only to PDF — so the new backend had no dev-facing example and the examples CI job could not have resolved it anyway.

What

  • qa guards. graph-compose-render-pptx joins the qa test classpath. CrossModuleBoundaryArchTest gains three rules: POI stays a render-backend implementation detail (only the PPTX backend packages — and, for the day render-docx joins this classpath, the DOCX semantic backend — may touch it), the render backends stay template-agnostic, and the PDF backend must not depend on the PPTX artifact (the reverse dependency is by design: the PPTX backend reuses the PDF measurement stack). ShapeOutlineRenderCoverageTest now renders every permit through all three surfaces on both fixed-layout backends; PptxInlineGeometry.drawOutline gains the terminal IllegalStateException that makes the inline PPTX chain discriminating — without it a new outline kind would silently render nothing and the guard would still pass.
  • Flagship example. EngineDeckPptxExample renders the exact Engine Deck composition (shared package-private compose(...) seam — banner, pipeline, two benchmark pages with tables and native charts) as a geometry-identical .pptx via buildPptx(); registered in GenerateAllExamples, examples README row extended.
  • CI. The examples job installs graph-compose-render-pptx before generating, mirroring the render-docx step; the test-job reactor comment now describes render-pptx as the fixed-layout backend.
  • README. Backend descriptions present graph-compose-render-pptx as the fixed-layout, geometry-identical deck backend (clipped regions land as pixel-exact pictures) with its own quick-start dependency row, replacing the stale "semantic export" framing.

Verification

  • New guards green: CrossModuleBoundaryArchTest 6/6, ShapeOutlineRenderCoverageTest 4/4 (every permit × three surfaces × two backends).
  • EngineDeckPptxExample generated locally: 4 slides matching the 4 PDF pages; rasterized side-by-side previews of the banner and benchmark pages are visually identical.
  • Full reactor gate green: clean verify across core, render-pdf, render-docx, render-pptx, templates, testing, root, bundle, qa, coverage.

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