feat(examples): the Maven Central banner carries the rest of the story - #509
Merged
Conversation
DemchaAV
force-pushed
the
feat/maven-deck
branch
2 times, most recently
from
August 4, 2026 19:05
9e7f9d6 to
76bdb55
Compare
It was one slide: wordmark, coordinate, capability tags and a code to layout to document diagram. Everything a reader might do next — how the engine actually works, whether it is fast, how it behaves as documents grow — lived in a separate deck they had to be told about. Three pages now follow it in the same amber-on-navy language. The authoring pipeline and what each step guarantees; the measured comparison against iText 9 and JasperReports; how all three behave from 40 to 1000 rows. Every figure on the last two pages is read from the committed benchmark file at render time rather than typed into the layout, so refreshing the numbers is a file copy and the prose cannot drift away from them. Page 1 is unchanged and stays a canvas — it is a poster, and every element is placed by hand. The new pages are not: they carry a table and two charts that want a flow to measure them, so they are ordinary sections on the same night field the page background already paints. The .pptx gains the same three slides. The PNG preview stays the banner alone, which is what it is for. MavenBannerNativeShapeTest walks all four slides and holds the whole deck to a single rasterised element, the SVG checkmark. The table and both charts have to arrive as native shapes rather than an embedded image — the claim the last page makes, and the one a chart-rendering shortcut would quietly break.
DemchaAV
force-pushed
the
feat/maven-deck
branch
from
August 4, 2026 19:22
76bdb55 to
3b7a6eb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
maven-bannerwas one slide — wordmark, coordinate, capability tags, and a code →layout → document diagram. It is the card that goes out with a release, and it stopped
exactly where a reader's questions start: how the engine actually works, whether it is
fast, what happens as documents grow. Those answers existed, in a different deck, that
this artefact never pointed at.
What
Three pages follow the banner, in its own amber-on-navy language:
guarantees: determinism, snapshot regression, one model for both formats.
headline ratios, and the run metadata.
Every figure on the last two pages is read from the committed benchmark file at render
time rather than typed into the layout, so refreshing the numbers is a file copy and the
prose cannot drift away from them.
Page 1 is untouched and stays a canvas: it is a poster, and every element is placed by
hand. The new pages are not — they carry a table and two charts that want a flow to
measure them, so they are ordinary sections on the same night field the page background
already paints, styled from the tokens the banner already declares.
The
.pptxgains the same three slides. The PNG preview stays the banner alone, which iswhat it is for —
toImage(0, dpi)renders page one by construction.Tests
./mvnw -B -ntp clean verify→BUILD SUCCESS.MavenBannerNativeShapeTestwas asserting a single slide. Rather than bump the number itnow walks all four and holds the whole deck to one rasterised element — the SVG
checkmark in the badge. That is a real check, not a formality: the last page claims the
charts are native vector output, and a chart-rendering shortcut that embedded an image
would satisfy every other test in the repository while making that sentence false. The
deck round-trips through POI with exactly one picture across four slides.
Rendered and inspected all four pages. Two layout problems were visible and fixed rather
than shipped: the charts row overflowed onto a page of its own (the bar charts duplicated
the table and were dropped, the ratio cards moved up to join it), and the cards in a row
came out ragged because a section measures to its longest line — pinned with a zero-height
spacer, the floor the carousel already uses for the same reason.
Note on the numbers
The figures are the committed July snapshot. The fresh five-run median from this
afternoon lived in
target/benchmarks/, which my ownclean verifyruns deleted beforeit was copied into
resources/. Refreshing it is one file copy after a re-run — the deckreads whatever is committed, and nothing here depends on which snapshot that is.