JuliaInterop / JuliaInterop/JuliaCall

`julia_setup(installJulia = TRUE)` does not reliably install julia.

Open
#281 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
287
Forks
43
PR merge metrics
No merged PRs in 30d

Description

Due to a different error I found that julia_setup will skip installation if julia is already installed .

The problem is here, where julia_setup() first uses julia_locate() and if it's found, it skips the whole installation, even if installJulia is set to TRUE.

    JULIA_HOME <- julia_locate(JULIA_HOME)

    if (is.null(JULIA_HOME)) {
        if (isTRUE(installJulia)) {
            install_julia(version)
            JULIA_HOME <- julia_locate(JULIA_HOME)
            if (is.null(JULIA_HOME))
                stop("Julia is not found and automatic installation failed.")
        }
        else {
            stop("Julia is not found.")
        }
    }

This means that julia_setup(version = "latest", installJulia = TRUE) will, in fact, not install the latest version if an older version is present. Similarly, julia_setup(installJulia = TRUE, version = "1.9.0") will not install the required version if any other version exists.

The installer should check if the installed version matches the required version and only skip installation if they match.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in R/zzz.R at the julia_setup() logic around lines 57-69, then inspect julia_locate() and install_julia(). Reproduce cases where an older Julia is installed but a specific or latest version is requested. Done means installation is skipped only when the installed version matches the requested version, with the relevant tests passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, r
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.