Registering a new package in General

Hi all,

I appologize if this info is already available somewhere else - just send me a link if I have missed it. I am trying to understand what the norms are about registering new packages in the General registry.

First I have a general question about the process:

  1. I do not see any way to register new packages directly in the General registry. If someone creates a new package for v1.0, should they just register it the old way on METADATA and let it sync to General?

Second, I have some specific questions about our use case. We are trying to maintain an ecosystem of small packages for solving MDPs and POMDPs. The list of packages can be found here: GitHub - JuliaPOMDP/POMDPs.jl: MDPs and POMDPs in Julia - An interface for defining, solving, and simulating fully and partially observable Markov decision processes on discrete and continuous spaces.. In previous versions of Julia, we only registered a few of these packages because they are named with esoteric acronyms and instead kept track of them (crudely) within the POMDPs package. Here are my questions:

  1. Now that the uuid scheme fixes name clashes, should we (a) register all of these packages in General, (b) Create our own registry that we host, or (c) continue to just keep track of them in the POMDPs package?

  2. Assuming that we move forward with (b) (creating our own registry), which packages, if any, should we register in General?

Thanks!

1 Like

For now, register in METADATA and it will be transferred to General. I am working on getting the new PkgDev up to speed so things can be registered directly to General (WIP: Upgrade PkgDev to a new 1.0 era by KristofferC · Pull Request #144 · JuliaLang/PkgDev.jl · GitHub).

Different people have different opinions on this but personally, I think that splitting out packages should not be done without a lot of thought, and then only if the individual package has significant functionality on its own. If things have worked well for you by just having submodules within POMDP, I don’t see a reason for splitting out a bunch of packages from it.

4 Likes

Hi @kristoffer.carlsson, thanks for the quick response!

This isn’t quite the issue I am dealing with. The solver packages have never been submodules within POMDPs; they have always been their own packages (and I think they should be). The only question is how to provide an easy way for people to get them. Previously, POMDPs.jl had all the solver package urls hardcoded in, and just used Pkg.clone() to get them. The question is should we now (a) register all of those packages in General, (b) create our own registry, or (c) continue our old way. (c) does not seem like a good option because there is no version compatibility mechanism.

Is this still the case? I tried registering a package with Manifest and Project files and Attobot complained about missing REQUIRE. Do I have to actually set up a proper REQUIRE file just for registration purposes? Thanks

Yes.

Bummer. Any tool which automates the creation of REQUIRE based on Manifest?

make-REQUIRE.jl, see

3 Likes

Nice stuff, thanks!