You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
maven-javadoc-plugin binds failOnError and skip to the user properties maven.javadoc.failOnError and maven.javadoc.skip. Those can be supplied with -D on the command line, where they never appear in help:effective-pom output. So adding -Dmaven.javadoc.failOnError=false to the real deploy command in .github/workflows/publish.yml (the deploy step) would silence javadoc errors for the actual Central release while both guards keep reporting "javadoc strictness confirmed".
This is the same self-concealing shape as #197 → #200 → #203, relocated one more layer out: from the root pom, to a module pom, to the CI invocation.
Evidence
scripts/check-javadoc-strictness.py header states this limitation explicitly ("It cannot see a `-Dmaven.javadoc.failOnError=false` added to a workflow's own mvn command line").
CONTRIBUTING.md repeats it in the "Build & verify" section.
The deploy command in publish.yml and the sweep's own help:effective-pom invocation in ci.yml are independent hardcoded strings — nothing keeps them consistent.
This needs a design decision, hence triage not auto-implement.
Option A – assert the workflow commands themselves: a CI step that scans .github/workflows/*.yml for -Dmaven.javadoc. / -Ddoclint= / -Dmaven.javadoc.skip on any mvnw line and fails. Cheap, but it is a literal-string grep at a new layer (the same objection that got the grep option rejected in #200).
Option B – have the release lane assert the resolved value at run time: e.g. a tiny help:evaluate -Dexpression=maven.javadoc.failOnError check inside the same invocation, so whatever the command line actually set is what gets asserted. Closer to the effective-config philosophy already adopted in #203.
Option C – accept and document: the deploy command is a small, rarely-edited, code-reviewed surface.
Note: Option B is the only one that inspects the value Maven actually resolves for the invocation under test, which is the property #203 was chosen to have.
Provenance
Discovered during review of PR #204 (issue #203), merged as 75dbfd3. Pre-existing boundary of both guards, not introduced by that PR.
Problem
rift-java now has two javadoc-strictness guards, and neither can see a silencer added to a workflow's own Maven command line:
rift-java-coreand only for the command IT runs itself.maven-javadoc-pluginbindsfailOnErrorandskipto the user propertiesmaven.javadoc.failOnErrorandmaven.javadoc.skip. Those can be supplied with-Don the command line, where they never appear inhelp:effective-pomoutput. So adding-Dmaven.javadoc.failOnError=falseto the real deploy command in.github/workflows/publish.yml(thedeploystep) would silence javadoc errors for the actual Central release while both guards keep reporting "javadoc strictness confirmed".This is the same self-concealing shape as #197 → #200 → #203, relocated one more layer out: from the root pom, to a module pom, to the CI invocation.
Evidence
scripts/check-javadoc-strictness.pyheader states this limitation explicitly ("It cannot see a `-Dmaven.javadoc.failOnError=false` added to a workflow's own mvn command line").CONTRIBUTING.mdrepeats it in the "Build & verify" section.publish.ymland the sweep's ownhelp:effective-pominvocation inci.ymlare independent hardcoded strings — nothing keeps them consistent.Proposed Fix Options
This needs a design decision, hence triage not auto-implement.
Option A – assert the workflow commands themselves: a CI step that scans
.github/workflows/*.ymlfor-Dmaven.javadoc./-Ddoclint=/-Dmaven.javadoc.skipon anymvnwline and fails. Cheap, but it is a literal-string grep at a new layer (the same objection that got the grep option rejected in #200).Option B – have the release lane assert the resolved value at run time: e.g. a tiny
help:evaluate -Dexpression=maven.javadoc.failOnErrorcheck inside the same invocation, so whatever the command line actually set is what gets asserted. Closer to the effective-config philosophy already adopted in #203.Option C – accept and document: the deploy command is a small, rarely-edited, code-reviewed surface.
Note: Option B is the only one that inspects the value Maven actually resolves for the invocation under test, which is the property #203 was chosen to have.
Provenance
Discovered during review of PR #204 (issue #203), merged as 75dbfd3. Pre-existing boundary of both guards, not introduced by that PR.