Go release vs weekly

We just rolled out Go release.r58, the third official “stable” release of Go. Back in March, I announced our new release process. The plan was to tag a new release every couple of months (instead of once a week). The last stable release was r57.1 at the start of May (although there was the security-related r57.2 point release in the interim). I’m happy that we have stuck to our promised release cycle thus far.

Since tagging the release this morning I have had some confused enquiries as to why – when switching from the latest weekly to this release – there appeared to be some regressions. This is by design.

release.r58 is based on weekly.2011-06-09, while the latest weekly is in fact weekly.2011-06-29. Releases are tagged retroactively, and we judged 06-09 to be the most stable weekly in recent history. This means many fixes and changes present in subsequent weeklies didn’t make it into this release. If you were using the latest weekly and then switched to the release, you might have seen some changes effectively “reversed”.

The lesson here is to choose a path – release or weekly – and stick with it:

  • With the release tag you won’t need to upgrade as often and will have a relatively consistent and stable experience.
  • With the weekly tag you can try out the latest improvements and fixes, but you should be prepared for things to break.

And if you choose to switch between paths, don’t be surprised if you’re confused. ;–)

8861 views and 2 responses

  • Jun 30 2011, 2:09 AM
    Henry responded:
    A debian package would be great!
  • Aug 1 2011, 12:19 PM
    Brian Ketelsen responded:
    Andrew, I build a pair of shell scripts called "weekly" and "release" and put them in my ~/bin directory that switch a symlinked ~/home/go directory between the latest release and latest weekly versions of Go. It can be confusing, but I generally start every Go session with the "weekly" or "release" command so that I'm where I expect to be.