build: restore the core javadoc ratchet, red on CI since 8ff823ec - #347
Conversation
CI has been failing on every job of every commit since 8ff823e, on core's failOnWarnings ratchet: 12 javadoc warnings across PTypeIO, DType, EditionId and MemorySize. Four public members were missing their @param/@return tags, and four compact constructors and a factory opened with a block tag and no prose. All are what CLAUDE.md asks for in core; none of them is new code. They went unnoticed because a local `./mvnw verify` does not reproduce them. The javadoc plugin's doclint enables its `missing` group on the Zulu build setup-java resolves for '25'/'26' but not on the older Zulu 25.0.2 patch installed here, so the ratchet is stricter on CI than on this machine. Reproduced locally with a direct `javadoc -Xdoclint:all` over core.io and core.model, which lists exactly the 12 CI reports; that command now reports none. Fixing the gaps rather than pinning the JDK or relaxing the ratchet: the tags were genuinely missing, and a check that only fires on some JDKs is still a check worth passing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Correction — the explanation in this PR's description is wrong. The fix itself is right (CI went green on all six jobs, and I claimed local and CI diverged because
So local and CI have always been at parity, and What I cannot explain is why my own Also worth noting for anyone reading the history: this PR's commit message carries the same wrong explanation. The change is sound; the reasoning in it is not. |
CI has been failing on every job of every commit since
8ff823ec— six matrix jobs, all red, oncore'sfailOnWarningsjavadoc ratchet. I noticed while trying to merge #346 and foundmainalready red, so this is not a regression from the recent decode work; it predates all of it.12 warnings, none of them new code:
PTypeIO#set@paramforseg,offset,ptype,bitsPTypeIO#copyArray@paramforptype,typedArray,count; no@returnDType#decimal@param, no main descriptionDType.Extensioncompact ctorEditionIdcompact ctorMemorySizecompact ctorAll are exactly what CLAUDE.md asks for in
core("Every public method: main prose description,@paramper parameter,@return").Why nobody saw it locally
A local
./mvnw verifydoes not reproduce it. The javadoc plugin's doclint enables itsmissinggroup on the Zulu buildsetup-javaresolves for'25'/'26', but not on the Zulu 25.0.2 patch installed on this machine — so the ratchet is genuinely stricter on CI than locally, on the same vendor and major version.I reproduced it locally with a direct
javadoc -Xdoclint:all -sourcepath core/src/main/java io.github.dfa1.vortex.core.io io.github.dfa1.vortex.core.model, which lists exactly the 12 CI reports. That command now reports zero. (It is stricter still than the plugin — it also flags generatedcore.fbscode that CI does not — so it over-approximates, which is the safe direction for a gate.)Why fix the tags rather than pin the JDK or relax the ratchet
The tags were genuinely missing; the stricter JDK was right. A check that only fires on some JDKs is still a check worth passing, and the alternative — pinning CI to the JDK that doesn't notice — would leave the docs wrong and the ratchet decorative.
Worth considering separately: the local/CI strictness gap will keep biting. Either the plugin should pass
-Xdoclint:all,-missingexplicitly so both agree, or the build should pin a JDK patch. I have not done either here — it is a build-policy call, not a bug fix../mvnw verifygreen locally across all 17 modules.🤖 Generated with Claude Code