Managing dependencies between un-registered packages

Hi all,
I’m looking for some advice on managing multiple unregistered packages.

I have three astronomy-related packages, DirectImages.jl, DirectOrbits.jl, and DirectDetections.jl (notice a theme?).

The first is for general utilities for manipulating images that are used by a few others in my group. The second is an orbit solver. And the third is a package for Bayesian inference building on the previous two.

Now, at this stage I’m doubtful there are many other people who would want to use these packages so I haven’t registered them. In particular, the first utility package DirectImages.jl is probably not useful to many others.

But since they are not registered, it is a pain getting them all installed across multiple machines.

They need to be add-ed in a particular order, and I often get myself into situations like this:

(DirectDetections) pkg> add Optim
    Updating registry at `~/.julia/registries/General`
   Resolving package versions...
ERROR: expected package `DirectImages [d0ffc639]` to be registered

The Julia package manager is normally such a joy to use, so I get the feeling I’m doing something wrong.

Is the best approach to use something like LocalRegistery.jl? Do others simply bite the bullet and register their packages early? Any workflow advice would be appreciated.

If others also don’t have a good way of handling this, I would like to suggest that the general registry could support registering packages under a username e.g. add username.DirectImages but without requiring e.g. the waiting period or naming rules to be followed.

I have been using a local registry for this purpose for quite some time now. The experience is very smooth – I really don’t see the downside or the need for an alternative. Is there anything in particular about that solution that you don’t like?


Thanks @hendri54. Reading a little more closely, I realize that local registries can be pushed to GitHub and accessed from other machines.
I thought that they were only for a single computer, and that a package server had to be set up for wider use (which seemed like a lot of work).

I’m trying it out now and the experience seems fairly smooth.