# Announcement: automatic merging for the General registry

**URL:** <https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961>\
**Category:** Community\
**Tags:** package, announcement, pkg, announcements, package-manager\
**Created:** [October 15, 2019, 11:27pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961 "2019-10-15T23:27:06Z")\
**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:** [October 17, 2019, 2:36am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/21 "2019-10-17T02:36:36Z")

</div>

You can instantiate a manifest without resolving it. That’s kind of the point of a manifest: it doesn’t matter how you got it, it’s a record of exactly what version you were using.

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [October 17, 2019, 2:40am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/22 "2019-10-17T02:40:30Z")

</div>

What I had in mind when I said `Pkg.instantiate`able was for the case when there is no `Manifest.toml`. Maybe I should have said `Pkg.resolve`able.

---

<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:** [October 17, 2019, 2:43am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/23 "2019-10-17T02:43:05Z")

</div>

That’s why I think people should check in manifests.

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [October 17, 2019, 2:47am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/24 "2019-10-17T02:47:19Z")

</div>

Personally I do it in almost all of my projects. I even created a helper package to do this [https://github.com/tkf/Run.jl](https://github.com/tkf/Run.jl).

But what I’m asking here is the consequence of current practice and implementation. Maybe describing possible problems motivate people more to check in manifests?

---

<div class="post-metadata">

**Author:** ![jw3126](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jw3126/32/3086_2.png) [@jw3126](https://discourse.julialang.org/u/jw3126)\
**Post date:** [October 17, 2019, 9:30am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/25 "2019-10-17T09:30:24Z")

</div>

Another possible attack would be to shadow the name of a popular but unregistered package. For instance I did `]add Cthulhu` at a time it was not registered.

---

<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:** [October 17, 2019, 3:40pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/26 "2019-10-17T15:40:08Z")

</div>

Indeed. The only cure for that is registering popular packages. Another reason there should be a single central registry of public packages.

---

<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:** [October 20, 2019, 2:19am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/27 "2019-10-20T02:19:25Z")

</div>

Is there a top secret one-liner or function to list all current packages and versions that an activated environment depends on?

---

<div class="post-metadata">

**Author:** ![SebastianM-C](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sebastianm-c/32/2480_2.png) [@SebastianM-C](https://discourse.julialang.org/u/SebastianM-C)\
**Post date:** [October 20, 2019, 10:18am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/28 "2019-10-20T10:18:23Z")

</div>

Like `]st -m`?

---

<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:** [October 20, 2019, 10:21am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/29 "2019-10-20T10:21:58Z")

</div>

Exactly like that SebatianM-C! Thanks!

Does anyone know if for the Compat lines we have to list versions for packages which don’t show a version number after st -m?

IE:

```julia
 [2a0f44e3] Base64 
  [ade2ca70] Dates 
  [8bb1440f] DelimitedFiles 
  [8ba89e20] Distributed 
  [7b1f6079] FileWatching 
  [9fa8497b] Future 
  [b77e0a4c] InteractiveUtils 
  [76f85450] LibGit2 
  [8f399da3] Libdl 
  [37e2e46d] LinearAlgebra 
  [56ddb016] Logging 
  [d6f4376e] Markdown 
  [a63ad114] Mmap 
  [44cfe95a] Pkg 
  [de0858da] Printf 
  [9abbd945] Profile 
  [3fa0cd96] REPL 
  [9a3f8284] Random 
  [ea8e919c] SHA 
  [9e88b42a] Serialization 
  [1a1011a3] SharedArrays 
  [6462fe0b] Sockets 
  [2f01184e] SparseArrays 
  [10745b16] Statistics 
  [4607b0f0] SuiteSparse 
  [8dfed614] Test 
  [cf7118a7] UUIDs 
  [4ec0a83e] Unicode 

```

if so how do we get those version numbers?

---

<div class="post-metadata">

**Author:** ![SebastianM-C](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sebastianm-c/32/2480_2.png) [@SebastianM-C](https://discourse.julialang.org/u/SebastianM-C)\
**Post date:** [October 20, 2019, 10:42am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/30 "2019-10-20T10:42:10Z")

</div>

Those are the standard libraries and it is what was discussed above. Right now you don’t need to have compat bounds for them.

---

<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:** [October 20, 2019, 11:19am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/31 "2019-10-20T11:19:12Z")

</div>

Thanks for clarifying. Well I have to say - this has been eye opening. I religiously wrote code myself rather then use other peoples packages for small routine tasks incase dependency issues broke out later(been burned from python too many times). My package which has only 11 depends needed 64 compat lines! Whew.

---

<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:** [October 20, 2019, 12:18pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/32 "2019-10-20T12:18:43Z")

</div>

Scratch that - heads up to my fellow ignoramuses’ not all the packages in st -m are needed for compat. Only the ones listed in [deps] or [extras] in your toml are. It’s a pattern matching and parsing problem to do this but not too bad…

---

<div class="post-metadata">

**Author:** ![SebastianM-C](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sebastianm-c/32/2480_2.png) [@SebastianM-C](https://discourse.julialang.org/u/SebastianM-C)\
**Post date:** [October 20, 2019, 5:15pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/33 "2019-10-20T17:15:44Z")

</div>

Yes, from what I understand you only need bounds for direct dependencies (`]st`), not all dependencies (`]st -m`).

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [October 20, 2019, 6:41pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/34 "2019-10-20T18:41:22Z")

</div>

Compat bounds are only required for your direct dependencies, by which I mean the packages listed under `[deps]`.

Compat bounds are not required for indirect dependencies.

Compat bounds are not required for packages listed in `[extras]`.

Compat bounds are not required for `stdlib`s.

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [October 20, 2019, 6:42pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/35 "2019-10-20T18:42:24Z")

</div>

If you make a release with Registrator, automerge will post a comment on the pull request listing all packages for which you need to add compat bounds.

So you don’t have to figure it out yourself. Just make a release, and automerge will let you know what changes you need to make.

---

<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:** [October 20, 2019, 9:47pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/36 "2019-10-20T21:47:07Z")

</div>

Just so you know. If you add “extra” things to compat that aren’t in `[deps]` `[extras]` it will tell you them one at a time.Making you manually correct them and add then commit and push each time.

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [October 20, 2019, 9:48pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/37 "2019-10-20T21:48:07Z")

</div>

I’m not sure what you mean. Do you have an example that you can link?

---

<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:** [October 20, 2019, 9:48pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/38 "2019-10-20T21:48:44Z")

</div>

[https://github.com/caseykneale/ChemometricsTools.jl/issues/17](https://github.com/caseykneale/ChemometricsTools.jl/issues/17)

---

<div class="post-metadata">

**Author:** ![dilumaluthge](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dilumaluthge/32/29283_2.png) [@dilumaluthge](https://discourse.julialang.org/u/dilumaluthge)\
**Post date:** [October 20, 2019, 10:01pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/39 "2019-10-20T22:01:01Z")

</div>

Now I see what you mean.

That is very annoying.

I have opened an issue here: [https://github.com/JuliaRegistries/Registrator.jl/issues/237](https://github.com/JuliaRegistries/Registrator.jl/issues/237)

---

<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:** [October 20, 2019, 10:30pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/40 "2019-10-20T22:30:43Z")

</div>

Well hopefully no one else is as daft as me - but if it fits into a priority with you all it may help someone else out :).

[Previous page](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961.md?page=1)

[Next page](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961.md?page=3)
