Error building packages when startup file is used (v1.0)

With v1.0, I find that I get errors building Plots or NLopt when I start julia with a ./.julia/config/startup.jl file that contains using Revise, and/or using OhMyREPL but if I start without the startup file, the packages build normally.

With the startup file containing using Revise, the error is below. With using OhMyREPL, a similar error occurs. This is reproducible. I’m not sure where to report this, if it’s a bug. Perhaps I’m doing something wrong.

(v1.0) pkg> build Plots
  Building GR ───→ `~/.julia/packages/GR/fnyt8/deps/build.log`
┌ Error: Error building `GR`: 
│ ERROR: LoadError: ArgumentError: Package Revise not found in current path:
│ - Run `Pkg.add("Revise")` to install the Revise package.
│ 
│ Stacktrace:
│  [1] require(::Module, ::Symbol) at ./loading.jl:817
│  [2] include at ./boot.jl:317 [inlined]
│  [3] include_relative(::Module, ::String) at ./loading.jl:1038
│  [4] include at ./sysimg.jl:29 [inlined]
│  [5] include_ifexists at ./client.jl:191 [inlined]
│  [6] load_julia_startup() at ./client.jl:288
│  [7] exec_options(::Base.JLOptions) at ./logging.jl:312
│  [8] _start() at ./client.jl:421
│ in expression starting at /home/michael/.julia/config/startup.jl:1
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068
  Building Plots → `~/.julia/packages/Plots/MnXMC/deps/build.log`
┌ Error: Error building `Plots`: 
│ ERROR: LoadError: ArgumentError: Package Revise not found in current path:
│ - Run `Pkg.add("Revise")` to install the Revise package.
│ 
│ Stacktrace:
│  [1] require(::Module, ::Symbol) at ./loading.jl:817
│  [2] include at ./boot.jl:317 [inlined]
│  [3] include_relative(::Module, ::String) at ./loading.jl:1038
│  [4] include at ./sysimg.jl:29 [inlined]
│  [5] include_ifexists at ./client.jl:191 [inlined]
│  [6] load_julia_startup() at ./client.jl:288
│  [7] exec_options(::Base.JLOptions) at ./logging.jl:312
│  [8] _start() at ./client.jl:421
│ in expression starting at /home/michael/.julia/config/startup.jl:1
└ @ Pkg.Operations /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

(v1.0) pkg>

Looks like this will be fixed in the next Julia release v1.0.1.

3 Likes

Oh and I forgot to say, in the meantime you can wrap your startup file statements in a try … catch. Then the build step should still run. My startup.jl looks like this:

# OhMyREPL
try
    @eval using OhMyREPL
    OhMyREPL.colorscheme!("TomorrowNightBright24bit")
    OhMyREPL.enable_autocomplete_brackets(false)
catch err
    @warn "OhMyREPL could not be started" err
end

# Revise
try
    @eval using Revise
    Revise.async_steal_repl_backend()
catch err
    @warn "Revise could not be started" err
end
1 Like

Thanks!

Brillant! thank you very much for your insight and code snippets