# 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:** 6

<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 8, 2019, 6:27pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/101 "2019-04-08T18:27:40Z")

</div>

![billede](https://global.discourse-cdn.com/julialang/original/3X/d/7/d7b796587d84ed97eeabcb77d17f671e178f139b.png)

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [April 8, 2019, 8:59pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/102 "2019-04-08T20:59:51Z")

</div>

I get that the automated PRs to add Project.toml to all registered Julia packages alleged at [Pkg3 plan and status](https://discourse.julialang.org/t/pkg3-plan-and-status/9763) won’t happen, right?

---

<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 8, 2019, 9:31pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/103 "2019-04-08T21:31:45Z")

</div>

It seems better to have people generate project files when the register the next version of their package.

---

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [April 8, 2019, 10:00pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/104 "2019-04-08T22:00:24Z")

</div>

I would _much_ prefer to somehow be able to convert all my `REQUIRE` files in one go at one point in time, than doing it whenever I want to tag one of my packages as needed. The latter will require me to revisit again and again what I need to do, and I’m sure I will forget the steps each time I do it… And if there is some script, or automatic PRs or something like that that helps me with that, it would be awesome.

In fact, even a one-time script that opened a PR against all the repos that have registered packages with the necessary changes would be awesome, I think.

---

<div class="post-metadata">

**Author:** ![anon92994695](https://avatars.discourse-cdn.com/v4/letter/a/ce7236/32.png) [@anon92994695](https://discourse.julialang.org/u/anon92994695)\
**Post date:** [April 9, 2019, 12:16am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/105 "2019-04-09T00:16:46Z")

</div>

I’m also getting the can’t find dependancy bug with CSV,

```julia
Error while trying to register: Error in `[deps]` : Package 'CSV' with UUID: 336ed68f-0bac-5ca0-87d4-7b16caf5d00b not found in registry or stdlib

```

Is this because the CSV maintainer hasn’t used registrator yet? How does this work?

---

<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 9, 2019, 5:06am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/106 "2019-04-09T05:06:05Z")

</div>

Here’s a script that can generate a project file for a package with a REQUIRE file:

[https://github.com/JuliaLang/Pkg.jl/pull/1133/files](https://github.com/JuliaLang/Pkg.jl/pull/1133/files)

You call it with `ARGS` as directories where packages live. If the first argument is `-f` then it will overwrite existing `Project.toml` files, otherwise it will refuse to do so. It generates a `[compat]` section that approximates the bounds in the REQUIRE file as closely as possible, but unfortunately since the `[compat]` section doesn’t support version ranges this translation can be a bit messy. It is strongly encouraged that you manually review the `[compat]` section and edit by hand as appropriate.

Oh, I should also note that this will only generate a correct project file if all of the dependencies have METADATA-compatible UUIDs. If you try to use this to generate a project file for a package that has dependencies that are not registered in General, this might not be the case and the results will be wrong. This is designed primarily to work for already-registered packages.

The sync script is still offline because of a hardware failure. I’m getting the sync script up and running on a different machine.

---

<div class="post-metadata">

**Author:** ![tim.holy](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tim.holy/32/52_2.png) [@tim.holy](https://discourse.julialang.org/u/tim.holy)\
**Post date:** [April 9, 2019, 9:21am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/107 "2019-04-09T09:21:58Z")

</div>

Awesome!

Folks should scan for PRs against that PR. I’ve already added one new feature, [https://github.com/JuliaLang/Pkg.jl/pull/1134](https://github.com/JuliaLang/Pkg.jl/pull/1134).

---

<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 9, 2019, 7:47pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/108 "2019-04-09T19:47:19Z")

</div>

Your PR is Merged now.

I also got the sync script back up and running. This should in theory be easy but in practice lots of people delete packages that they’ve registered which then have to be blacklisted to be skipped and people also do things like tagging versions that are unreachable even if you clone a repo, e.g. because they started the tagging process and then changed their minds and abandoned it. So in practice, keeping this thing running is an annoying process of hunting down failures and adding special cases.

Since the hardware failure has taken the sync script offline at a bad time and thereby delayed the switchover process, and since people seem to be actively contributing to the script that generates project files, it seems like it may be better to wait a bit before pulling the trigger on switching over to the new registration process, although I could be convinced otherwise.

---

<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 9, 2019, 8:17pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/109 "2019-04-09T20:17:04Z")

</div>

I’ve also looked into making pull requests automatically to add project files to packages that don’t have them. However, there are some issues.

- GitHub does not like it when people do this from personal accounts—see the last point in [New tools for open source maintainers | The GitHub Blog](https://github.blog/2018-04-18-new-tools-for-open-source-maintainers/) — @staticfloat did this previously to update a lot of travis scripts but got in some hot water for it.

- The approved way to do this seems to be create a GitHub integration, which is pretty heavyweight—it’s annoying to do from the developer perspective and needs to be added to the relevant package repos by developers, at which point it doesn’t seem that much easier than running a script locally for a one-time benefit.

In the end, I’m pretty sure that between the difficulty of getting an integration working correctly and people having to add the integration to their repos, this is more work and less reliable than just having package maintainers check out their own package repos and running the script I wrote on them. After doing that, developers can inspect the results locally and push the changes if they look good.

Note that GitHub has no issue with people doing automated actions on their _own_ repos (they explicitly call this out as acceptable in the above article), so if someone wants to script that with the `hub` tool or something, that could be something that people with many package repos could use.

---

<div class="post-metadata">

**Author:** ![anon92994695](https://avatars.discourse-cdn.com/v4/letter/a/ce7236/32.png) [@anon92994695](https://discourse.julialang.org/u/anon92994695)\
**Post date:** [April 9, 2019, 9:27pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/110 "2019-04-09T21:27:48Z")

</div>

Is it inappropriate to cheer you all on while you keep making julia my favourite language?🥳

---

<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 9, 2019, 9:38pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/111 "2019-04-09T21:38:37Z")

</div>

No, it’s very much appreciated 😄. I will be quite happy when this switch is done. The process has been far too long and annoying…

---

<div class="post-metadata">

**Author:** ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)\
**Post date:** [April 9, 2019, 10:07pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/112 "2019-04-09T22:07:20Z")

</div>

> [@anon92994695](#):
>
> Is it inappropriate to cheer you all on while you keep making julia my favourite language?🥳

Seconded 🥳 🎉

This delay has been annoying, but I continue to be grateful that the emphasis is on trying to do things right rather than to do them fast.

---

<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 10, 2019, 6:54am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/113 "2019-04-10T06:54:51Z")

</div>

> [@StefanKarpinski](#):
>
> Unfortunately, in practice people don’t actually delete tags that go wrong. Instead they tag five attempts all at once with four being wrong. I also don’t understand where the “fighting with git” comes in.

I quite often do a release, then have to edit it, but in my defense I do actually delete the release and tag and make it again. Is there functionality for editing releases in JuliaRegistrator?

---

<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 10, 2019, 1:17pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/114 "2019-04-10T13:17:07Z")

</div>

There is not because the process is different: no release is made or tagged until after everything is verified, approved and registered. By design, there is no need to replace releases. This is what makes it different than attobot and why tagging is done after approval (what @juliohm and @chakravala are unhappy about above).

---

<div class="post-metadata">

**Author:** ![simonbyrne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/simonbyrne/32/19_2.png) [@simonbyrne](https://discourse.julialang.org/u/simonbyrne)\
**Post date:** [April 10, 2019, 4:38pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/115 "2019-04-10T16:38:03Z")

</div>

I’ve decided that ultimately it is a problem with GitHub’s workflow: they have a review process and evaluation process for changes (Pull Requests), but not for releases. The deleting/retagging thing shouldn’t generally happen.

---

<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 10, 2019, 5:02pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/116 "2019-04-10T17:02:55Z")

</div>

Right, avoiding retagging was one of the design goals of the new process.

---

<div class="post-metadata">

**Author:** ![Balinus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/balinus/32/243_2.png) [@Balinus](https://discourse.julialang.org/u/Balinus)\
**Post date:** [April 10, 2019, 6:06pm UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/117 "2019-04-10T18:06:20Z")

</div>

Awesome work, thanks! 🙂

---

<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 12, 2019, 8:09am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/118 "2019-04-12T08:09:56Z")

</div>

Just FYI I copy-pasted the tag generation code given to me by Registrator into a terminal in my repo, and it resulted in a malformed tag that prevented me from using my git client (GitKraken) until I’d deleted the tag again. I think it might be related to the fact that my repo was moved to an org in the past and my local origin still pointed to the old location (github forwards it, but that appeared to not work for the tag). The git CLI still worked. Took me a few days to find out what the trouble was.

---

<div class="post-metadata">

**Author:** ![dlfivefifty](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dlfivefifty/32/1959_2.png) [@dlfivefifty](https://discourse.julialang.org/u/dlfivefifty)\
**Post date:** [April 12, 2019, 8:50am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/119 "2019-04-12T08:50:10Z")

</div>

I think I’ve lost the plot. Has the switch over been delayed, and to what date?

---

<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 12, 2019, 8:55am UTC](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/120 "2019-04-12T08:55:58Z")

</div>

The switch has been delayed to an undefined date.

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

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