chore(examples): stop the master showcase from dating itself - #470
Merged
Conversation
DemchaAV
changed the base branch from
chore/refresh-benchmark-datasets
to
develop
July 27, 2026 08:50
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
force-pushed
the
chore/master-showcase-timeless
branch
from
July 27, 2026 08:59
99f693d to
6ddd47f
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
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-templateandfeature-richat 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:
banner.properties, via a new sharedExampleVersionPerfBaseline, shown with its capture date ("One machine, 2026-07-26")The examples module puts
baselines/current-speed-full.jsonon 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
SAMPLEwhere 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
examples41/41, full eight-module reactorclean verify— BUILD SUCCESS,javadoc:javadocclean (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
MasterShowcaseExamplehas no layout snapshot —twin-output.jsonguards 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.