Skip to content

ci: javadoc.sh fails on scylla-4.x, coverage-report cannot resolve integration-tests #1111

Description

@nikagra

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).

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    release-blockerMust be resolved before the next release.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions