# \[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:** 1

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [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/1 "2019-04-12T16:00:00Z")

</div>

Hello! In anticipation of the [new package registration system](https://discourse.julialang.org/t/switching-package-registration-systems-soon/22677/59) I’d like to announce [Julia TagBot](https://github.com/apps/julia-tagbot), which will handle your packages’ GitHub releases automatically.

It’s a GitHub App, so just install and forget about it — nothing else is required on your part.  
The only prerequisite is that you actually use Registrator rather than manually creating registry PRs.

The app unfortunately requires repository write access, but there aren’t more granular permissions that can be granted for just releases.  
If you’re concerned, please view the source code which is available [here](https://github.com/JuliaRegistries/TagBot).  
The only interaction with your repository is the release creation, which is handled by [Google’s GitHub API library](https://github.com/google/go-github).

Edit: TagBot will not change your usage of Registrator at all, it only completes the previously manual task of creating GitHub releases for you (see [this](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/3) comment).

---

<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 12, 2019, 4:06pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/2 "2019-04-12T16:06:01Z")

</div>

> Blockquote  
> Creates tags and releases for your Julia packages when they’re registered

So my package has to first be registered in order to use TagBot? Or how does it work? Is this then similar to Attobot but for the new registry?

---

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [April 12, 2019, 4:12pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/3 "2019-04-12T16:12:08Z")

</div>

Registrator does not tag your repository, because it does not have write permissions (there were concerns about giving that permission to Registrator).  
So with this, you install it, and then proceed to register packages as per usual with Registrator. When the PR that Registrator made is merged, TagBot will create a GitHub release. That is all.

TLDR:

- TagBot does not update your Project.toml
- TagBot does not register your packages for you
- TagBot does not use Registrator for you
- TagBot **DOES** create GitHub releases for you after you have used Registrator to register your package

---

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

</div>

Could someone clarify what the process would be for people who do not wish to grant write access?

This whole registering process seems too complicated and split into too many parts at this point.

---

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [April 12, 2019, 4:17pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/5 "2019-04-12T16:17:19Z")

</div>

If you do not want to grant write access, then you cannot install TagBot. You just use Registrator normally and create your releases manually if desired.

---

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

</div>

In terms of the julia package systems, there’s no real reason to create a Github release and tags other than for symbolic reasons. In other words, for other people trying to browse different versions of your code having github tags and releases are nice to have.

In other words, it’s not essential, but it’s **highly** recommended for **others** trying to understand how your code has changed from version to version.

There’s a couple of confusing points and needed clarification. For the github tag/release system it is important that the tags and version number in Project.toml are the same, so you don’t confuse people when they browse to a specific tag on github, but see a different version in `Project.toml` ( **even though it is perfectly acceptable that the tag on github and the version number in project.toml differ** ).

TagBot solves this by automatically creating tags/releases with the correct version number.

---

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

</div>

> [@musm](#):
>
> In terms of the julia package systems, there’s no real reason to create a Github release and tags other than for symbolic reasons.

This is not entirely true. The package manager relies on content hashes. Tags make sure those hashes are reachable and persistent. Without a tag for a release it would be easy to make a mistake and e.g. force push a branch and then Pkg won’t be able to find the correct content. Therefore I would **strongly** recommend to either use TagBot or tag yourself.

---

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [April 16, 2019, 2:50pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/8 "2019-04-16T14:50:18Z")

</div>

Just an FYI for people who have installed TagBot and are releasing packages: It doesn’t work yet because it depends on [this PR](https://github.com/JuliaComputing/Registrator.jl/pull/86). When it’s working, your releases should appear within seconds of the registry PR being merged.

---

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

</div>

Hmm, I don’t see the bot kicking in?

---

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [April 18, 2019, 6:08pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/10 "2019-04-18T18:08:38Z")

</div>

Could you link the registry PR?

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [April 18, 2019, 6:55pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/11 "2019-04-18T18:55:00Z")

</div>

Tag bot didn’t trigger for this PR, which I expected it to do.  
[https://github.com/JuliaRegistries/General/pull/117](https://github.com/JuliaRegistries/General/pull/117)

---

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [April 18, 2019, 8:00pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/12 "2019-04-18T20:00:51Z")

</div>

Thanks. Are you sure that you have properly installed the app and configured it to have permission to that specific repo? I have the following log:

```julia
POST https://api.github.com/repos/baggepinnen/MonteCarloMeasurements.jl/releases: 403 Resource not accessible by integration []

```

There is of course a chance that there is an authentication bug in one of my dependencies but I want to rule this out first.

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [April 18, 2019, 8:07pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/13 "2019-04-18T20:07:42Z")

</div>

It looks set up

 ![Screenshot_20190418-220702](https://global.discourse-cdn.com/julialang/original/3X/0/8/08b67e263b8832ef1ffbdb926cdbf28fc3493dec.jpeg)

---

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [April 18, 2019, 8:08pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/14 "2019-04-18T20:08:43Z")

</div>

Hm, thanks. I’ll look into it some more.

---

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [April 18, 2019, 8:29pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/15 "2019-04-18T20:29:39Z")

</div>

I’ve found the issue, working on a fix now.

---

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [April 18, 2019, 9:04pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/16 "2019-04-18T21:04:05Z")

</div>

I believe I have fixed the issue and deployed the fix. Sorry about this! It was a pretty silly mistake on my part.

---

<div class="post-metadata">

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

</div>

People who have installed TagBot will receive an email asking for new permissions. This is only to help find problems like above more easily.

---

<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 19, 2019, 1:38am UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/18 "2019-04-19T01:38:46Z")

</div>

Updated with the new permissions. Do we somehow now need to register a new tag to trigger the bot? (ref musm/SLEEF.jl hasn’t been updated)

---

<div class="post-metadata">

**Author:** ![christopher-dG](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/christopher-dg/32/7387_2.png) [@christopher-dG](https://discourse.julialang.org/u/christopher-dG)\
**Post date:** [April 19, 2019, 2:41pm UTC](https://discourse.julialang.org/t/ann-tagbot-creates-tags-and-releases-for-your-julia-packages-when-theyre-registered/23084/19 "2019-04-19T14:41:57Z")

</div>

Nothing retroactive will happen, it’ll just work properly next time you tag. So this time around, you’ll need to do a manual tag.

Going forward you should see a notification of [success](https://github.com/JuliaRegistries/General/pull/133#issuecomment-484792668) or [failure](https://github.com/JuliaRegistries/General/pull/120#issuecomment-484791595).

---

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

</div>

I updated a release by calling `@JuliaRegistrator register()` again before [the pull request](https://github.com/JuliaRegistries/General/pull/158) was merged to general. TagBot tagged a release from the initial commit however, so now the two are out of sync. So I’m not quite sure what to do now; I can’t seem to edit or delete the GitHub release. I’m thinking to just bump the version (I have some small changes to make anyway) and register again so at least the latest version doesn’t have this discrepancy.

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