Announcing GoReleaser v2.6¶
Happy new year! The first release of the year is here!
Let's dig into some of the news!
Bun and Deno¶
This release adds support for both Bun and Deno! You can run goreleaser init
in an existing project, and it should figure it out from there!
If you want to see it in action, check out example-bun and example-deno.
We aim to add support to more builders/languages in the coming releases. You can join the discussion in our Discord.
Use AI to increment your release notes¶
GoReleaser Pro
One or more features are exclusively available with GoReleaser Pro.
You can now use ChatGPT, Anthropic, and Ollama to increment/change your release notes.
The default prompt instructs the assistant to write a introduction chapter and to join dependency update commits, but I recommend you roll your own.
Usage is fairly simple, too:
changelog:
ai:
use: anthropic
prompt:
from_file:
path: ./prompt.md
You can read the full docs here.
New macOS App Bundle capatilities¶
GoReleaser Pro
One or more features are exclusively available with GoReleaser Pro.
On macOS App Bundles, you may now set extra files (and templated extra files), and use that to override your Info.plist
(which was previously generated by GoReleaser and impossible to replace):
app_bundles:
- extra_files:
- src: ./icon.png
dst: Contents/Resources/icon.png
templated_extra_files:
- src: ./Info.plist
dst: Contents/Info.plist
New macOS signing features¶
The native macOS signing now allows you to set the entitlements
:
notarize:
macos:
- sign:
entitlements: ./entitlements.xml
New MSI features¶
The MSI now allows to setextensions
:
msi:
- extensions:
- '{{ if eq .Runtime.Goos "windows" }}WixUIExtension{{ end }}'
- "WixUtilExtension"
Archive multiple formats¶
Instead of repeating the archive section for each format, you may now set formats: [ all the formats you want ]
. Incidentally, you may also use format_override
to set multiple formats.
A use case for this is if you want to release as tar.gz
for all OSs, but also want a zip
for Windows. You can then do:
archives:
- formats:
- tar.gz
format_overrides:
- goos: windows
formats:
- zip
- tar.gz
Announce enabled¶
All the announcers enabled
fields are now templateable.
Example usage:
announce:
mastodon:
enabled: "{{ eq .Patch 0 }}" # only if new feature release!
message_template: "#GoReleaser {{ .Tag }} is out! Check it out: https://github.com/goreleaser/goreleaser/releases/tag/{{ .Tag }}"
server: https://fosstodon.org
Nightlies for real¶
Our own nightly builds were being built weekly. Now they are, in fact, running every night! This should help users play with new features earlier.
Other Highlights¶
Most of the work in this release was around multi-language support, but nevertheless, we have a few other news:
New features¶
- new:
.Format
template variable inarchives
(only on Pro) - new: Allow to template
release.make_latest
- new: Set the
mtime
innfpms
- new: We made a maintainers page. Make sure to check it out!
- deprecations: we deprecated
archives.format
andarchives.format_overrides.format
in favor ofarchives.formats
andarchives.format_overrides.formats
, respectively. Details
As always, bug fixes, dependency updates, housekeeping, and documentation updates are included in this release as well.
Other news¶
- GoReleaser now has ~14.1k stars and 417 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 here and here (for 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 licence.