Skip to content

Advertise the ModelJars version Central actually serves (0.1.65 to 0.1.75) - #350

Merged
bsbodden merged 1 commit into
mainfrom
docs/modeljars-version-gate
Nov 3, 2026
Merged

bsbodden merged 1 commit into
mainfrom
docs/modeljars-version-gate

Conversation

@bsbodden

@bsbodden bsbodden commented Nov 3, 2026

Copy link
Copy Markdown
Member

Five user-facing pages advertised a ten-release-old ModelJars

modeljarsVersion was 0.1.65; Central serves 0.1.75. These pages interpolate
{modeljars-version} and so all told readers to depend on 0.1.65:

docs/content/modules/ROOT/pages/ → index.adoc, langchain4j.adoc, spring-ai.adoc,
spring-boot.adoc, using-models.adoc

0.1.65 predates the ONNX intake, the speech loader, and the GLiNER and mellum catalog entries. A
reader following the docs gets a runtime that cannot load several models the catalog advertises.

It drifted silently because modeljarsVersion is documentation-only — no module depends on
ModelJars and no lockfile pins it — so no build ever resolved it.

verifyDocumentation already gates this, and it worked

I bumped the property alone; the task failed and named the next offender, twice:

Documentation cites versions that are not the current ones.
    docs/landing/index.html: org.modeljars:modeljars:0.1.65 (current 0.1.75)

then

    docs/landing/assets/js/landing.js: <modeljars> 0.1.65 (current 0.1.75)
    docs/landing/assets/js/landing.js: org.modeljars:modeljars:0.1.65 (current 0.1.75)

The second one is exactly the trap that task's own comment records from the ModelJars site — fixing
the visible page while the script generating the snippet boxes keeps emitting the stale coordinate.
landing.js carried the version eight times, once per build tool (Gradle Kotlin, Gradle Groovy,
Maven, SBT). My own grep had missed it by not including .js; the gate caught what I didn't.

No machinery is added here — it already exists and is thorough. Only the value was stale.

One gap left, deliberately not closed here

verifyDocumentation checks internal consistency against the declared property, not against Maven
Central, so the property itself can still drift from what is published. ModelJars solved this with
tools/verify-site-version.mjs, which takes Central's <release> as authority on the grounds that
"a source tag does not prove a visitor can resolve the dependency shown on the page". The same
argument applies here. That needs a network check in CI rather than in build, so it is a separate
change and not smuggled into this one.

Gates

verifyDocumentation, verifyReleaseMetadata, complianceCheck — BUILD SUCCESSFUL.

modeljarsVersion sat at 0.1.65 while Central served 0.1.75, so five user-facing pages told readers
to depend on a library ten releases old: index.adoc, langchain4j.adoc, spring-ai.adoc,
spring-boot.adoc and using-models.adoc all interpolate {modeljars-version}. 0.1.65 predates the
ONNX intake, the speech loader, and the GLiNER and mellum catalog entries, so a reader following
the documentation gets a runtime that cannot load several models the catalog advertises.

modeljarsVersion is documentation only -- no module depends on ModelJars and no lockfile pins it,
which is how it drifted without a build failing.

verifyDocumentation already gates this and did its job: bumping the property alone failed the task,
which named docs/landing/index.html, then named docs/landing/assets/js/landing.js on the next run.
The latter is the trap its own comment records from the ModelJars side -- fixing the page while the
script that generates the snippet boxes keeps emitting the old coordinate. landing.js carried the
version eight times, once per build tool.

verifyDocumentation, verifyReleaseMetadata and complianceCheck all pass.
@bsbodden
bsbodden merged commit 2ba6aa9 into main Nov 3, 2026
38 checks passed
@bsbodden
bsbodden deleted the docs/modeljars-version-gate branch November 3, 2026 16:29
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