Skip to content

chore(examples): stop the master showcase from dating itself - #470

Merged
DemchaAV merged 2 commits into
developfrom
chore/master-showcase-timeless
Jul 27, 2026
Merged

chore(examples): stop the master showcase from dating itself#470
DemchaAV merged 2 commits into
developfrom
chore/master-showcase-timeless

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Stacked on #466 — the speed figures are read from the baseline that PR refreshes. Retarget this to develop before merging #466, or GitHub closes it.

Why

The master showcase was a v1.5 release-status report, re-committed at every release since — most recently by the v2.1.0 release commit.

It announced what "v1.5 lands", carried an action item to tag v1.5.0 once develop merges, confirmed a release window for June 2026, and quoted invoice-template and feature-rich at figures typed in during v1.5 — 13.4 ms and 36.8 ms, against 6.6 ms and 54.2 ms measured today. Its PDF metadata subject and running footer named v1.5 as well.

The class javadoc calls the document fictional, and it is. But a reader of the PDF never sees the javadoc — they see the real repository name, real benchmark scenario names and real version numbers. The props and the claims were indistinguishable, and the claims had rotted.

Substituting fresh values would have been wrong twice: it rots again on the same schedule, and "v1.5 lands the cinematic features" does not become true by writing 2.1 — those features did land in 1.5.

What

Nothing datable is written out any more. The narrative names no version and no date. The two facts worth stating are read at render time:

  • version → the filtered banner.properties, via a new shared ExampleVersion
  • speed → the committed perf baseline, via a new PerfBaseline, shown with its capture date ("One machine, 2026-07-26")

The examples module puts baselines/current-speed-full.json on its own classpath from where the gate keeps it, rather than holding a second copy — the drift that produced this problem in the first place.

The approval seal reads SAMPLE where it read a quarter and a year. That kills the last dated prop and makes the document's fictional half visible in the render instead of only in the javadoc.

The version lookup moves into the shared helper because it already existed in EngineDeckV2Example, whose own comment explains why it is derived — "a literal would keep announcing whichever line it was typed on". That is precisely the failure repaired here in a second file, so a second private copy would have been the next drift.

Tests

examples 41/41, full eight-module reactor clean verify — BUILD SUCCESS, javadoc:javadoc clean (the one warning is the pre-existing platform-encoding notice).

Regenerated all five committed artifacts so the formats agree: both PDFs, both PPTX twins, and the site screenshot at its original 892x1262.

Noted, not fixed here

MasterShowcaseExample has no layout snapshottwin-output.json guards native shape counts through the PPTX twin, which is why a full rewrite of the document's prose left the suite green. The most prose-heavy flagship is the one with no geometry guard.

@DemchaAV
DemchaAV changed the base branch from chore/refresh-benchmark-datasets to develop July 27, 2026 08:50
DemchaAV added 2 commits July 27, 2026 09:51
The showcase was a v1.5 release-status report, re-committed at every release
since. It announced what "v1.5 lands", carried an action item to tag v1.5.0
once develop merged, confirmed a release window for June 2026, and quoted two
benchmark scenarios by name at figures typed in during v1.5. Its metadata
subject and footer named v1.5 as well. The class javadoc calls the document
fictional, but a reader of the PDF sees the real repository name, real
benchmark scenario names and real version numbers, so the props and the claims
were indistinguishable.

Substituting fresh values would have been wrong twice over: it rots again on
the same schedule, and "v1.5 lands the cinematic features" does not become true
by writing 2.1 - those features did land in 1.5.

So the narrative no longer names a version or a date, and the two facts worth
stating are read at render time instead. The version comes from the filtered
banner.properties, the speed figures from the committed perf baseline shown
with its capture date. The examples module now puts that baseline on its own
classpath from where the gate keeps it, rather than holding a second copy that
would drift from the first.

The approval seal reads SAMPLE where it read a quarter and a year, which also
makes the document's fictional half visible in the render rather than only in
the javadoc.

The version lookup moves to a shared helper. It existed only in the deck, and
the deck's own comment explains why it exists - a literal keeps announcing
whichever line it was typed on - which is the same failure this commit repairs
in a second file.
…tion left behind

Removing majorMinor from the deck deleted the method but not its javadoc, so
the block was left heading logo() and documenting an @param version that
method does not take.

The showcase javadoc promised "three pages of designed content"; the document
renders two.

The examples job gates on the `code` path filter, which did not list
baselines/. Now that the module renders figures from the committed baseline, a
baseline-only refresh would have changed generated output while skipping the
job that checks it.

PerfBaseline degraded inconsistently: a missing resource was swallowed while a
malformed one threw from a static initializer and would have taken down every
example in the module, not just the one quoting a figure. Loading now never
throws, and a scenario whose figures are absent or non-numeric is treated as
absent rather than read as 0.0 - which would have rendered a plausible
"0.0 ms avg, 0 docs/sec" instead of admitting nothing was measured.

That fallback is honest at render time and wrong to discover in a published
PDF, so PerfBaselineTest asserts the resource really is on the classpath with
the scenarios the showcase quotes. Verified by pointing the pom entry at a
filename that does not exist: on a clean build two of its three tests fail with
the intended message.
@DemchaAV
DemchaAV force-pushed the chore/master-showcase-timeless branch from 99f693d to 6ddd47f Compare July 27, 2026 08:59
@DemchaAV
DemchaAV merged commit e73aa05 into develop Jul 27, 2026
12 checks passed
@DemchaAV
DemchaAV deleted the chore/master-showcase-timeless branch July 27, 2026 09:04
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