Announcing GoReleaser v2.8¶
Happy March! Another release is here with several improvements across the board.
Let's dig into some of the news!
New Package Repository Features¶
GoReleaser Pro
One or more features are exclusively available with GoReleaser Pro.
The Cloudsmith integration now supports multiple distributions.
Publish to NPM¶
GoReleaser Pro
One or more features are exclusively available with GoReleaser Pro.
This is a long asked feature: publish your project to NPM.
NPM is great because pretty much every developer has it installed, and some enjoy installing binaries through it.
GoReleaser can generate the package for you, which will, upon install, download and extract the right archive from the release.
You can read more about it here.
Native macOS DMG signing and notarizing¶
GoReleaser Pro
One or more features are exclusively available with GoReleaser Pro.
GoReleaser Pro and OSS can already sign and notarize binaries, but DMGs and .app
s are a whole different ordeal.
This version adds support to it, and you can read more about it here.
New templating features¶
GoReleaser Pro
One or more features are exclusively available with GoReleaser Pro.
.IsMerging
: will betrue
if its the final step of a partial build;.IsRelease
: will betrue
if its not a snapshot nor a nightly build;reReplaceAll
: allows to use regular expressions to replace parts of the string. More on that below!
You can learn more about it here.
AUR and KO Improvements¶
Both AUR and AUR Sources now support adding custom install scripts.
Also, you can now use aurs.disable
and aur_sources.disable
to conditionally disable a particular configuration.
Similarly, you can now also use kos.disable
.
Read more about it here, here, and here.
Changelog improvements¶
Historically, when using the git
changeloger, we didn't had many options. We would use the oneline
format, and split on the first space, so we got both the commit SHA and the message.
In this version, we started using a custom format, which allowed us to:
- properly handle commit abbrevs when using custom formats
- customize format when using
use: git
, including adding author name and email - properly handle filters when the format doesn't have a leading SHA
With the usage of the newly added reReplaceAll
function, you may also do things like this:
changelog:
format: '{{ reReplaceAll "(.*) \\(#(.*)\\)" .Message "$1 [#$1](https://my.custom.tracker/issues/$2)" }}'
Which I think is pretty neat. :)
Deprecations¶
To make options more alike, archives.builds
, nfpms.builds
, and snaps.builds
have been renamed to archives.ids
, nfpms.ids
, and snaps.ids
.
All active deprecation warnings.
Other smaller changes¶
- pro:
goreleaser healthcheck
will now properly check MSI and DMG dependencies; - pro:
goreleaser r --nightly
will now work on a repository with no tags; - pro: DMG on macOS will now use ULMO instead of UDBZ - this should yield smaller
.dmg
files. Compatible with macOS 10.15+ (from 2019); - archive: when running the pipeline on Windows, set the binaries as executable inside the archives;
- docker: retry manifest push if digest don't match - this seems to be an out-of-sync issue with the registry;
- nfpm: properly handle skips of single configurations;
Other news¶
- GoReleaser now has ~14.4k stars and 423 contributors! Thanks, everyone!
- We eventually discuss new features in our Discord server. Join the conversation!
- nFPM had new releases as well, check it out.
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:
Install v2.8.0 (OSS) v2.8.0 (Pro)
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.