# Switching package registration systems soon

**URL:** https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677
**Category:** Announcements
**Tags:** package-manager
**Created:** [April 3, 2019, 6:48am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677 "2019-04-03T06:48:03Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)
#### Post date: [April 3, 2019, 10:08pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/21 "2019-04-03T22:08:52Z")

</div>

Yes, new versions will need Project files in order to be registered with Registrator. No, we don’t currently have a way to autogenerate these. I think @iamed2 might have a tool for that? If not, I might be able to whip something up by then since we do have the necessary data in the registry already to some extent. Getting the dependency version bounds right is the tricky part…

---

<div class="post-metadata">

### Author: ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)
#### Post date: [April 3, 2019, 10:09pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/22 "2019-04-03T22:09:26Z")

</div>

Yes, after this you can just generate a random UUID as the lord intended.

---

<div class="post-metadata">

### Author: ![tobias.knopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobias.knopp/32/7551_2.png) [@tobias.knopp](https://discourse.julialang.org/u/tobias.knopp)
#### Post date: [April 3, 2019, 10:12pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/23 "2019-04-03T22:12:36Z")

</div>

I have two questions:

- what if my package currently only has REQUIRE. Will it still be installable on monday?
- From the docs it is not fully clear for me howto tag a release. Registering is done using a PR or issue, but how is tagging done?

---

<div class="post-metadata">

### Author: ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)
#### Post date: [April 3, 2019, 10:13pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/24 "2019-04-03T22:13:14Z")

</div>



---

<div class="post-metadata">

### Author: ![iamed2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iamed2/32/215082_2.png) [@iamed2](https://discourse.julialang.org/u/iamed2)
#### Post date: [April 3, 2019, 10:14pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/25 "2019-04-03T22:14:53Z")

</div>

When this happens, we (Invenia) will not be able to have private packages depend on versions of packages only released in General. This is because our process uses our fork of METADATA.jl as a single source of truth, and generates our private registry with it, including the (mandatory) version bounds. So even though we use the General registry, our package compat will be bounded at the versions that exist in METADATA.jl.

We may be able to overcome this somehow by reading versions from General, but we’re currently looking into how feasible that is (as of like 5 minutes ago).

Ideally we can register privately but the person who was supposed to be looking into that has been away. Based on the code in [https://github.com/JuliaComputing/Registrator.jl/blob/master/src/register.jl#L115](https://github.com/JuliaComputing/Registrator.jl/blob/master/src/register.jl#L115) it doesn’t seem like it will be that hard though?

---

<div class="post-metadata">

### Author: ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)
#### Post date: [April 3, 2019, 10:16pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/26 "2019-04-03T22:16:48Z")

</div>

> [@tobias.knopp](#):
>
> what if my package currently only has REQUIRE. Will it still be installable on monday?

Yes, anything that is installable now will continue to be installable on all versions of Julia. This change only affects registering new versions of packages. If you don’t maintain packages or don’t plan to make any new releases any time soon, you don’t have to worry about it until you do. The warning is mostly so that package maintainers who do want to release new versions of packages are aware that there will be a new process and it may be a little bit rough. Don’t plan things so that it’s crucial to your life to get a new version of something released on Monday.

> From the docs it is not fully clear for me howto tag a release. Registering is done using a PR or issue, but how is tagging done?

@Nishanth_Kottary, care to field this one?

---

<div class="post-metadata">

### Author: ![iamed2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iamed2/32/215082_2.png) [@iamed2](https://discourse.julialang.org/u/iamed2)
#### Post date: [April 3, 2019, 10:17pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/27 "2019-04-03T22:17:47Z")

</div>

I do not have a tool to autogenerate Project.toml from REQUIRE, but @oxinabox might?

---

<div class="post-metadata">

### Author: ![iamed2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/iamed2/32/215082_2.png) [@iamed2](https://discourse.julialang.org/u/iamed2)
#### Post date: [April 3, 2019, 10:47pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/28 "2019-04-03T22:47:40Z")

</div>

Apparently it was Curtis and the thing kind of almost works and only in 1.0: [Generate an almost-right Project.toml file from a REQUIRE file in Julia 1.0 \<= VERSION \< 1.1- · GitHub](https://gist.github.com/iamed2/87d2d4d6a458a8072638439fb6070dc0)

---

<div class="post-metadata">

### Author: ![musm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/musm/32/3675_2.png) [@musm](https://discourse.julialang.org/u/musm)
#### Post date: [April 4, 2019, 12:52am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/29 "2019-04-04T00:52:46Z")

</div>

I tried it out, but didn’t see any notifications or status of my request? Where’s the General registry fork located at?

---

<div class="post-metadata">

### Author: ![Nishanth\_Kottary](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nishanth_kottary/32/7791_2.png) [@Nishanth\_Kottary](https://discourse.julialang.org/u/Nishanth_Kottary)
#### Post date: [April 4, 2019, 4:35am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/30 "2019-04-04T04:35:46Z")

</div>

Some of the things mentioned in the Registrator README isn’t enabled (to keep things simple) so that might not be the best guide. I would suggest reading the instructions from here: [https://juliaregistrator.github.io](https://juliaregistrator.github.io).

Tags and releases are not required for the registration process. It is up to the user to create them if they want them.

---

<div class="post-metadata">

### Author: ![c42f](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/c42f/32/52842_2.png) [@c42f](https://discourse.julialang.org/u/c42f)
#### Post date: [April 4, 2019, 5:39am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/31 "2019-04-04T05:39:18Z")

</div>

I tried it on a small project and made various mistakes which the bot pointed out with helpful error messages. [Registrator test · Issue #12 · c42f/FastClosures.jl · GitHub](https://github.com/c42f/FastClosures.jl/issues/12)

Looks very nice so far!

---

<div class="post-metadata">

### Author: ![jmgnve](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jmgnve/32/1906_2.png) [@jmgnve](https://discourse.julialang.org/u/jmgnve)
#### Post date: [April 4, 2019, 6:26am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/32 "2019-04-04T06:26:00Z")

</div>

Is this a good example of the Registrator workflow, just so I don’t misunderstand the stuff. I couldn’t find a complete description of the workflow.

Creating a new package:

(1) Create a new package using these [instructions in the pkg docs](https://julialang.github.io/Pkg.jl/v1/creating-packages/).

(2) Work on the code until you are satisfied, and do commits as you like.

(3) Change the version number in the Project.toml file to one you like, or keep it. Then make a commit and comment on that one with “@JuliaRegistrator `register()`”. Wait until the maintainer accepts the pull request. (Here there are options using PRs and issues too).

(4) Optionally: Tag a release on github that matches your version number in Project.toml file.

Creating a new version release of an existing package by repeating step 3 and 4.

Is this a good way to do it? Does this mean that the maintainer of General will have to accept the PR for each new version release too, not only new packages? Thanks for feedback.

---

<div class="post-metadata">

### Author: ![Nishanth\_Kottary](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nishanth_kottary/32/7791_2.png) [@Nishanth\_Kottary](https://discourse.julialang.org/u/Nishanth_Kottary)
#### Post date: [April 4, 2019, 10:15am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/33 "2019-04-04T10:15:45Z")

</div>

Yes, this is the idea.

We will soon have auto merging of PRs on General through CI without human intervention.

---

<div class="post-metadata">

### Author: ![tobias.knopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobias.knopp/32/7551_2.png) [@tobias.knopp](https://discourse.julialang.org/u/tobias.knopp)
#### Post date: [April 4, 2019, 10:33am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/34 "2019-04-04T10:33:03Z")

</div>

> [@Nishanth\_Kottary](#):
>
> Some of the things mentioned in the Registrator README isn’t enabled (to keep things simple) so that might not be the best guide. I would suggest reading the instructions from here: [https://juliaregistrator.github.io](https://juliaregistrator.github.io).
> 
> Tags and releases are not required for the registration process. It is up to the user to create them if they want them.

I still do not get it. Registration is clear. But how do I make versions? Is now the version in Project.toml relevant? It was not before.

---

<div class="post-metadata">

### Author: ![mkborregaard](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkborregaard/32/556_2.png) [@mkborregaard](https://discourse.julialang.org/u/mkborregaard)
#### Post date: [April 4, 2019, 10:33am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/35 "2019-04-04T10:33:15Z")

</div>

Oh so the way to set the version is to add it manually to the project.toml file?

---

<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: [April 4, 2019, 10:41am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/36 "2019-04-04T10:41:03Z")

</div>

> [@tobias.knopp](#):
>
> But how do I make versions? Is now the version in Project.toml relevant? It was not before.

> [@mkborregaard](#):
>
> Oh so the way to set the version is to add it manually to the project.toml file?

Yes, the `version = ...` field in the `Project.toml` file is the version number.

---

<div class="post-metadata">

### Author: ![tobias.knopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobias.knopp/32/7551_2.png) [@tobias.knopp](https://discourse.julialang.org/u/tobias.knopp)
#### Post date: [April 4, 2019, 10:48am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/37 "2019-04-04T10:48:02Z")

</div>

And then `@JuliaRegistrator register()` to make a release? Or what is the term `register` has to be replaced by?

---

<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: [April 4, 2019, 10:54am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/38 "2019-04-04T10:54:27Z")

</div>

Yes, see e.g. [Registrator.jl/README.md at master · JuliaComputing/Registrator.jl · GitHub](https://github.com/JuliaComputing/Registrator.jl/blob/master/README.md)

---

<div class="post-metadata">

### Author: ![tobias.knopp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tobias.knopp/32/7551_2.png) [@tobias.knopp](https://discourse.julialang.org/u/tobias.knopp)
#### Post date: [April 4, 2019, 11:04am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/39 "2019-04-04T11:04:23Z")

</div>

I cannot find the term version in the readme. From reading that document it also is not clear for me that `register` will make a release. I would either suggest using two different terms for registration and release making or name the entire thing `publish` which would cover both cases. I recall it was once called `publish` in the `PkgDev` days.

---

<div class="post-metadata">

### Author: ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)
#### Post date: [April 4, 2019, 1:56pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/40 "2019-04-04T13:56:44Z")

</div>

> [@tobias.knopp](#):
>
> From reading that document it also is not clear for me that `register` will make a release. I would either suggest using two different terms for registration and release making or name the entire thing `publish` which would cover both cases. I recall it was once called `publish` in the `PkgDev` days.

IMHO both “registering a new release” and “publishing a new release” sound ok, but I’d also prefer the latter choice (mostly because it’s what npm uses, which obviously isn’t a great argument).

[Previous page](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677.md?page=1)

[Next page](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677.md?page=3)
