# \[ANN\] TagBot: Creates tags and releases for your Julia packages when they're registered

**URL:** <https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084>\
**Category:** Package Announcements\
**Tags:** tagbot\
**Created:** [April 12, 2019, 4:00pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084 "2019-04-12T16:00:00Z")\
**Posts on this page:** 20\
**Page:** 2

<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 21, 2019, 8:27pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/21 "2019-04-21T20:27:54Z")

</div>

> [@ericphanson](#):
>
> I can’t seem to edit or delete the GitHub release.

Why?!?

---

<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:** [April 21, 2019, 8:31pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/22 "2019-04-21T20:31:00Z")

</div>

Ok, that got me to try again and I was just clicking on the wrong places. Sorry!

---

<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 21, 2019, 8:33pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/23 "2019-04-21T20:33:25Z")

</div>

Deleting a release on GitHub is quite annoying, it requires several clicks and you have to delete the associated tag as well, but I was surprised that you can’t delete a release from your own repository.

---

<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:** [April 21, 2019, 8:35pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/24 "2019-04-21T20:35:10Z")

</div>

Right, makes sense; somehow I thought since TagBot had made the release that was why I couldn’t, instead of the simpler explanation that I was just doing it wrong. But I’ve got it sorted out now I think.

---

<div class="post-metadata">

**Author:** ![felipenoris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/felipenoris/32/553_2.png) [@felipenoris](https://discourse.julialang.org/u/felipenoris)\
**Post date:** [April 21, 2019, 10:02pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/25 "2019-04-21T22:02:02Z")

</div>

Why is this new setup (Registrator + TagBot) better than the old one (attobot) which required just a new tag to do the whole process?

---

<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 21, 2019, 10:13pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/26 "2019-04-21T22:13:03Z")

</div>

I have to say I find the new system really cumbersome as well… I also think what is really missing is clear guidelines, written in one place, how one is supposed to use this new system, what steps to take to say release a new version etc.

For example, is the idea now that one creates a branch for a potential release, increases `version` in the `Project.toml`, then asks Registrator to register that, wait until it is merged, then somehow merge the release branch back into `master`? Or some other process? It would be really helpful if the creators of this new system wrote down their take on all of that in one place so that package devs don’t have to think about this, figure this out ourselves, but just can follow a best practice system.

---

<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 21, 2019, 10:15pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/27 "2019-04-21T22:15:39Z")

</div>

1. Set the `version` field to your new desired version.
2. `@JuliaRegistrator register()` on the commit/branch you want to release.
3. If something is incorrect, adjust, and redo step 2.
4. Done.

Edit: It is literally the _exact same steps_ as with `attobot`, with the exception that you don’t have to delete tags/releases when you find an error.

---

<div class="post-metadata">

**Author:** ![felipenoris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/felipenoris/32/553_2.png) [@felipenoris](https://discourse.julialang.org/u/felipenoris)\
**Post date:** [April 21, 2019, 10:18pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/28 "2019-04-21T22:18:46Z")

</div>

But as I understand, this is just the first part of the process, right? I mean, will Documenter release docs be updated if I do just that?

---

<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 21, 2019, 10:20pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/29 "2019-04-21T22:20:14Z")

</div>

Nothing has changed with Documenter, that is completely unrelated.

---

<div class="post-metadata">

**Author:** ![felipenoris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/felipenoris/32/553_2.png) [@felipenoris](https://discourse.julialang.org/u/felipenoris)\
**Post date:** [April 21, 2019, 10:28pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/30 "2019-04-21T22:28:07Z")

</div>

This new process is totally fine with me. I’m just provoking you to think about the whole process and not lose focus. I’ll remember to tag releases just to trigger the Documenter. But I’m an experienced Julia user. I’m afraid others won’t see this. Or maybe I’m just wrong.

---

<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 21, 2019, 10:30pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/31 "2019-04-21T22:30:31Z")

</div>

With TagBot installed, the new process is super easy. It might have been easier to merge Registrator and TagBot though.

---

<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 21, 2019, 10:32pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/32 "2019-04-21T22:32:49Z")

</div>

> [@tobias.knopp](#):
>
> It might have been easier to merge Registrator and TagBot though.

Yea, that was the case at first but then people got butthurt when they had to give Registrator write access to their repos.

---

<div class="post-metadata">

**Author:** ![felipenoris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/felipenoris/32/553_2.png) [@felipenoris](https://discourse.julialang.org/u/felipenoris)\
**Post date:** [April 21, 2019, 11:03pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/33 "2019-04-21T23:03:52Z")

</div>

The Documenter situation would fit current `Registrator` workflow (without needing TagBot) if all doc history could be hosted at [pkg.julialang.org](http://pkg.julialang.org) with deterministic URLs. Package owners would just update docs link to follow [pkg.julialang.org](http://pkg.julialang.org) URL, and Registrator would trigger docs update at that site. It looks like a part of this is already working.

I think this is the way Rust’s Cargo works.

---

<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:** [April 22, 2019, 2:51am UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/34 "2019-04-22T02:51:33Z")

</div>

> [@davidanthoff](#):
>
> For example, is the idea now that one creates a branch for a potential release, increases `version` in the `Project.toml` , then asks Registrator to register that, wait until it is merged, then somehow merge the release branch back into `master` ?

This is possible but it’s an optional feature of Registrator.jl ([I used it](https://github.com/tkf/IPython.jl/issues/16) so I know it works). But I think you would need to understand that this feature is potentially dangerous because you would break the assumption that Registrator.jl is making if you rebase the branch after the registration is complete. IIUC this is why PR-based workflow (still mentioned in [full\_readme.md](https://github.com/JuliaComputing/Registrator.jl/blob/v0.0.3/full_readme.md#how-to-use)) is currently disabled. See also [Zot/bitbucket support by zot · Pull Request #1 · JuliaComputing/Registrator.jl · GitHub](https://github.com/JuliaComputing/Registrator.jl/issues/1#issuecomment-465730630)

I think the simplest workflow would be to bump `version`, push it to the _master_ branch, open an issue with `@JuliaRegistrator register()`. Note that putting `@JuliaRegistrator register()` in an issue makes sure that Registrator.jl sees the master branch and not any other branches. This workflow _may_ clutter your master branch if you are requested to fix something during the registration process. However, unless you really hate cluttering the master branch, I don’t think you need to go with the branch-based workflow.

---

<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:** [April 22, 2019, 6:36am UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/35 "2019-04-22T06:36:36Z")

</div>

> [@fredrikekre](#):
>
> 1. Set the `version` field to your new desired version.
> 2. `@JuliaRegistrator register()` on the commit/branch you want to release.
> 3. If something is incorrect, adjust, and redo step 2.
> 4. Done.
> 
> Edit: It is literally the _exact same steps_ as with `attobot` , with the exception that you don’t have to delete tags/releases when you find an error.

Saying _“It is literally the exact same steps as with `attobot`”_ is pretty misleading.

- Step 1 was optional with attobot. (Just don’t put any version in Project.toml). Instead you just put the version in the github release.
- Step 2 is also completely different, it involved magic comments on a commit/issue/PR. Rather than selecting a commit/branch via a webinterface.
- Step 3 is different (as you said) since befor you had to delete tags and relases when you found an error
- Also without TagBot, step 4 should be “tag and make a github release”.  
so that people can actually see that a release has been done on GitHub.

---

<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:** [April 22, 2019, 7:55am UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/36 "2019-04-22T07:55:19Z")

</div>

> [@oxinabox](#):
>
> Saying _"It is literally the exact same steps as with `attobot` "_ is pretty misleading.

Possibly, but I think that just understanding the new process _as is_ is perhaps easier than comparing with attobot, as the whole thing is pretty simple.

BTW, `@` invocations in comments/issues on Github are not “magic”, it is a pretty standard invocation mechanism for bots. I like it very much.

I also love the fact that I don’t have to go through deleting tags/releases when I mess up. I think that the new registry management process is very well thought out and works smoothly.

---

<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:** [April 22, 2019, 8:05am UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/37 "2019-04-22T08:05:22Z")

</div>

Sorry, I don’t mean to sound down on it.  
It has its pros and cons.  
Overall, I feel basically neural about it.

My point was: saying it is exactly the same will mislead people.  
Perhaps @fredrikekre meant to say:  
_“it is exactly as complicated”_

> BTW, `@` invocations in comments/issues on Github are not “magic”, it is a pretty standard invocation mechanism for bots. I like it very much.

I would disagree, bots are magic. Talking to them makes that magic more obvious than them just doing stuff when you make a release.

---

<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:** [April 22, 2019, 8:22am UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/38 "2019-04-22T08:22:01Z")

</div>

> [@oxinabox](#):
>
> Perhaps `@fredrikekre` meant to say:  
> \_“it is exactly as complicated” \_

I didn’t find attobot complicated, and I find the new mechanism simpler. YMMV.

My point was that given how simple the process is, it can (perhaps should?) be understood without comparison to attobot.

---

<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:** [April 22, 2019, 11:23am UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/39 "2019-04-22T11:23:52Z")

</div>

While I was able to infer and figure out the process from the information available, I know there are many other users who will have a hard time because the instructions are not clear enough (for example for older or less technologically savvy people, who may not be inclined to research the processes)

Having an extremely clear description with examples of `Project.toml` and precise details (not on discourse but in the relevant place) would help clear things up for the confused people.

---

<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:** [April 22, 2019, 11:33am UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/40 "2019-04-22T11:33:56Z")

</div>

> [@chakravala](#):
>
> instructions are not clear enough

If you can be more specific, perhaps you could make a PR to the README of

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

[Previous page](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084.md?page=1)

[Next page](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084.md?page=3)
