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
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.mdYou can read the full docs here.
New macOS App Bundle capatilities
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.plistNew macOS signing features
The native macOS signing now allows you to set
the entitlements:
notarize:
macos:
- sign:
entitlements: ./entitlements.xmlNew 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.gzAnnounce 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.orgNightlies 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:
.Formattemplate variable inarchives(only on Pro) - new: Allow to template
release.make_latest - new: Set the
mtimeinnfpms - new: We made a maintainers page. Make sure to check it out!
- deprecations: we deprecated
archives.formatandarchives.format_overrides.formatin favor ofarchives.formatsandarchives.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 license.