Test that daikon-plumelib builds#779
Conversation
📝 WalkthroughWalkthroughThe changes add two lines to CI/testing and documentation: the Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@scripts/test-misc.sh`:
- Line 21: The Gradle invocation in scripts/test-misc.sh uses the wrong case for
the task name ("shadowjar") which is case-sensitive; update the command that
runs in the java/lib directory to call the configured task name "shadowJar"
instead of "shadowjar" so Gradle finds the task defined in java/lib/build.gradle
(replace the invocation containing "gradle shadowjar --stacktrace" with one that
uses "gradle shadowJar --stacktrace").
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 9a33b02c-ed52-4ffa-8972-8e2dea45806f
📒 Files selected for processing (1)
scripts/test-misc.sh
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@java/Makefile`:
- Line 113: The DAIKON_CLASSPATH assignment reverses the usual classpath order
causing jars to shadow freshly compiled classes; update DAIKON_CLASSPATH so the
source tree comes before jars (e.g., set DAIKON_CLASSPATH to
${DAIKONDIR}/java:${DAIKONDIR}/java/lib/*) to match the other Makefiles (and
DOCLETPATH) so FQCNs resolve to source .class files, or explicitly confirm with
the PR author if the jar-first ordering (current value) was intentional before
leaving it as-is.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 62cf2089-7612-4f6e-a6ad-5f48f23a4c0d
⛔ Files ignored due to path filters (2)
java/lib/checker-framework/checker.jaris excluded by!**/*.jarjava/lib/checker-qual.jaris excluded by!**/*.jar
📒 Files selected for processing (2)
java/Makefilejava/lib/README
| else | ||
| DAIKON_CLASSPATH := ${DAIKONDIR}/java | ||
| endif | ||
| DAIKON_CLASSPATH := ${DAIKONDIR}/java/lib/*:${DAIKONDIR}/java |
There was a problem hiding this comment.
🧹 Nitpick | 🔵 Trivial
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# 1. Confirm the new ordering in scripts/test-misc.sh and inspect surrounding setup.
fd -t f 'test-misc.sh' --exec rg -n -C5 'shadowJar|make compile|daikon.jar'
# 2. Confirm Daikon source actually depends on daikon.plumelib at compile time
# (these imports require daikon-plumelib.jar on the classpath).
rg -nP --type=java '^\s*import\s+daikon\.plumelib\.' -C0 | head -50
# 3. Check whether the repo (or CI bootstrap) commits/seeds daikon-plumelib.jar,
# which would mask the ordering issue on clean clones.
fd -t f 'daikon-plumelib.jar'
git log --oneline -- java/lib/daikon-plumelib.jar 2>/dev/null | head -5
# 4. Inspect prior content of java/Makefile around DAIKON_CLASSPATH to confirm
# the previous order and the conditional branches that were removed.
git log --oneline -n 5 -- java/Makefile
git show HEAD~1:java/Makefile 2>/dev/null | sed -n '105,140p'Repository: codespecs/daikon
Length of output: 4110
🏁 Script executed:
# Check the current state of DOCLETPATH at line 138 and other Makefiles
rg -n 'DOCLETPATH' java/Makefile -A2
# Check tests/Makefile.common line 206
sed -n '200,210p' tests/Makefile.common
# Check drawlet Makefile
cat tests/merge-invariants-tests/drawlet/Makefile | grep -n 'DAIKON_CLASSPATH' -A2Repository: codespecs/daikon
Length of output: 3308
Clarify the classpath order reversal at line 113.
The simplification is sound in principle (checker-qual.jar remains available via the java/lib/* glob, and checker.jar is consumed separately at line 878). However, the new DAIKON_CLASSPATH value reverses the standard order used elsewhere in the project:
- java/Makefile line 113 (this change):
java/lib/*:java/(jars first) - tests/Makefile.common line 206:
java:java/lib/*:...(sources first) - tests/merge-invariants-tests/drawlet/Makefile line 17:
java:java/lib/*:...(sources first) - DOCLETPATH (line 138):
java:...java/lib/*:...(sources first)
With jars preceding source tree classes in the classpath, any FQCN present in both forms will resolve to the jar version instead of freshly compiled .class files. If this inversion is intentional, confirm it with the PR author; if unintentional, restore the standard order to maintain consistency and ensure source-tree precedence.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@java/Makefile` at line 113, The DAIKON_CLASSPATH assignment reverses the
usual classpath order causing jars to shadow freshly compiled classes; update
DAIKON_CLASSPATH so the source tree comes before jars (e.g., set
DAIKON_CLASSPATH to ${DAIKONDIR}/java:${DAIKONDIR}/java/lib/*) to match the
other Makefiles (and DOCLETPATH) so FQCNs resolve to source .class files, or
explicitly confirm with the PR author if the jar-first ordering (current value)
was intentional before leaving it as-is.
No description provided.