Skip to content

feat(cli): add Java toolchain diagnostics to concore doctor - #631

Open
Somya-jain0811 wants to merge 1 commit into
ControlCore-Project:devfrom
Somya-jain0811:feat/doctor-java-julia-support
Open

Somya-jain0811 wants to merge 1 commit into
ControlCore-Project:devfrom
Somya-jain0811:feat/doctor-java-julia-support

Conversation

@Somya-jain0811

@Somya-jain0811 Somya-jain0811 commented Nov 2, 2026 •

Copy link
Copy Markdown

Fixes #630

concore doctor verified C++, Python, Verilog, Octave, MATLAB, and Docker, but omitted Java.

This PR adds:

  • Java (javac) detection with JAVACEXE and JAVACWIN tool path config support.
  • Treats Java as an optional toolchain (shown as yellow warning ! when absent rather than hard failure).
  • Platform-specific install hints across Linux (apt), macOS (brew), and Windows (winget).

Added unit tests in tests/test_doctor.py covering tool definitions, presence detection, version flag output parsing (including older JDK stderr fallback), and CLI reporting.

Tests pass locally:

  • ruff format --check . (clean)
  • ruff check . (clean)
  • pytest tests/test_doctor.py tests/test_setup.py (30 passed in 4.97s)

Comment thread concore_cli/commands/doctor.py Outdated
Comment on lines +59 to +61
"Linux": "sudo apt install julia",
"Darwin": "brew install julia",
"Windows": "winget install -e --id JuliaLang.Julia",

@Sahil-u07 Sahil-u07 Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Both of these fail if you copy them. winget -e is case-sensitive and the real ID is Julialang.Julia, so JuliaLang.Julia gives "No package found" (tried it on my machine). Ubuntu 22.04 and 24.04 also don't have a julia package anymore. I'd point to juliaup instead: curl -fsSL https://install.julialang.org | sh on Linux and `winget install -e --id

Comment thread concore_cli/commands/doctor.py Outdated
"Windows": "winget install -e --id EclipseAdoptium.Temurin.17.JDK",
},
},
"Julia": {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Not sure a host julia check fits here. mkconcore only handles .jl nodes in docker mode (mkconcore.py:647) and they run inside the julia:1.10 image, so the local julia never gets used for a study. So a docker user with a Julia node gets a warning for something they don't need, and someone with julia installed sees + Julia even though a posix build won't run a .jl node. I'd either drop it or make the label say it's only for running the Julia tests locally.

@Somya-jain0811
Somya-jain0811 force-pushed the feat/doctor-java-julia-support branch from bc25240 to 8e9f82e Compare November 3, 2026 05:12
@Somya-jain0811 Somya-jain0811 changed the title feat(cli): add Java and Julia toolchain diagnostics to concore doctor feat(cli): add Java toolchain diagnostics to concore doctor Nov 3, 2026
@Somya-jain0811

Copy link
Copy Markdown
Author

Good catch @Sahil-u07, thanks for pointing that out!

I checked mkconcore.py and you're totally right — since Julia nodes only ever run inside the Docker container, checking for a host Julia installation doesn't make sense and would just show false warnings for Docker users.

I've updated the PR to drop the Julia check completely so we stay focused just on Java (javac), which actually runs natively on host and has toolchain overrides. Tests and linter are all green!

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