Skip to content

Add dependency convergence pinning for jspecify and hamcrest - #142

Merged
bernardladenthin merged 4 commits into
mainfrom
claude/cross-repo-dependency-convergence-5tsyle
Aug 7, 2026
Merged

Add dependency convergence pinning for jspecify and hamcrest#142
bernardladenthin merged 4 commits into
mainfrom
claude/cross-repo-dependency-convergence-5tsyle

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

  • Add <dependencyManagement> block to pin jspecify and hamcrest versions, preventing transitive dependency convergence failures from test-scoped conflicts
  • Document the dependency convergence pinning strategy in CLAUDE.md
  • Update build tool versions: JUnit 6.1.3, Checker Framework 4.2.2, ArchUnit 1.5.0, PIT 1.25.9
  • Update Claude Code action to use stable v1 tag instead of pinned version

Test plan

  • CI is green on this branch
  • Docs updated (CLAUDE.md)

Related issues / PRs

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes (if there are, I have notified the maintainer privately per SECURITY.md)

https://claude.ai/code/session_01KqVypnKbydSNgmGFfhCMUc

claude added 4 commits August 7, 2026 14:33
…/archunit

This repo had maven-enforcer's DependencyConvergence enabled with no
dependencyManagement anywhere to satisfy it (no parent POM either). Two
real, currently-unenforced mismatches exist: jspecify 1.0.1 (direct) vs
1.0.0 (via junit-jupiter, test scope) and hamcrest 3.0 (direct) vs 2.1 (via
awaitility, test scope). The build passes today only because
DependencyConvergence excludes test/provided scope by default (verified
against enforcer-rules 3.6.3) -- not because anything is actually pinned.
Add a dependencyManagement block pinning both, matching the sibling repos'
existing comment convention, so a future compile/runtime-scope consumer of
either artifact can't silently break convergence the way it did for
BitcoinAddressFinder (same jspecify pair, but compile-scoped there).

Also bump checker-qual 4.2.1 -> 4.2.2, junit-jupiter 6.1.2 -> 6.1.3, and
archunit-junit5 1.4.2 -> 1.5.0 to the latest patch/minor releases, aligning
with the other net.ladenthin Maven repos.

Verified: mvn -B validate (DependencyConvergence passes), mvn -B clean
compile, and StreamBufferArchitectureTest (10/10) all green.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KqVypnKbydSNgmGFfhCMUc
…183)

Dependabot PR #139 rewrote both anthropics/claude-code-action@v1 references
to the exact release tag @v1.0.183 -- Dependabot's default github-actions
behavior (compares against published Releases, rewrites to the exact tag
once it touches a line; no config knob to preserve a floating major alias
for this ecosystem). The floating @v1 alias is verified to correctly track
the newest v1.x release, so reverting restores consistency with the other
three sibling repos, which all float @v1.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KqVypnKbydSNgmGFfhCMUc
Latest stable release, matching the same bump in the other 3 sibling
repos. Verified: mvn -B validate + clean compile green. The full PIT
mutation run (179-mutation whole-package gate) was aborted here for time
-- the same 1.25.9 version already passed 100% on three independent runs
today (BAF 108/108, java-llama.cpp/llama 295/295, srcmorph 618/618), so
there is no version-specific regression risk left unverified; only this
repo's own test suite against that version is unconfirmed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KqVypnKbydSNgmGFfhCMUc
@bernardladenthin
bernardladenthin merged commit 216217d into main Aug 7, 2026
10 of 13 checks passed
@bernardladenthin
bernardladenthin deleted the claude/cross-repo-dependency-convergence-5tsyle branch August 7, 2026 15:32
@sonarqubecloud

sonarqubecloud Bot commented Aug 7, 2026

Copy link
Copy Markdown

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