Repository navigation
pmd: add 7.28.0 - #907
pmd: add 7.28.0#907
Conversation
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>
|
Warning Review limit reached
This review includes 2 billable files and costs up to $0.50.
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. View limit details
Comment |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The PMD version-check concern in the description is resolved: minimal-supply-chain#515 pins 🤖 Generated with Claude Code |
There was a problem hiding this comment.
Clean:
- The sha256 matches and
test -xguards the launcher. - The tests cover
pmd check(exit 4 on violations, 0 on a clean file) and CPD. LicenseRef-PMD AND Apache-2.0is well argued and follows theLicenseRef-BuDDyprecedent.- I read the launcher, and the tools it calls match
runtime_deps.
Holding approval only on the shared JVM prebuilt-jar policy question, which is being decided once for the batch.
Generated by Claude Code
…minimal#776) One comment line per frozen bootstrap rung already on main (39): hex0/stage0/ bedrock -> "hex0", go-1.x chain -> "go", mrustc..rustc-1.97.1 -> "rust". Read by pkgmgr (pkgmgr-rs#904/gominimal#907) to freeze the rung; comments are not evaluated and not in the spec hash, so nothing rebuilds. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Thanks @norrietaylor.
🤖 Generated with Claude Code |
There was a problem hiding this comment.
Approving under #970. The branch is past #897 and CI is green. Please merge after #970.
Non-blocking: the distribution ships jna-5.12.1, jline-native-3.29.0 and kotlin-compiler-embeddable with JNI .so resources, which #970's "bundled .so files" wording arguably excludes (raised there).
Generated by Claude Code
What
Adds
pmd7.28.0, the Java static analyser. It also brings CPD, the copy-paste detector. It is a Tier 1 item in the #899 Java loadout checklist.pmd-dist-7.28.0-bin.zipfrom GitHub releases, which containsbin/pmd,conf/and about 115 jars. It is unpacked withunziptousr/share/pmd, minuspmd.bat. A/usr/bin/pmdwrapper execsusr/share/pmd/bin/pmdby its real path, because that script derivesPMD_HOMEfrom$0.jdk, plusbash,coreutils,grepandsed. Upstream'sbin/pmdis a POSIX sh script that callsunameanddirname, and greps/sedsjava -XshowSettings:propertiesbefore it execs java.maven,gradleandjdtlsmake. Recorded asbinary_from.LicenseRef-PMD AND Apache-2.0. Reviewer, please confirm.LICENSEis PMD's own BSD-style text (InfoEther, LLC) followed by the Apache-2.0 text that covers newer parts.BSD-3-ClausenorBSD-4-Clause; BSD-4-Clause's extra clause is about advertising materials. SPDX has no id for it.LicenseRefper LICENSING.md, in the same way asLicenseRef-BuDDy.license_lint.pyacceptsLicenseRef-*inside compound expressions.sbom/pmd-7.28.0-cyclonedx.json, which is shipped). They are not enumerated inlicense_spdx, consistent withmavenandgradle.source_provenance = GithubRepo pmd/pmd. ⚠ The tags arepmd_releases/<version>. I believe pkgmgr's tag normaliser stripspmd_as a package-name prefix and is left withreleases/7.28.0, which does not parse. If so, the GitHub tier will not resolve this package and it will fall through to repology. That is a pkgmgr-side fix and does not block this PR. Advisories still key off the GitHub repo.f974ba57…e9fbac2, computed locally and matching the GitHub release asset digest. Upstream also publishes a.ascsignature.Tests (Standalone)
check: therulesets/java/quickstart.xmlruleset runs on a file with a planted unused private field and an empty catch block.UnusedPrivateFieldandEmptyCatchBlock.NoPackage.cpd:pmd cpd --minimum-tokens 20runs on two classes that share a 10-line method. It must exit 4 and printFound a … duplication.Verified
Built in a
pkgbuildsession (arm64).min check --packages pmdpassed every checker, includingstandalone tests,output types validandmissing runtime_deps. Negative control: the first draft had a clean file with no package, andcheckcorrectly failed with exit 4 fromNoPackage.amd64 is not separately run locally; it is left to CI.
Refs #899
🤖 Generated with Claude Code