Skip to content

CI: javac lint and javadoc doclint checks - #15

Merged
heliocosta-dev merged 1 commit into
mainfrom
ci-lint
Oct 8, 2026
Merged

heliocosta-dev merged 1 commit into
mainfrom
ci-lint

Conversation

@heliocosta-dev

Copy link
Copy Markdown
Member

What CI now runs

A new lint job (JDK 21) next to the unchanged JDK 11/17/21 test matrix runs mvn -B -ntp -P lint test-compile javadoc:javadoc:

  • javac -Xlint:all as errors (failOnWarning) on main and test sources.
  • javadoc doclint (all,-missing, failOnWarnings): a broken {@link}, malformed HTML or a bad tag fails the PR. The release profile builds the javadoc jar with doclint off, where a broken {@link} is only a warning and the jar ships anyway (checked). missing is excluded because getters and builder methods have no doc comments.

Both live in a new lint Maven profile, so plain mvn verify (test matrix, release) is unaffected. Run it locally with mvn -P lint test-compile javadoc:javadoc.

Code change

  • MillionSendException declares serialVersionUID = -5469809787528467192L. This was the only -Xlint:all finding ([serial]). The value is the one the JVM already computed for the class (checked with serialver against the published 0.8.0 jar), so the serialized form is unchanged. It is a private field, so the API is unchanged.

Not added

  • Formatter check (Spotless + google-java-format): the code doesn't conform. google-java-format would rewrite 61 of 98 files (+597/−296), and still 17 files with every --skip-* flag, mostly by putting each argument of the compact http.request(...) calls on its own line. palantir-java-format uses 4-space indentation, and this code uses 2.

🤖 Generated with Claude Code

A new `lint` job (JDK 21) runs `mvn -P lint test-compile javadoc:javadoc`:
main and test sources compile with -Xlint:all and fail on any warning, and
javadoc runs with doclint (every group but `missing`) and fails on any
warning, so a broken reference or bad HTML in a doc comment fails the PR
instead of shipping in the Maven Central javadoc jar. The settings live in a
`lint` profile, so the JDK 11/17/21 test matrix is unchanged.

MillionSendException now declares serialVersionUID (the only -Xlint finding),
set to the value the JVM already computed for it, so its serialized form is
unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@heliocosta-dev
heliocosta-dev merged commit 2cde4ff into main Oct 8, 2026
4 checks passed
@heliocosta-dev
heliocosta-dev deleted the ci-lint branch October 8, 2026 23:04
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