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

<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 23, 2019, 12:57am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/41 "2019-10-23T00:57:00Z")

</div>

It seems that the automerging is going pretty well so far.

If you do encounter any problems with automerge, you can open an issue here: [https://github.com/JuliaRegistries/RegistryCI.jl/issues](https://github.com/JuliaRegistries/RegistryCI.jl/issues)

---

<div class="post-metadata">

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

</div>

Looks like it definitely is working!

What is the suggested merging approach for existing package names ending with capitals? Renaming existing packages could be a bit disruptive but I would opt for that if that rule stays enforced.

---

<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 25, 2019, 8:41pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/43 "2019-10-25T20:41:31Z")

</div>

> [@goedman](#):
>
> What is the suggested merging approach for existing package names ending with capitals? Renaming existing packages could be a bit disruptive but I would opt for that if that rule stays enforced.

The naming guidelines (`normal capitalization` and `not too short`) apply **only** to new packages.

The naming guidelines do not apply when merging new versions for existing packages.

---

<div class="post-metadata">

**Author:** ![goedman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/goedman/32/217_2.png) [@goedman](https://discourse.julialang.org/u/goedman)\
**Post date:** [October 25, 2019, 8:47pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/44 "2019-10-25T20:47:45Z")

</div>

Thank you! I’ll rename a new package and resubmit.

---

<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 25, 2019, 8:52pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/45 "2019-10-25T20:52:25Z")

</div>

Just FYI - you don’t have to rename your package! It is perfectly fine to have packages that don’t match the naming guidelines. It just means that the first time your package is registered, it needs to be manually merged by a human. After that, it will be automatically merged by automerge.

---

<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:** [November 8, 2019, 10:35am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/46 "2019-11-08T10:35:54Z")

</div>

I think that it would be great if these guidelines were included in one of the relevant repositories.

I can think of making a PR to

> **[GitHub - JuliaRegistries/RegistryCI.jl: Continuous integration (CI) tools for...](https://github.com/JuliaRegistries/RegistryCI.jl)**
>
> Continuous integration (CI) tools for Julia package registries, including registry consistency testing, automatic merging (automerge) of pull requests, and automatic TagBot triggers - GitHub - Juli...

and then just adding a link to that from the readme of

> **[GitHub - JuliaRegistries/Registrator.jl: Julia package registration bot](https://github.com/JuliaRegistries/Registrator.jl)**
>
> Julia package registration bot. Contribute to JuliaRegistries/Registrator.jl development by creating an account on GitHub.

or should they go somewhere else?

---

<div class="post-metadata">

**Author:** ![ericphanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericphanson/32/215186_2.png) [@ericphanson](https://discourse.julialang.org/u/ericphanson)\
**Post date:** [November 8, 2019, 10:47am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/47 "2019-11-08T10:47:41Z")

</div>

Another possibility would be the General registries repo, since that’s what uses the automerge and package authors come into contact with it frequently (via Registrator’s PRs). That’s what I went with for this attempt at least: [https://github.com/JuliaRegistries/General/pull/3567](https://github.com/JuliaRegistries/General/pull/3567). I don’t have the full set of rules included though so that would be a great addition.

---

<div class="post-metadata">

**Author:** ![ericphanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericphanson/32/215186_2.png) [@ericphanson](https://discourse.julialang.org/u/ericphanson)\
**Post date:** [November 10, 2019, 9:24pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/48 "2019-11-10T21:24:18Z")

</div>

Just to say I added the list of requirements in the latest commit to that PR

---

<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:** [November 11, 2019, 6:26am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/49 "2019-11-11T06:26:51Z")

</div>

Made a PR, including clarifications for questions which came up here:

[https://github.com/JuliaRegistries/RegistryCI.jl/pull/106](https://github.com/JuliaRegistries/RegistryCI.jl/pull/106)

---

<div class="post-metadata">

**Author:** ![ccoffrin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ccoffrin/32/400_2.png) [@ccoffrin](https://discourse.julialang.org/u/ccoffrin)\
**Post date:** [December 20, 2019, 8:57pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/50 "2019-12-20T20:57:30Z")

</div>

Regarding this “important note” from the original post,

> [@dilumaluthge](#):
>
> These guidelines are intended not as requirements for packages but as very conservative guidelines, which, if your new package or new version of a package meets them, it may be automatically merged.

The following two PRs did not pass auto merge and then remained un-merged for many days. Is there a new procedure to request “non-auto merges”? If not, then it seems that in practice these guidelines are in fact requirements.

> <https://github.com/JuliaRegistries/General/pull/6708>
>
> \- Registering package: PowerModelsAnnex
> \- Repository: https://github.com/lanl-an…si/PowerModelsAnnex.jl
> \- Created by: @ccoffrin
> \- Version: v0.2.6
> \- Commit: 3cae105da878c5b76f1906f88ff226f25af236f8
> \- Reviewed by: @ccoffrin
> \- Reference: https://github.com/lanl-ansi/PowerModelsAnnex.jl/issues/50#issuecomment-568017062

> <https://github.com/JuliaRegistries/General/pull/6563>
>
> \- Registering package: PowerModels
> \- Repository: https://github.com/lanl-ansi/Po…werModels.jl
> \- Created by: @ccoffrin
> \- Version: v0.13.1
> \- Commit: 4090bc2a9e9a5e931a468f560306763e5f8e796e
> \- Reviewed by: @ccoffrin
> \- Reference: https://github.com/lanl-ansi/PowerModels.jl/issues/509#issuecomment-568079722

---

<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:** [December 20, 2019, 9:27pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/51 "2019-12-20T21:27:11Z")

</div>

You can always ask on the `#pkg-registration` channel on Slack.

---

<div class="post-metadata">

**Author:** ![bjarthur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bjarthur/32/9638_2.png) [@bjarthur](https://discourse.julialang.org/u/bjarthur)\
**Post date:** [December 21, 2019, 4:18pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/52 "2019-12-21T16:18:21Z")

</div>

would it make sense to _not_ auto merge if the compat section of Project.toml does _not_ include the latest version of a dependency? i think we should want that it does, and if it doesn’t then the package maintainers need to justify it.

preemptively i’m going to argue that the problem with relying on CompatHelper to do this is that it’s opt-in. were similar functionality included in the auto-merge script, then, at least for those packages registered in General, maintainers would get notified that they’re lagging behind the times even if they hadn’t installed CompatHelper (because they were too lazy, didn’t know about it, whatever).

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [December 21, 2019, 6:45pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/53 "2019-12-21T18:45:36Z")

</div>

This post was temporarily hidden by the community for possibly being off-topic, unfocused, inappropriate, or spammy.

---

<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:** [December 22, 2019, 7:22am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/54 "2019-12-22T07:22:20Z")

</div>

> [@bjarthur](#):
>
> would it make sense to _not_ auto merge if the compat section of Project.toml does _not_ include the latest version of a dependency?

While I agree that it is best to keep compat bounds up to date, I don’t think that the registry (and specifically automerging) is the right place to enforce this.

Denying automerging it is somewhat of a disproportionate sanction for something that is not actually harmful, and manual reviews would just impose extra work on the registry maintainers. In addition, this would not catch cases where a new release of a dependency is made _after_ a version was tagged.

That said, if resources permit this, I think it would be great to make CompatHelper automatic for _all_ packages in the registry (with an opt-out option).

---

<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:** [December 22, 2019, 10:49am UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/55 "2019-12-22T10:49:27Z")

</div>

I think disallowing this would be too stringent; what if you need to fix a bug, a key package you depended on just released version 2.0.0 and this requires a complete rewrite of your package?

However, your idea to provide some kind of notification at registration time is really good. 👍

---

<div class="post-metadata">

**Author:** ![ccoffrin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ccoffrin/32/400_2.png) [@ccoffrin](https://discourse.julialang.org/u/ccoffrin)\
**Post date:** [December 23, 2019, 5:13pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/56 "2019-12-23T17:13:19Z")

</div>

> [@dilumaluthge](#):
>
> You can always ask on the `#pkg-registration` channel on Slack.

That is news to me. I have not yet used Julia’s Slack. In the past any discussions before merge could occur in the PR. So maybe a note about how to request exceptions to the auto-merge should be added to the documentation of this new process.

---

<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:** [December 23, 2019, 5:27pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/57 "2019-12-23T17:27:33Z")

</div>

[https://github.com/JuliaRegistries/General/blob/master/README.md#my-pull-request-was-not-approved-for-automatic-merging-what-do-i-do](https://github.com/JuliaRegistries/General/blob/master/README.md#my-pull-request-was-not-approved-for-automatic-merging-what-do-i-do)

---

<div class="post-metadata">

**Author:** ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)\
**Post date:** [December 23, 2019, 5:38pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/58 "2019-12-23T17:38:44Z")

</div>

> [@dilumaluthge](#):
>
> You can always ask on the `#pkg-registration` channel on Slack.

This should not be the answer.  
People should not have to use Slack.  
Indeed some people can’t use Slack for various reasons.

But more generally,  
I feel like asking registry maintainers on Slack is a personal action,  
where as this should be a beurocratic action.  
If that makes sense?

---

<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:** [December 23, 2019, 5:51pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/59 "2019-12-23T17:51:09Z")

</div>

Sure, it would be great to have another solution. Any suggestions?

We go through the queue periodically and do manual merges. For example, I went through yesterday and did as many manual merges as I could.

---

<div class="post-metadata">

**Author:** ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)\
**Post date:** [December 23, 2019, 6:44pm UTC](https://discourse.julialang.org/t/announcement-automatic-merging-for-the-general-registry/29961/60 "2019-12-23T18:44:38Z")

</div>

> [@dilumaluthge](#):
>
> Sure, it would be great to have another solution. Any suggestions?
> 
> We go through the queue periodically and do manual merges.

I think manually revieing the queue is the way to go.  
Is it hard to see which things have people actually talking on, vs just bots?

Maybe we should have a Registry feed slack channel that reposts any comments not made by a bot?  
Like the stackoverflow one?

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

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