rss resume / curriculum vitae linkedin linkedin gitlab github twitter mastodon instagram
Go Tip: New releases, programatically
Jun 09, 2020

Last May I officially introduced versions, a tool for generating a report of dependencies from different Go-modules-like repositories, I mentioned some ideas I will be adding to versions really soon like different ways to render the final results (in a form of an image for example) and some extra attributes to add when parsing dependencies (like licenses used and packages with available new releases).

On that new releases topic I realized knowing a way to determine what are the most recent stable Go versions available is also a nice thing to have. The concrete use case for knowing the available Go versions is to determine when to upgrade to a new version or when to know the used version is no longer longer supported.

From a quick search I couldn’t find a way to know this right away, my initial thought was to get that information from the official downloads page in a form of a RSS feed or something similar, but this wasn’t available at the time.

Thankfully gophers-slack exists, I asked in #general and the community shared with me a few different ways to get this information:


Visiting renders the most recent stable Go version in HTML, on that page there’s another link for getting a similar result in text format:


Everybody knows, the official Go downloads page, but did you know there’s another way to render those results? Using This endpoint renders a JSON response that, by default, gives us more details:

  • The two most recent and stable versions, and
  • Links to the all the different ways to download the compiler, categorized by platform and file type.

But not only that! The official documentation for also supports another query argument for returning more results:, this returns a response including a full list of available downloads, including stable, unstable, and archived releases. Pretty neat.

Using github’s atom feed

I didn’t think about this option in the beginning but it definitely makes a lot of sense considering the Go project is also using Github. There’s a way to subscribe the to the Atom feeds for tags ( and releases (

This option is a bit similar to the previous long form of, it is useful for sure but it requires parsing the actual results in Atom format.


I bet there are more ways to get the available Go versions, like this one using gRPC, but I think the way to go here is to use the semi-official long form version ( for this new feature, it includes more details and it is in JSON, so using a combination of net/http and encoding/json should suffice.

Back to posts