www/content/blog/goreleaser-v2.md
The new major version of GoReleaser is here!
<!--more-->I first launched GoReleaser v1.0.0 in November 2021 - 2.5 years ago!
The main reason for this is that so I can clean up old deprecated options, and cleaning these old things makes it easier to add new things.
A couple of months ago I published a post explaining how GoReleaser's versioning will work from now on. You can read it here.
So, after two and a half years, it's beyond time for v2 to happen, don't you think?
GoReleaser v2 is basically the same as the GoReleaser v1.26.2 - the latest v1. The differences between them should be only the removal of deprecated options.
All that being said, we do have a lot of new features since the first v1. Here's an incomplete list with some of my favorites:
changelog command and changelog sub-grouping (Pro)release --prepare and continue) (Pro)GOAMD64 and WASIhealthcheck commandIf you keep up with the deprecation notices, it's likely you don't need to do anything.
If you don't, that's fine too! Let's figure it out together! You can start by running the following commands:
goreleaser check # using the latest v1
rm -rf ./dist/
grep -iR '\--rm-dist' .
grep -iR '\--skip-' .
grep -iR '\--debug' .
Extra tip: You can also look into your last release logs if they are still there, and fix the deprecation warnings based on it.
Fix any occurrences following this, then, upgrade goreleaser to v2
using the method you used to install v1, and run:
goreleaser check # using latest v2
It should only warn you about the version header in the configuration file,
which you can fix by adding version: 2 to it.
Then, you should be ready to use GoReleaser v2! You can build a snapshot with:
goreleaser release --snapshot --clean
If you use our GitHub Action, the latest version (v6.0.0) should
use ~> v2 by default if your version option is either empty or latest.
I recommend you update it:
# ...
jobs:
goreleaser:
# ...
- uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser # or 'goreleaser-pro'
version: "~> v2" # or 'latest', 'nightly', semver
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} # if using goreleaser-pro
version: '~> v2' instead of latest.That's all for today!
We start working on v2.1 now, and it should be released soon-ish. 👌
Happy releasing! 🚀