# Registering a new package in General

**URL:** https://discourse.julialang.org/t/registering-a-new-package-in-general/13900
**Category:** General Usage
**Created:** [August 22, 2018, 7:03pm UTC](https://discourse.julialang.org/t/registering-a-new-package-in-general/13900 "2018-08-22T19:03:33Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![zsunberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zsunberg/32/1883_2.png) [@zsunberg](https://discourse.julialang.org/u/zsunberg)
#### Post date: [August 22, 2018, 7:03pm UTC](https://discourse.julialang.org/t/registering-a-new-package-in-general/13900/1 "2018-08-22T19:03:33Z")

</div>

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.](https://github.com/JuliaPOMDP/POMDPs.jl#supported-packages). 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!

---

<div class="post-metadata">

### Author: ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)
#### Post date: [August 22, 2018, 7:24pm UTC](https://discourse.julialang.org/t/registering-a-new-package-in-general/13900/2 "2018-08-22T19:24:59Z")

</div>

> [@zsunberg](#):
>
> 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?

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](https://github.com/JuliaLang/PkgDev.jl/pull/144)).

> [@zsunberg](#):
>
> Now that the uuid scheme fixes name clashes, should we (a) register all of these packages in General, (b) Create our own repository that we host, or © continue to just keep track of them in the POMDPs package?

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.

---

<div class="post-metadata">

### Author: ![zsunberg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zsunberg/32/1883_2.png) [@zsunberg](https://discourse.julialang.org/u/zsunberg)
#### Post date: [August 22, 2018, 8:50pm UTC](https://discourse.julialang.org/t/registering-a-new-package-in-general/13900/3 "2018-08-22T20:50:22Z")

</div>

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

> [@kristoffer.carlsson](#):
>
> I don’t see a reason for splitting out a bunch of packages from it.

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](https://github.com/JuliaPOMDP/POMDPs.jl/blob/master/src/constants.jl), 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.

---

<div class="post-metadata">

### Author: ![essenciary](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/essenciary/32/210469_2.png) [@essenciary](https://discourse.julialang.org/u/essenciary)
#### Post date: [January 11, 2019, 10:28am UTC](https://discourse.julialang.org/t/registering-a-new-package-in-general/13900/4 "2019-01-11T10:28:10Z")

</div>

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

---

<div class="post-metadata">

### Author: ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)
#### Post date: [January 11, 2019, 10:48am UTC](https://discourse.julialang.org/t/registering-a-new-package-in-general/13900/5 "2019-01-11T10:48:24Z")

</div>

> [@essenciary](#):
>
> Do I have to actually set up a proper REQUIRE file just for registration purposes?

Yes.

---

<div class="post-metadata">

### Author: ![essenciary](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/essenciary/32/210469_2.png) [@essenciary](https://discourse.julialang.org/u/essenciary)
#### Post date: [January 11, 2019, 2:28pm UTC](https://discourse.julialang.org/t/registering-a-new-package-in-general/13900/6 "2019-01-11T14:28:54Z")

</div>

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

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [January 11, 2019, 2:47pm UTC](https://discourse.julialang.org/t/registering-a-new-package-in-general/13900/7 "2019-01-11T14:47:17Z")

</div>

`make-REQUIRE.jl`, see

> <https://gist.github.com/tpapp/3b6def2b43cfb9566e3048c37aeed6ab>

---

<div class="post-metadata">

### Author: ![essenciary](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/essenciary/32/210469_2.png) [@essenciary](https://discourse.julialang.org/u/essenciary)
#### Post date: [January 11, 2019, 3:09pm UTC](https://discourse.julialang.org/t/registering-a-new-package-in-general/13900/8 "2019-01-11T15:09:50Z")

</div>

> [@Tamas\_Papp](#):
>
> [make-REQUIRE.jl · GitHub](https://gist.github.com/tpapp/3b6def2b43cfb9566e3048c37aeed6ab)

Nice stuff, thanks!
