Skip to content

Fix javadoc errors blocking the release build#6015

Merged
delchev merged 1 commit into
masterfrom
fix-javadoc-release
Jun 11, 2026
Merged

Fix javadoc errors blocking the release build#6015
delchev merged 1 commit into
masterfrom
fix-javadoc-release

Conversation

@delchev

@delchev delchev commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Summary

The Release run 27341204859 failed in maven-javadoc-plugin:3.12.0:jar (attach-javadocs) on api-modules-java:

  • TemplateEngines.java:28unterminated inline tag. {@code {{}} for Mustache parsed the inner {{ as the start of another inline tag and could not find a matching } before the paragraph ended. Replaced with <code>&#123;&#123; &#125;&#125;</code> so the braces render literally without entering the javadoc tag grammar.
  • Assert.java:21@link reference not found. {@link org.junit.jupiter.api.Assertions} only resolves when JUnit Jupiter is on the javadoc tool's classpath, which api-modules-java is not. Replaced with {@code …} — the mention is purely documentation, no link wanted.

CLAUDE.md now carries the rule that javadoc must compile clean on every release-participating module, plus the verification command and the three recurring failure modes (braces inside {@code}, @link to non-classpath types, missing public-member comments).

Verified locally

mvn -pl components/api/api-modules-java -am -DskipTests -Dlicense.skip=true \
    -Dformatter.skip=true -P release -Dgpg.skip=true install
→ BUILD SUCCESS (2:05)

Same goal that broke in CI.

🤖 Generated with Claude Code

The Release workflow attaches `maven-javadoc-plugin:jar` and fails the
build on any javadoc `error:`. Run 27341204859 broke on two errors in
api-modules-java:

- TemplateEngines.java:28 — "unterminated inline tag". The phrase
  `{@code {{}} for Mustache` contained an inline tag whose argument
  itself started with `{`, which javadoc parsed as the start of another
  inline tag and never found a matching `}`. Replaced with
  `<code>&#123;&#123; &#125;&#125;</code>` so the braces render
  literally without entering the javadoc tag grammar.
- Assert.java:21 — "reference not found". `{@link
  org.junit.jupiter.api.Assertions}` only resolves when JUnit Jupiter
  is on the javadoc tool's classpath, which api-modules-java is not.
  Replaced with `{@code …}` since the mention is purely documentation.

CLAUDE.md now carries the rule under the Conventions section: javadoc
must compile clean on every release-participating module; verify with
`mvn -P release -Dgpg.skip=true -DskipTests -Dlicense.skip=true
-Dformatter.skip=true install` before pushing javadoc-changing code.
The bullet enumerates the three recurring failure modes (unterminated
inline tag from `{@code {…}}`, `@link` to non-classpath types, missing
public-member comments) with the workaround for each.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@delchev delchev merged commit e1e8645 into master Jun 11, 2026
8 of 11 checks passed
@delchev delchev deleted the fix-javadoc-release branch June 11, 2026 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant