General vs Custom Registries

I am interested in views on registering a package in the General registry versus managing my own Custom Registry.

For some packages that are widely used this is obvious (ForwarsDiff, Optim, StaticArrays, . . .); But what about packages that are more „end-user“ oriented and maybe used only by a small community, possibly just 3-5 connected research groups.

At the moment I often just don’t register such packages and Tell people to just clone them. But this quickly becomes problematic to manage. On the other hand I am not comfortable registering 10 new packages in general that are not at all polished and likely only used by a handful of people.

I’ve asked this question once before but well before the new Pkg.jl arrived and I wonder whether the views have now evolved.

2 Likes

Seems like a perfect case for your own registry.

2 Likes

I’d also be curious to hear from others what their experience is in managing a small registry - was it worthwhile? What are the advantages / disadvantages?

From everything I’ve read it actually sounds a bit involved since one has to manage all the TOML files by hand? Or have I missed something?

Everything to update is in Registrator.jl but there are a bunch of other stuff in there as well so it might be a bit hard to find. At some point we should factor out a pure RegistryTools.jl from Registrator.

https://github.com/JuliaRegistries/Registrator.jl/blob/24ba3a1cf2608c28b7e50d71ca4013bad320100c/src/regedit/register.jl#L451-L471 should be most of what you need.

1 Like

It works very well for me. Thanks to Gunnar Farneback’s Registrator fork, it is no longer necessary to manage TOML files by hand.

I wrote up details here, though credit goes to another discourse contributer who figured out the workflow.

2 Likes

that’s a great document, thank you!

Hi. I’d just like to add another voice in favour of small private registries. I work for a small company (~10 employees) that does a lot of work in julia. Setting up a company registry for our private packages has been very helpful and the benefits have far outweighed the small overhead of maintaining the registry. The combination of the new package manager’s overall functionality with the private registry has been great. The biggest benefit has been for employees that are users of our private packages and not really developers. Having them be able to install/update our private packages without having to manually clone repos, checkout branches, etc–as well as the ability to run simulations in reproducible julia environments—has definitely upped productivity.

7 Likes

Just to report back my initial experience : it really has been straightforward to setup my own registry, largely thanks to

(No new information here - just acknowledging the help)

4 Likes

What would be the recommended process of moving a package from General to my own registry?

… and indeed vice-versa?

If it is in the General registry it should stay there since people might depend on it. But having it both in the General registry and your custom one at the same time should be fine.

Moving from your registry to General is just to register it like any package that should be registered in General.

Thanks. So how do I distinguish from which registry I should install a package?

If it is only useful for yourself or a closed group of people (like your research group or university etc) then a private registry makes sense. If it is a package “for the community” then General makes sense.

1 Like

Sorry, I wasn’t clear - what I meant was : If I have a package in both registries, how can i determine which “version” to install? E.g. I might have more regular updates in my private registry than in General.

Oh, registry information is merged so it will try to install the latest version that exist among both registries.

1 Like

fantastic - thanks for your help.