When I work on my own Julia packages, I currently do a Pkg.clone(...) from my git repository to install the package with all its dependencies and register it to the package system. After that I delete the package folder in the .julia directory and create a symlink with the same name, pointing to a local clone of the original git repository.
This way I can work on the package and I can test the changes in the REPL/notebooks/scripts immediately.
This workflow however seems quite odd and I wanted to know how you are dealing with this.
I don’t like entangling my work with other stuff, especially when other scripts are acting in that folder. Also I might forget about it when wiping the .julia directory e.g.
I do essentially the same, but have a bash script that deletes the .julia folders and creates the necessary symlinks. This let’s me restart my .julia folder from scratch easily.
I set JULIA_PKGDIR to where I want the packages I develop to live (along with their dependencies). My ~/.julia does not contain any packages. This allows me to have separate pkgdirs for separate projects, which could otherwise have resulted in conflicting version requirements.
I then have a couple of convenient bash aliases in my ~/.bashrc:
alias julia-pkgdir='export JULIA_PKGDIR=`pwd`'
alias rbd-devel='cd ~/code/RigidBodyDynamics && julia-pkgdir && cd v0.6/RigidBodyDynamics'
The first simply sets JULIA_PKGDIR to your current directory. The second sets JULIA_PKGDIR and cds to the main package I’m working on in one simple command, so I can get to work (just an example).
Everybody’s got their own little bash script it seems Perhaps we will have a more standardized workflow with Pkg3 and it’s immutable package installs?
I use symlinks too, but I symlink from ~/.julia/v0.6 to directories in ~dev/julia. That way if I wipe ~/.julia, my development work doesn’t disappear.