Open mbauman opened 4 years ago
I think we should actually do more than this: when you update and you're talking to a Pkg server, you should automatically install and update all the registries that it advertises. That way you set the Pkg server and you automatically know about all the right packages. Making people mess about with adding and removing registries just doesn't work. I'd like to do this for 1.5 if I can get everything done in time.
Oh, this also removes any need for special casing General: instead we make pkg.julialang.org
the default pkg server and when users connect to that, they get General "for free".
It looks to me like the /registry
resource effectively already advertises which registries are available and that everything else are Pkg features?
Yes, this is more of a Pkg issue.
I guess I'm a little slow on the uptake. So the /registry
resource will only give direct information about the registry UUIDs, and currently the only way to add a non-General registry from a Pkg server is by UUID? Well, if that's the case it's not gonna fly. How can I help get this off the ground?
The notion is that you set your pkg server—or use pkg.julialang.org
by default—and the pkg server advertises which registries is serves—in the case of pkg.julialang.org
only General
. The client would automatically install any registries advertised by its current pkg server. The client could also automatically update any registries installed as git repos since it can do so by git pulling them and they were presumably manually installed (except for legacy General registries). This arrangement largely moves management of what registries to look in from the client to the server.
Yes, that plan sounds good. I'm more wondering about what can be done to make it a reality sooner rather than later. Or is this earlier comment
I'd like to do this for 1.5 if I can get everything done in time.
already under control?
I've been doing a major Pkg rewrite from the resource acquisition layer up, but it's not going to be ready in time for the 1.5 feature freeze, so I'll have to pause that and figure out where to add this functionality in the current architecture this week.
I have a working PkgServer set up now that serves General and a private registry, so I can at least help with testing a solution. On 1.4 it does work to do registry add
by UUID, but that's obviously not so convenient.
registry add
with no arguments could install all known registries.
Since a great use of a Package Server is to coordinate work across multiple registries — potentially a private registry in addition to the General one — it'd be helpful if the Package Server could advertise which registries are available. This could allow for two niceties on the client side:
] registry add General
is currently special-cased.and/or