8000 spotbugs: add 4.10.5 by bryan-minimal · Pull Request #908 · gominimal/pkgs · GitHub
[go: up one dir, main page]

Skip to content

spotbugs: add 4.10.5 - #908

Merged
bryan-minimal merged 3 commits into
mainfrom
add-spotbugs
Oct 22, 2026
Merged

bryan-minimal merged 3 commits into
mainfrom
add-spotbugs

Conversation

@bryan-minimal
Copy link
Copy Markdown
Member

What

Adds spotbugs 4.10.5, the bytecode bug finder that succeeds FindBugs. It is a Tier 2 item in the #899 Java loadout checklist. It is usually run as a build plugin, but the CLI is useful for scanning a jar or classes dir you didn't build.

  • Artifact: the upstream spotbugs-4.10.5.tgz from GitHub releases. It is extracted with tar -xof to usr/share/spotbugs, minus spotbugs.bat and spotbugs.ico. A /usr/bin/spotbugs wrapper execs usr/share/spotbugs/bin/spotbugs by its real path, because that script derives its home from $0.
  • Runtime deps: jdk, plus bash, coreutils and sed. Upstream's launcher is a POSIX sh script that calls ls, expr, dirname, uname and sed.
  • Prebuilt, not built from source: upstream builds with Gradle, which resolves dependencies from Maven Central at build time. This is the same tradeoff maven, gradle and jdtls make. Recorded as binary_from.
  • License: LGPL-2.1-or-later. LICENSE.txt is the LGPL-2.1 text, and the source headers say "either version 2.1 … or (at your option) any later version". lib/ bundles Apache-2.0, BSD and MPL jars, with their texts shipped as LICENSE-*.txt.
  • Version checking / CVE identity: source_provenance = GithubRepo spotbugs/spotbugs. Tags are bare <version>.
  • sha256: cce32449…d96007e, computed locally and matching the GitHub release asset digest.
  • Age: 4.10.5 was released 2026-10-12, so version-age will flag it as under 7 days old (report-only). 4.10.4 (2026-08-20) is the fallback if we'd rather wait.

Tests (Standalone)

  • find_bug: SpotBugs analyses bytecode, so the test javacs a class with unconditional self-recursion (return loop(x);). Running spotbugs -textui -low -xml:withMessages on it must report IL_INFINITE_RECURSIVE_LOOP. A clean class must produce a BugCollection with no BugInstance.

Verified

Built in a pkgbuild session (arm64). min check --packages spotbugs passed every checker, including standalone tests, output types valid and missing runtime_deps. Negative control: changing the expected bug type to a non-existent one made find_bug fail.

amd64 is not separately run locally; it is left to CI.

Refs #899

🤖 Generated with Claude Code

JVM tool for the Java loadout (#899): upstream release artifact run on
our jdk through a /usr/bin wrapper, with Standalone tests that run the
tool on a small real input.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bryan-minimal
bryan-minimal requested a review from a team as a code owner October 16, 2026 20:31
@coderabbitai
coderabbitai Bot commented Oct 16, 2026 •
Copy link
Copy Markdown
Contributor

Warning

Review limit reached

  • Run on-demand review

This review includes 2 billable files and costs up to $0.50.

  • Ask an admin to make reviews automatic

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Or wait 15 minutes for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available. Your 58 included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: gominimal/pkgs/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 155a1617-3334-42fc-af73-7937cb0d1182
📥 Commits

Reviewing files that changed from the base of the PR and between 0618acc and b1187af.

📒 Files selected for processing: 2
  • packages/spotbugs/build.ncl
  • packages/spotbugs/build.sh
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@norrietaylor norrietaylor left a comment
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean. The sha256 matches, the launcher's deps match runtime_deps, and the test is strong: it compiles a class with a real bug and requires IL_INFINITE_RECURSIVE_LOOP to be reported.

Holding approval only on the shared JVM prebuilt-jar policy question, which is being decided once for the batch.


Generated by Claude Code

@bryan-minimal
Copy link
Copy Markdown
Member Author

Thanks @norrietaylor.

bash -n, nickel format --check and mip dump --packages (amd64) are clean after the merge.

🤖 Generated with Claude Code

@norrietaylor norrietaylor left a comment
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving under #970. The branch is past #897 and there's no native code. Please merge after #970.


Generated by Claude Code

@bryan-minimal
bryan-minimal added this pull request to the merge queue Oct 22, 2026
Merged via the queue into main with commit bfcf599 Oct 22, 2026
11 checks passed
@bryan-minimal
bryan-minimal deleted the add-spotbugs branch October 22, 2026 23:27
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

0