---
title: Announcing GoReleaser v2.14
date: 2026-02-21
slug: goreleaser-v2.14
tags: [announcements]
authors: [caarlos0]
---

Happy 2026!
The first release of the year is here, and it is packed with goodies!

<!--more-->

## GitHub Secure Open Source Func

GoReleaser was one of the projects participating in the session 3 of the
[GitHub Secure Open Source Fund](https://github.com/open-source/github-secure-open-source-fund).

You can read the announcement
[here](https://goreleaser.com/blog/github-secure-fund/).

## Finally, air-gapped license checks

![](https://carlosbecker.com/posts/goreleaser-v2.14/img.webp)

If you need to release in an air-gapped environment, you may now export your key
and validate it offline:

```sh
goreleaser license-export -k your-key -o goreleaser.key
goreleaser license-verify -k goreleaser.key
```

The license will be valid for at most 3 months, or your next billing cycle,
whichever happens first.

As you may have noticed, the `$GORELEASER_KEY` and the `--key` flag can now also
point to a file instead of plain text.

> [!NOTE]
> This feature is only available in the
> [Business and Enterprise plans](https://beckersoft.gumroad.com/l/goreleaser).

## Better changelogs

On nightly builds, you may now use `github`, `gitlab`, and `gitea` changelog
implementations (instead of rolling back to `git`), which should help you have
more similar-to-production changelogs.

You can now also include co-authors in the changelogs:

```yaml {filename=".goreleaser.yaml"}
changelog:
  format: "{{ .SHA }}: {{ .Message }}{{ if .Logins }} ({{ .Logins | englishJoin }}){{ end }}"
```

## macOS `.pkg` installers

GoReleaser Pro can now create, sign, and notarize `.pkg` installers for macOS!

![](https://carlosbecker.com/posts/goreleaser-v2.14/img2.webp)

A minimal example:

```yaml {filename=".goreleaser.yaml"}
pkgs:
  - identifier: org.example.foo
```

See the [documentation](https://goreleaser.com/customization/pkg/) for more
details.

## Windows installers

You can also create Windows installers with the Nullsoft Scriptable Install
System (NSIS).

Example:

```yaml {filename=".goreleaser.yaml"}
nsis:
  - script: ./path/to/script.nsis
```

You will, of course, need to create your own `.nsis` script file.
Maybe we add a sensible default in the future, but for now, this is a
requirement.
You can of course use the example provided in the
[documentation](https://goreleaser.com/customization/nsis/) and it should just
work.

On the same not, [MSI installers](https://goreleaser.com/customization/msi/) can
now use `hooks` as well.

## Docker v2 improvements

The [next version of the Docker feature](https://goreleaser.com/customization/dockers_v2/)
has a couple improvements, like allowing to template the `platforms` field,
better support for daemonless snapshot builds, and warning the user if it looks
like they're rebuilding the binaries inside the `Dockerfile`.

## Homebrew Casks

Continuing our efforts in replacing the old, _hackey_ `brews` with Homebrew
Casks, we now allow users to glob `manpages`, as well as fixed the Cask
generation for archives that use `wrap_in_directory`.

See the [documentation](https://goreleaser.com/customization/homebrew_casks/)
and [migration guide](https://goreleaser.com/deprecations/#brews).

## Dynamically linked binaries

GoReleaser will now detect if the binary is dynamically, and better generate Nix
derivations based on that (namely, use `autoPatchelfHook`, `stdenv.cc`, etc).

## Better, safer, output

![](https://carlosbecker.com/posts/goreleaser-v2.14/img3.webp)

We made some improvements on our internal `gerrors` package, which should allow
us to give better, more detailed, error outputs.

And speaking of outputs, all relevant `exec.Command` calls now have their
output go through a redactor, which will replace secret-looking environment
variables with their keys in output.

We also made improvements to our logging library, so when you use `--verbose`,
command outputs look a bit better.

## Deprecations

The `furies` key always sounded weird to me, so it will be renamed to `gemfury`.
Going forward, we will make all the keys that refer to a specific technology
singular to prevent these weird readings.

## GitHub Action

We also updated our GitHub Action.
It now works on Node 24 and was converted to ESM.

See the [complete release notes](https://github.com/goreleaser/goreleaser-action/releases/tag/v7.0.0).

## Other updates

- [**nfpm**](https://goreleaser.com/customization/nfpm/): allow to filter by `GOAMD64`
- [**nfpm**](https://goreleaser.com/customization/nfpm/): added support to `ARCHVARIANT` for `.deb`
- [**nfpm**](https://goreleaser.com/customization/nfpm/): properly handle meta packages
- [**nix**](https://goreleaser.com/customization/nix/): add a `formatter` option
- [**winget**](https://goreleaser.com/customization/winget/): allow to set the package name
- [**tmpl**](https://goreleaser.com/customization/templates/): `englishJoin` function
- [**aur**](https://goreleaser.com/customization/aur/): fix invalid use of `${pkgver}` in the `SRCINFO` file
- [**github**](https://goreleaser.com/scm/github/): fix GitHub enterprise URLs
- [**dockers/v2**](https://goreleaser.com/customization/dockers_v2/): better log outputs and driver warning
- [**docker**](https://goreleaser.com/customization/docker/): fixed regression with new `buildx` versions
- [**sbom**](https://goreleaser.com/customization/sbom/): better log output

## Other news

- GoReleaser now has ~15.6k stars and 455 contributors! Thanks, everyone!
- We often discuss new features in our Discord server. 
  [Join the conversation][discord]!
- nFPM had new releases as well, 
  [check it out](https://github.com/goreleaser/nfpm/releases).
- The GoReleaser Action had new releases,
  [check it out](https://github.com/goreleaser/goreleaser-action/releases)

## Download

You can install or upgrade using your favorite package manager, or see the
full release notes and download the pre-compiled binaries from GitHub:

{{< g_button href="https://goreleaser.com/install" label="Install" icon="download" primary="true" >}}
{{< g_button href="https://github.com/goreleaser/goreleaser/releases/tag/v2.14.0" label="v2.14.0 (OSS)" icon="github" primary="false" >}}
{{< g_button href="https://github.com/goreleaser/goreleaser-pro/releases/tag/v2.14.0" label="v2.14.0 (Pro)" icon="github" primary="false" >}}

## Helping out

You can help by reporting issues, contributing features, documentation
improvements, and bug fixes.
You can also sponsor the project, or get a GoReleaser Pro license.

{{< g_button href="https://goreleaser.com/pro" label="Get the Pro license" icon="pro" primary="true" >}}
{{< g_button href="https://goreleaser.com/sponsors" label="Sponsor the project" icon="sponsor" primary="false" >}}

[discord]: https://goreleaser.com/discord
