Skip to content

build(deps): bump build plugins and analysis tooling to current - #416

Merged
bernardladenthin merged 1 commit into
mainfrom
claude/dep-bumps-2026-09
Sep 5, 2026
Merged

build(deps): bump build plugins and analysis tooling to current#416
bernardladenthin merged 1 commit into
mainfrom
claude/dep-bumps-2026-09

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

Pure version maintenance, no behaviour change in the library. One of four coordinated PRs (jllama / srcmorph / BAF / streambuffer).

Cross-repo drift, closed. The four sibling repos deliberately run the same toolchain versions; BitcoinAddressFinder pulled ahead when its Dependabot PRs were merged.

before after
maven-compiler-plugin 3.15.0 3.16.0
maven-surefire-plugin 3.5.6 3.6.0
nullaway 0.14.0 0.14.1

Behind current upstream in all four repos.

before after
git-commit-id-maven-plugin 10.0.0 10.0.1
spotless-maven-plugin 3.10.1 3.10.2
spotbugs-maven-plugin 4.10.4.0 4.10.4.1
checker / checker-qual 4.2.2 4.2.3
lombok 1.18.46 1.18.48
slf4j-api / slf4j-simple 2.0.18 2.0.19

The compiler and surefire versions also live under different property names in llama-langchain4j (compiler.plugin.version, surefire.version) and llama-kotlin (surefire.version) — a name-based scan misses those. They are bumped too, so the reactor is internally consistent rather than only the core module.

The checker bump moves one property that feeds both the annotation processor and the qualifiers, and that coupling is the point: the Nullness Checker resolves its own qualifiers through javac's symbol table, so the two must share a major version. That is the lesson from the 3.55.1 pin reverted in #412; the prose in the checker-qual comment is updated to match.

Deliberately NOT bumped: jqwik stays at 1.9.3. Releases from 1.10.0 on print a prompt-injection string aimed at AI coding agents, and the workspace policy requires rejecting any PR that moves it. Dependabot will keep proposing it.

A worthwhile side effect of surefire 3.6.0

Verified by diffing the per-class reports before and after: a class whose @BeforeAll assumption aborts the whole class is now reported as SKIPPED instead of tests=0, skipped=0. That is exactly the blind spot CLAUDE.md documents under "CI model policy" — the shape that let every model-gated class silently contribute nothing while the job stayed green. Locally, model-free, it turns 25 classes and 256 tests from invisible into visibly skipped (1486/17 → 1742/273). CI has the models, so those classes still run there; what changes is that a run which fails to provide them can no longer look like a full pass.

Test plan

  • mvn clean verify green
  • ctest 520/520
  • PIT 319/319 mutations killed (100%)
  • Class-file gate clean over llama/target, including a real -P assembly fat jar: 1904 classes, 0 above major 52
  • slf4j-simple 2.0.19 checked entry by entry, not in aggregate: its only major-53 entry is META-INF/versions/9/module-info.class, which a classpath JVM never loads and the gate skips by design — identical to 2.0.18. The fat jar carries the 7 slf4j-simple entries and 0 checkerframework classes, as intended.
  • CI is green on this branch — macOS 15 is expected to stay red for the unrelated b10797 regression tracked in fix(build): give PIT the same SLF4J exclusion as Surefire, and cover FlashAttn #414/feat!: upgrade llama.cpp from b10797 to b10817 #415
  • No source or test change; poms only

Related PRs

Same change in srcmorph, streambuffer and BitcoinAddressFinder (category 2 only — BAF already carries category 1).

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes

🤖 Generated with Claude Code

https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH


Generated by Claude Code

Pure version maintenance, no behaviour change in the library. Two groups:

Cross-repo drift, closed. The four sibling repos deliberately run the same
toolchain versions, and BitcoinAddressFinder pulled ahead when its Dependabot
PRs were merged. This brings the rest back in step:

  maven-compiler-plugin  3.15.0  -> 3.16.0
  maven-surefire-plugin  3.5.6   -> 3.6.0
  nullaway               0.14.0  -> 0.14.1

Behind current upstream in all four repos:

  git-commit-id-maven-plugin  10.0.0    -> 10.0.1
  spotless-maven-plugin       3.10.1    -> 3.10.2
  spotbugs-maven-plugin       4.10.4.0  -> 4.10.4.1
  checker / checker-qual      4.2.2     -> 4.2.3
  lombok                      1.18.46   -> 1.18.48
  slf4j-api / slf4j-simple    2.0.18    -> 2.0.19

The compiler and surefire versions also live under different property names in
llama-langchain4j (compiler.plugin.version, surefire.version) and llama-kotlin
(surefire.version); those are bumped too, so the reactor is internally
consistent rather than only the core module.

The checker bump moves ONE property that feeds both the annotation processor
and the qualifiers, and that coupling is the point: the Nullness Checker
resolves its own qualifiers through javac's symbol table, so the two must share
a major version. That is the lesson from the 3.55.1 pin reverted in #412; the
prose in the checker-qual comment is updated to match.

Deliberately NOT bumped: jqwik stays at 1.9.3. Releases from 1.10.0 on print a
prompt-injection string aimed at AI coding agents, and the workspace policy
(policies/jqwik-prompt-injection.md) requires rejecting any PR that moves it.
Dependabot will keep proposing it.

A worthwhile side effect of surefire 3.6.0, verified by diffing the per-class
reports before and after: a class whose @BeforeAll assumption aborts the whole
class is now reported as SKIPPED instead of as `tests=0, skipped=0`. That is
exactly the blind spot CLAUDE.md documents under "CI model policy" -- the shape
that let every model-gated class silently contribute nothing while the job
stayed green. Locally, model-free, it turns 25 classes and 256 tests from
invisible into visibly skipped (1486/17 -> 1742/273). CI has the models, so
those classes still run there; what changes is that a run which fails to
provide them can no longer look like a full pass.

Verified locally in this repo: mvn clean verify green, ctest 520/520, PIT
319/319 mutations killed (100%), the class-file gate clean over llama/target
including a real `-P assembly` fat jar (1904 classes, 0 above major 52).
slf4j-simple 2.0.19 was checked entry by entry rather than in aggregate: its
only major-53 entry is META-INF/versions/9/module-info.class, which a classpath
JVM never loads and the gate skips by design -- identical to 2.0.18. The fat jar
carries the 7 slf4j-simple entries and 0 checkerframework classes, as intended.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AnNYn8W1xuVxVJtyL34GyH
@claude

claude Bot commented Sep 5, 2026

Copy link
Copy Markdown

Review Summary

Approved — This is a well-executed routine dependency and plugin version maintenance update.

Verification Results

Consistency across modules:

  • ✅ All version updates applied consistently across llama/pom.xml, llama-langchain4j/pom.xml, and llama-kotlin/pom.xml
  • ✅ No old version strings remain in any POM files
  • ✅ Version-coupling constraint (checker/checker-qual major version match) satisfied by 4.2.3
  • ✅ Comment in llama/pom.xml updated to reflect new checker version

Update Coverage:

  • ✅ 9 dependency/plugin versions updated
  • ✅ Minor version bumps only (low risk of breaking changes)
  • ✅ jqwik correctly NOT bumped per workspace prompt-injection policy
  • ✅ All three reactor modules synchronized in lockstep

Testing Documentation:

  • mvn clean verify ✅
  • C++ Tests: 520/520 ✅
  • PIT mutations: 319/319 killed (100%) ✅
  • Class-file version gate: 0 violations (major 52 ceiling) ✅
  • SLF4J entry verification (module-info.class skipped by design) ✅

Notes

The surefire 3.6.0 upgrade brings improved test-skipped reporting, which will help surface invisibly-skipped test classes in local runs. This is a beneficial side effect per the PR description.

No source code changes, test changes, or behavioral changes — purely dependency maintenance. Ready to merge.

@sonarqubecloud

sonarqubecloud Bot commented Sep 5, 2026

Copy link
Copy Markdown

@bernardladenthin
bernardladenthin merged commit 12e185c into main Sep 5, 2026
46 of 65 checks passed
@bernardladenthin
bernardladenthin deleted the claude/dep-bumps-2026-09 branch September 5, 2026 11:32
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.

2 participants