Since julia 1.0 I am completely lost with how the packaging system works in terms of dealing with my own code. I’ve read Pkg · The Julia Language over and over again, and I just don’t get it.
Suppose I have some local package in ~/julia/Mod1.jl/, that I am actively developing/debugging, and I basically want to use it in some application in ~/julia/Mod2.jl/. How do I use the pkg> julia-shell commands dev, activate and instantiate and perhaps a couple of other commands while working in ~/julia/Mod1.jl/ so that I have access to the current actual code on disk in ~/julia/Mod1.jl/ while working on the application in ~/julia/Mod2.jl/? And what do I need to do in in the REPL in ~/julia/Mod2.jl/ in order to reload the code in ~/julia/Mod1.jl/?
Follow similar steps for Mod2 but before step 10, you can do ]add ~/julia/Mod1 which will add Mod1 as a local dependency of Mod2.
After you restart Julia in the default environment, make both packages visible in this environment by running ]dev ~/julia/Mod1 and ]dev ~/julia/Mod2, or you can choose to make the latter only visible if you want.
Hopefully, some expert can correct me if I said anything wrong.
To add Mod1 as a dependence of Mod2, you probably want to dev ~/julia/Mod1 instead of add ..., because add will only track the changes you commit to Mod1. Also it is probably cleaner to use relative path, dev ../Mod1.