It adds the package at the path to your environment. Since you were following the Revise documentation on how to work with deved packages, it seemed that this was what you were trying to do.
It seems what you are trying to do is rather non-standard. Not sure how well the usual tooling works for this.
CLR is an existing algorithm, and VCLR is a modified version of that algorithm. I have an implementation of both that differ only in what happens inside the branch-and-bound nodes, and the implementations share the branch-and-bound part of the algorithm.
I mean, in principle I could split it into a bunch of separate packages, but it seems somewhat unnatural — those pieces are just implementation details.
If they are implementation details, they don’t necessarily need to live in separate packages, certainly not with their own Project.toml files.
If the user is going to have CLR and VCLR in the same environment anyways, then it’s an unnecessary complication to have them as separate packages entirely, rather than sub-modules in the same larger repo.
This looks good. You can just fire up julia, do dev /home/alice/src/VoronoiCLR and then using Revise, VoronoiCLR will load your package and track local changes.
Kind of. As mentioned above you probably shouldn’t have each of these sub-modules as their own project. Just have one top-level Project.toml for VoronoiCLR.
I have only a single Project.toml, namely the one you see in the tree I posted. The folders are accessible becaues the /home/alice/src/VoronoiCLR/src/VoronoiCLR.jl file contains this:
Okay. This is slightly beyond my skills at this point.
I am not 100% sure the limits of Revise with respect to including sub-modules in that way. Hopefully someone with more expertise can chime in. In general, you don’t need to use modules that much, and using more than one module per package can complicate things. But it’s not impossible and I will defer to someone who knows more than me.
I think you are doing everything right. I personally don’t do it the julia --project= way. I just do the dev, then it is in my standard environment and I can do the short and sweet using Revise, VoronoiCLR after starting julia.
If Revise is working, then I think you should be all set.
Your folder structure is unusual, and could maybe be “flatter” with more things split out into separate folders and relying on one another via dev, but if things are working at this point that’s good.
I find it pretty surprising that making use of sub-modules at all is considered unusual, but ok. Splitting my submodules into separate packages doesn’t seem like it makes my life easier, so I’ll keep this setup.
Thanks everyone! I think all my confusions have been addressed now.