I’d like to start making better use of stacked environments and have a few questions.
If I’m not mistaken the only sanctioned way to add another stacked environment is by modifying LOAD_PATH
, e.g. push!(LOAD_PATH, "@myenv")
(generally one would want this at the . Or alternatively by setting the JULIA_LOAD_PATH
environment variable. The disadvantage of the latter is that it doesn’t just add to the default LOAD_PATH
, it replaces it, so if you want to just add then the options are either to explicitly include the defaults (JULIA_LOAD_PATH=@:@v#.#:@stdlib:@myenv
) or by doing the push!
in startup.jl
. Am I correct that this is basically what’s available for starting a REPL session with an additional stacked environment? How would it be accomplished for IJulia and Pluto?
Next I’m wondering, other than having to ] activate @myenv
, ] status
, and ] activate <previous env>
to get back to where I was, is there some way to determine what modules are available for import
/ using
beyond those in my primary environment? I guess this question isn’t just about additional stacked environments but applies to the default ones too. I can of course do a tab-complete on using
but that doesn’t tell me what environment is providing a given module.
Finally I’m wondering about how people version control their shared/stacked environments. Do you simply make ~/.julia/environments/myenv
a git repo? There’s nothing in Pkg.jl that can help with managing these, right? I’m thinking about how one would maintain some standard shared environment for use by a team.
Also if anyone has general workflow tips on using stacked/shared environments I’d be interested to hear. The docs basically describe how they work but don’t really offer much in the way of how to make use of these tools.