docs/_utils/javadoc.sh fails on scylla-4.x, so adding that branch to BRANCHES (#1079) would publish it — and stable, since #1079 also makes it LATEST_VERSION — with an empty api/.
Reproduction
JDK 11 (what javadoc-multiversion.sh selects for any branch not in its allowlist), clean checkout of scylla-4.x at f597f09a63:
$ ./docs/_utils/javadoc.sh
...
[INFO] Java driver ... - coverage report FAILURE [ 0.012 s]
[INFO] BUILD FAILURE
[ERROR] Failed to execute goal on project java-driver-coverage-report: Could not resolve dependencies
for project com.scylladb:java-driver-coverage-report:pom:4.19.2.2-SNAPSHOT
[ERROR] dependency: com.scylladb:java-driver-integration-tests:jar:4.19.2.2-SNAPSHOT (compile)
[ERROR] Could not find artifact com.scylladb:java-driver-integration-tests:jar:4.19.2.2-SNAPSHOT
$ echo $?
1
docs/_build/dirhtml/api/ is never created — javadoc.sh:2 is set -euo pipefail, so the script dies at the mvn javadoc:javadoc on line 15, before the copy on line 34. Core's javadoc had already been generated into core/target/reports/apidocs; it is simply never moved.
Cause
coverage-report/pom.xml:86-88 declares a compile dependency on java-driver-integration-tests.
integration-tests/pom.xml:359-361 sets maven-install-plugin <skip>true</skip>, so javadoc.sh:5's mvn install -DskipTests never puts that jar in the local repository.
javadoc.sh:15's mvn javadoc:javadoc is a standalone goal invocation, so coverage-report resolves the dependency from the repository rather than from reactor output, and does not find it.
Not a local artifact: docs-pages.yml restores no maven cache, so every publish run starts from a clean ~/.m2 and hits the same path.
Why it has not bitten yet
coverage-report is newer than every branch currently in BRANCHES — the module is absent from scylla-4.19.0.x, scylla-4.18.1.x and scylla-4.15.0.x. All 16 published branches build their javadoc fine, which is why run 35243119768 was green with 17/17 populated api/ directories. scylla-4.x is the first branch to carry the module, and #1079 is what would first build it.
Fix
Restrict the javadoc build to the module that is actually published, which is what #1107 already proposes for unrelated reasons:
-mvn javadoc:javadoc -T 1C
+mvn javadoc:javadoc -pl core -T 1C
Verified on scylla-4.x under JDK 11: BUILD SUCCESS, core/target/reports/apidocs with 728 files including index.html, from a cleaned output directory. javadoc.sh:5's mvn install already populates everything core needs, so no -am is required.
Blocks #1079 / DRIVER-1036. Related: #1107 (same change), #1101 (the guard that would at least make this loud), #1103 (no pre-merge coverage of this path).
docs/_utils/javadoc.shfails onscylla-4.x, so adding that branch toBRANCHES(#1079) would publish it — andstable, since #1079 also makes itLATEST_VERSION— with an emptyapi/.Reproduction
JDK 11 (what
javadoc-multiversion.shselects for any branch not in its allowlist), clean checkout ofscylla-4.xatf597f09a63:docs/_build/dirhtml/api/is never created —javadoc.sh:2isset -euo pipefail, so the script dies at themvn javadoc:javadocon line 15, before the copy on line 34. Core's javadoc had already been generated intocore/target/reports/apidocs; it is simply never moved.Cause
coverage-report/pom.xml:86-88declares acompiledependency onjava-driver-integration-tests.integration-tests/pom.xml:359-361sets maven-install-plugin<skip>true</skip>, sojavadoc.sh:5'smvn install -DskipTestsnever puts that jar in the local repository.javadoc.sh:15'smvn javadoc:javadocis a standalone goal invocation, socoverage-reportresolves the dependency from the repository rather than from reactor output, and does not find it.Not a local artifact:
docs-pages.ymlrestores no maven cache, so every publish run starts from a clean~/.m2and hits the same path.Why it has not bitten yet
coverage-reportis newer than every branch currently inBRANCHES— the module is absent fromscylla-4.19.0.x,scylla-4.18.1.xandscylla-4.15.0.x. All 16 published branches build their javadoc fine, which is why run 35243119768 was green with 17/17 populatedapi/directories.scylla-4.xis the first branch to carry the module, and #1079 is what would first build it.Fix
Restrict the javadoc build to the module that is actually published, which is what #1107 already proposes for unrelated reasons:
Verified on
scylla-4.xunder JDK 11:BUILD SUCCESS,core/target/reports/apidocswith 728 files includingindex.html, from a cleaned output directory.javadoc.sh:5'smvn installalready populates everythingcoreneeds, so no-amis required.Blocks #1079 / DRIVER-1036. Related: #1107 (same change), #1101 (the guard that would at least make this loud), #1103 (no pre-merge coverage of this path).