Skip to content

Fail the build on compiler warnings - #16

Merged
grubmeshi merged 7 commits into
spring-boot-3.xfrom
feature/compiler-warnings
Oct 26, 2026
Merged

grubmeshi merged 7 commits into
spring-boot-3.xfrom
feature/compiler-warnings

Conversation

@grubmeshi

Copy link
Copy Markdown
Collaborator

Supersedes #14 and #15: their commits come first in this branch (#15 rebased onto #14), so one fast-forward lands all three.

Changes

  • Dependabot: GitHub Actions cachix/install-nix-action v31.11.2 and actions/upload-artifact v7.0.2; Gradle 9.8.2, Kotlin Gradle plugin 2.4.21 and Spotless 8.10.4.
  • fix(model): PathItem lowercased the HTTP method with the default locale. Under a Turkish locale, OPTIONS became optıons, so the spec had an unknown key. This is the only change to the generated output.
  • docs: every public Javadoc has a summary.
  • refactor: resolves the Error Prone and javac warnings in the main code (LinkedList, effectively private modifiers, operator precedence, deprecated setSerializationInclusion, unchecked casts, an arrow switch). Identity comparisons that are intended keep a targeted @SuppressWarnings("ReferenceEquality"). The generated spec and runtime behaviour stay the same.
  • test: resolves the warnings in the tests. Fixture members that exist only for the spec generator get targeted suppressions. No expected spec changes.
  • chore(build): javac runs with -Xlint:all,-serial,-processing -Werror, so Error Prone warnings also fail the build. Javadoc runs with -Werror, Kotlin with allWarningsAsErrors, and Gradle with org.gradle.warning.mode=fail.

🤖 Generated with Claude Code

dependabot Bot and others added 7 commits October 26, 2026 19:35
Bumps the github-actions group with 2 updates in the / directory: [cachix/install-nix-action](https://github.com/cachix/install-nix-action) and [actions/upload-artifact](https://github.com/actions/upload-artifact).


Updates `cachix/install-nix-action` from 31.11.1 to 31.11.2
- [Release notes](https://github.com/cachix/install-nix-action/releases)
- [Changelog](https://github.com/cachix/install-nix-action/blob/master/RELEASE.md)
- [Commits](cachix/install-nix-action@13d8dd5...448cde7)

Updates `actions/upload-artifact` from 7.0.1 to 7.0.2
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@043fb46...cf430e0)

---
updated-dependencies:
- dependency-name: cachix/install-nix-action
  dependency-version: 31.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps the gradle group with 3 updates in the / directory: [org.jetbrains.kotlin.jvm](https://github.com/JetBrains/kotlin), [com.diffplug.spotless:spotless-plugin-gradle](https://github.com/diffplug/spotless) and [gradle-wrapper](https://github.com/gradle/gradle).


Updates `org.jetbrains.kotlin.jvm` from 2.2.21 to 2.4.21
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](JetBrains/kotlin@v2.2.21...v2.4.21)

Updates `com.diffplug.spotless:spotless-plugin-gradle` from 8.10.3 to 8.10.4
- [Release notes](https://github.com/diffplug/spotless/releases)
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](diffplug/spotless@gradle/8.10.3...gradle/8.10.4)

Updates `gradle-wrapper` from 9.8.0 to 9.8.2
- [Release notes](https://github.com/gradle/gradle/releases)
- [Commits](gradle/gradle@v9.8.0...v9.8.2)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.jvm
  dependency-version: 2.4.21
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: gradle
- dependency-name: com.diffplug.spotless:spotless-plugin-gradle
  dependency-version: 8.10.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gradle
- dependency-name: gradle-wrapper
  dependency-version: 9.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: gradle
...

Signed-off-by: dependabot[bot] <support@github.com>
Under a Turkish default locale, toLowerCase() turned OPTIONS into "optıons", so the spec held an
unknown key instead of the options operation.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Error Prone reported Javadocs that start with a block tag, and a {@link} on a Lombok-annotated field that it did not recognise.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Identity comparisons stay where identity is the intent: the owner map of reference entries, a replaced annotations supplier and the pairs that guard the recursive schema comparison. Neither the generated spec nor the runtime behaviour changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fixture members that only exist for the spec generator keep a targeted suppression, so the expected specs stay unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ions

javac runs with -Xlint:all and -Werror, which also turns Error Prone warnings into errors. The serial and processing lints stay off: nothing is Java-serialized, and Lombok and the configuration processor claim only some annotations. Javadoc, Kotlin and Gradle deprecations fail the same way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@grubmeshi
grubmeshi merged commit 66471bc into spring-boot-3.x Oct 26, 2026
4 checks passed
@grubmeshi
grubmeshi deleted the feature/compiler-warnings branch October 26, 2026 20:12
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