From 7a972bb6ddd7e7cd36f9687a1f9e38aad0c8ff84 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 24 Jul 2026 07:49:59 +0000 Subject: [PATCH 1/2] Fix javadoc errors that broke the Maven Central publish workflow The attach-javadocs execution in the release profile failed with two doclint errors, aborting the publish run: - StreamedLog.java used @implNote, which javadoc rejects as an unknown tag unless registered. Register the JDK-convention informational tags (apiNote, implSpec, implNote) in the maven-javadoc-plugin config. - ActorListOptions linked to ActorCollectionClient#list(ActorListOptions), which javadoc cannot resolve because list() is inherited from the generic AbstractCollectionClient with a type-substituted signature. Link to the parameterless #list reference with an explicit label so the rendered docs still show list(ActorListOptions) instead of the non-exported superclass's erased signature. Verified with `mvn -Prelease package -DskipTests -Dgpg.skip=true`: javadoc jar now builds successfully and both spots render correctly. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01CjGTHyxqt7UGXC2fwSpkkP --- pom.xml | 21 +++++++++++++++++++ .../apify/client/actor/ActorListOptions.java | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7ba097d..27cdad5 100644 --- a/pom.xml +++ b/pom.xml @@ -216,6 +216,27 @@ org.apache.maven.plugins maven-javadoc-plugin 3.7.0 + + + + + apiNote + a + API Note: + + + implSpec + a + Implementation Requirements: + + + implNote + a + Implementation Note: + + + attach-javadocs diff --git a/src/main/java/com/apify/client/actor/ActorListOptions.java b/src/main/java/com/apify/client/actor/ActorListOptions.java index 37fa112..3c10593 100644 --- a/src/main/java/com/apify/client/actor/ActorListOptions.java +++ b/src/main/java/com/apify/client/actor/ActorListOptions.java @@ -3,7 +3,7 @@ import com.apify.client.internal.ListOptionsLike; import com.apify.client.internal.QueryParams; -/** Options for {@link ActorCollectionClient#list(ActorListOptions)}. */ +/** Options for {@link ActorCollectionClient#list ActorCollectionClient.list(ActorListOptions)}. */ public final class ActorListOptions implements ListOptionsLike { private Long offset; private Long limit; From 265482d45617756f9f3d6d62a65d2155e69b9160 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 24 Jul 2026 07:53:34 +0000 Subject: [PATCH 2/2] Gate PRs on the release-profile javadoc build The publish workflow failed on doclint errors that no PR check ever exercised, because the javadoc plugin only runs in the release profile during a release. Add a CI step to the PR workflow that builds the javadoc jar with that same profile (tests and GPG signing skipped), so broken {@link} references, unknown tags and other doclint errors fail the PR instead of surfacing for the first time mid-release. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01CjGTHyxqt7UGXC2fwSpkkP --- .github/workflows/java-integration-tests.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/java-integration-tests.yml b/.github/workflows/java-integration-tests.yml index 8a23ae1..19abbc7 100644 --- a/.github/workflows/java-integration-tests.yml +++ b/.github/workflows/java-integration-tests.yml @@ -50,6 +50,13 @@ jobs: - name: Static analysis (SpotBugs) run: mvn -B -DskipTests compile spotbugs:check + # Build the javadoc (and source) jars with the same release-profile configuration the publish + # workflow uses, so doclint errors — broken {@link} references, unknown tags, malformed + # HTML — fail the PR here instead of surfacing for the first time mid-release. Signing is + # skipped: only the docs build is under test, no GPG key is available or needed. + - name: Javadoc (release docs build) + run: mvn -B -Prelease -DskipTests -Dgpg.skip=true package + # Offline unit tests (mock HTTP backend): prove the retry/error/signature/pagination logic # without the API. Selected by pattern — every hermetic test in the base package runs, and the # token-gated integration/example/doc-snippet suites are excluded — so new hermetic tests are