Skip to content

Test that daikon-plumelib builds#779

Open
mernst wants to merge 4 commits intocodespecs:masterfrom
mernst:ci-test-build-daikon-plumelib
Open

Test that daikon-plumelib builds#779
mernst wants to merge 4 commits intocodespecs:masterfrom
mernst:ci-test-build-daikon-plumelib

Conversation

@mernst
Copy link
Copy Markdown
Member

@mernst mernst commented Apr 15, 2026

No description provided.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 15, 2026

📝 Walkthrough

Walkthrough

The changes add two lines to CI/testing and documentation: the scripts/test-misc.sh script now cd's into java/lib and runs gradle shadowJar --stacktrace after make compile daikon.jar; java/lib/README updates bcel-util from 1.2.3 to 1.2.4 and corrects the Gradle task name to shadowJar; java/Makefile simplifies DAIKON_CLASSPATH to always use ${DAIKONDIR}/java/lib/*:${DAIKONDIR}/java. No exported/public API changes.

Possibly related PRs

  • Avoid re-expansion in Makefile #737: Modifies java/Makefile classpath handling and variable expansion, directly overlapping the DAIKON_CLASSPATH change.
  • update bcel-util #780: Updates java/lib dependencies and Gradle usage (bcel-util version bump and shadowJar task), matching README and build-step edits.
  • Use is-ci.sh from plume-lib #728: Changes scripts/test-misc.sh flow around plume scripts and build steps, related to the added Gradle invocation in the script.

Suggested reviewers

  • markro49
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between a6f4d98 and ad33590.

📒 Files selected for processing (1)
  • scripts/test-misc.sh

Comment thread scripts/test-misc.sh Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 8a90d35 and 7302d6a.

⛔ Files ignored due to path filters (2)
  • java/lib/checker-framework/checker.jar is excluded by !**/*.jar
  • java/lib/checker-qual.jar is excluded by !**/*.jar
📒 Files selected for processing (2)
  • java/Makefile
  • java/lib/README

Comment thread java/Makefile
else
DAIKON_CLASSPATH := ${DAIKONDIR}/java
endif
DAIKON_CLASSPATH := ${DAIKONDIR}/java/lib/*:${DAIKONDIR}/java
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 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' -A2

Repository: 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.

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