1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-01-26 04:22:05 +02:00

docs: blog (#4264)

Starting to move the blog from medium to mkdocs!

closes #3503

---------

Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
This commit is contained in:
Carlos Alexandro Becker 2023-09-14 13:53:40 -03:00 committed by GitHub
parent 646eb82f9a
commit f62adf23ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 1500 additions and 34 deletions

View File

@ -1,9 +1,12 @@
#!/bin/bash
set -euo pipefail
# unshallow (needed for the rss plugin)
git fetch --prune --tags --unshallow
# install
pip install --upgrade pip
pip install -U mkdocs-material mkdocs-redirects mkdocs-minify-plugin mkdocs-include-markdown-plugin lunr
pip install -U mkdocs-material mkdocs-redirects mkdocs-minify-plugin mkdocs-include-markdown-plugin lunr mkdocs-rss-plugin
# prepare
version="$(cat ./www/docs/static/latest)"

View File

@ -1,2 +1,2 @@
FROM squidfunk/mkdocs-material
RUN pip install mkdocs-include-markdown-plugin
RUN pip install mkdocs-include-markdown-plugin mkdocs-rss-plugin

View File

@ -0,0 +1,5 @@
authors:
caarlos0:
name: Carlos Becker
description: Creator
avatar: https://avatars.githubusercontent.com/u/245435

2
www/docs/blog/index.md Normal file
View File

@ -0,0 +1,2 @@
# Blog

View File

@ -0,0 +1,70 @@
---
date: 2021-11-14
slug: goreleaser-v1
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1 — the first v1 release
Hello everyone!
I've been holding on the "v1" release for, _checks notes_, years now. That's
because I wanted v1 to have a "stable enough API", i.e. something unlikely to
change.
<!-- more -->
A couple of months ago I realized that we'll probably never reach that, as
things keep changing: we add more features, change old ones (sometimes on our
own, sometimes due to changes on other tools), and so on. That way, v1 would
never happen.
Therefore, after **467 releases**, **3299 commits**, and almost **5 years** of
hard work, I'm glad to announce that **v1.0.0 is finally here**!
![It's happening!](https://carlosbecker.com/posts/goreleaser-v1/51e877d4-5114-45e7-8cda-4aa9189701bd.gif)
This is a special release, as it marks GoReleaser departing from the school of
[ZeroVer](https://0ver.org), so I decided to write this quick bit compiling the
most notable changes and some special thanks.
## Most notable changes
- New `ReleaseURL` template variable, which points to the current tag release
page on GitHub/Gitlab/Gitea
- Release [Krew Plugin Manifests](https://goreleaser.com/customization/krew/)
- [Announce releases to
LinkedIn](https://goreleaser.com/customization/announce/linkedin/)
- Support [GitHub-generated release
notes](https://goreleaser.com/customization/changelog/)
- Better support for [keyless
signing](https://goreleaser.com/customization/sign/) (with `cosign` for
example)
- Several [nFPM-related
improvements](https://goreleaser.com/customization/nfpm/): "conventional file
naming" per target, better arch handling, `dir` content type and others
- [Renamed master to
main](https://medium.com/idealo-tech-blog/inclusive-language-in-tech-82b19b34b7cf)
on both GoReleaser and nFPM
- Some bug fixing (as always)
If it feel like a regular GoReleaser v0.x release, it's because it is. The
biggest change here is that we're leaving v0! 😅
## Thanks
And a big **thank you** to everyone that helps with code, issues, money, support
and whatnot.
I really appreciate it! You all make OpenSource and Indie development a bit
easier! 💙
## Get it!
Without further ado, you can get it here:
- [GoReleaser v1.0.0](https://github.com/goreleaser/goreleaser/releases/tag/v1.0.0)
- [GoReleaser Pro v1.0.0](https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.0.0-pro)

View File

@ -0,0 +1,64 @@
---
date: 2021-12-21
slug: goreleaser-v1.2
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.2 — Santa/5 year anniversary edition
GoReleaser v1.2 is out — likely be the last feature release of 2021. 
It also marks the first 5 years since its [first commit](https://github.com/goreleaser/goreleaser/commit/8b63e6555be45234c4c2a69576ca2ddab705302c).
It comes packed with some great features and fixes by several people!
<!-- more -->
![Christmas GoReleaser gopher!](https://carlosbecker.com/posts/goreleaser-v1.2/a49c5832-6576-42ce-989f-f717cd8096f1.png)
Here are some highlights:
1. GoReleaser now generates a `dist/artifacts.json` file — this might help integrating with other tools (e.g. you can `jq` it to find stuff). [Link](https://github.com/goreleaser/goreleaser/commit/ecb800aef7723d58f4521d4cb457a972b019ba92).
2. We now have a ["Common Errors"](https://goreleaser.com/errors/dirty/) section in our docs. This should help troubleshooting common issues and provide more context to why some errors happen. More errors should be added as we evolve. Links: [1](https://github.com/goreleaser/goreleaser/commit/62da2dbe1396aa1e423ac41feeb12f74dbe8ac29), [2](https://github.com/goreleaser/goreleaser/commit/73867736a5ddeb23ac4767cc541395e7d61d32bd), [3](https://github.com/goreleaser/goreleaser/commit/8c06005bc66ff3435bd9bee32a36ebabf685cd41).
3. Docker images are no longer listed in the changelog. It was mostly noise, making its way between the changelog and the footer, which in turn makes having custom release notes a bit harder. Users can still add them using the `footer` option. [Link](https://github.com/goreleaser/goreleaser/commit/30ff48a5a69f2441c7f4d12264c3c813e77d3467).
4. Auto-refresh checksums — now if you sign your binaries with something that actually changes the file, checksums will be regenerated and thus correct. [Link](https://github.com/goreleaser/goreleaser/commit/cbcdd41f975b29bea58b8125fee852105ff7fe88).
5. Improved universal binaries usage on Homebrew taps, Gofish rigs and Krew manifests. [Link](https://github.com/goreleaser/goreleaser/commit/e8c8a2832f42569071ff2a2d2970c1ffc7c71c96).
6. SBOM generation — using [Syft](https://github.com/anchore/syft) by default. GoReleaser v1.2 itself is now publishing its own sBOMs! [Link](https://github.com/goreleaser/goreleaser/commit/bfdec808aba208cfdedeb3bef0a16255bf1d87b3).
7. Better support for [cosign](https://github.com/sigstore/cosign)'s keyless signing. Links: [1](https://github.com/goreleaser/goreleaser/commit/7c2a93cfaa9fb5e6b0d8c1bf01a97cb5903ea7b8), [2](https://github.com/goreleaser/goreleaser/commit/994cbb47c3c6d38af15c88c712bd486a126ec4cd), [3](https://github.com/goreleaser/goreleaser/commit/505888f41be5308eb7d5c6fb25df82a1bda4cc1a).
8. Git tag annotations are now available as template variables. Links: [1](https://github.com/goreleaser/goreleaser/commit/9b9eef04a2d1e5974d6d3e2c21048b3b2c7f37f8), [2](https://github.com/goreleaser/goreleaser/commit/6ea7fb792a09525eab6089841a9fcd03e5991e35), [3](https://github.com/goreleaser/goreleaser/commit/f01c60026ce6320447736a9e562af85bbf649562).
9. Improved debug log output. [Link](https://github.com/goreleaser/goreleaser/commit/a965789203f1d64de6856a1d5b4169d32f0b06df).
You can also see the full changelog **[here](https://github.com/goreleaser/goreleaser/releases/tag/v1.2.0)**.
## **Other news**
### **Supply Chain**
A common subject in the recent releases has been supply chain security.
You can notice that by the recent improvements and collaboration with [Sigstore's Cosign](https://github.com/sigstore/cosign), and the SBOM generation feature with [Anchore's Syft](https://github.com/anchore/syft).
We intend to keep improving in this area in order to make it easier for everyone to sign their work and publish SBOMs.
Here's to safer internet in the future!
{{< img caption="Here's to safer internet in the future!" src="c3595591-87bf-4e52-baba-a6bd8089a279.png" >}}
### **Houston, we have a blog!**
We now have an official [blog](https://blog.goreleaser.com)!
Before I was [posting everything here in my personal blog](https://carlosbecker.com/tags/goreleaser/), and will likely still post some things here, but here the idea is to collaborate with all GoReleaser contributors to post news in the _official blog_.
### **Community calls and YouTube channel**
We have also scheduled our first community call! Feel free to join and suggest topics. [Link](https://github.com/goreleaser/community/pull/2).
The call should be streamed in our [YouTube channel](https://www.youtube.com/channel/UCxg5N16FKrTa4Cees434pbw). Feel free to subscribe! 😀
## **Next steps**
We'll continue to evolve GoReleaser to make it even better and easier to do the best thing possible.
If you'd like to participate, stay tuned for our first community call in January!
See y'all next year!

View File

@ -0,0 +1,36 @@
---
date: 2022-01-13
slug: goreleaser-v1.3
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser 1.3 — the first of 2022
We just launched GoReleaser v1.3, the first release of 2022!
<!-- more -->
## **Highlights**
- Announce to any HTTP endpoint [#2750](https://github.com/goreleaser/goreleaser/pull/2750)
- Create universal binaries from multiple build IDs [#2811](https://github.com/goreleaser/goreleaser/pull/2811)
- New templateable fields [#2826](https://github.com/goreleaser/goreleaser/pull/2826) [#2797](https://github.com/goreleaser/goreleaser/pull/2797)
- Custom publishers can now publish extra [#2770](https://github.com/goreleaser/goreleaser/pull/2770)
- Fixed dependency issue with `go-reddit` which was causing problems when go installing goreleaser [#2823](https://github.com/goreleaser/goreleaser/pull/2823)
- Fixed some issues with the github-native changelog implementation [#2802](https://github.com/goreleaser/goreleaser/pull/2802) [#2803](https://github.com/goreleaser/goreleaser/pull/2803)
You can see the full changelog [here](https://github.com/goreleaser/goreleaser/releases/tag/v1.3.0). Also check out [GoReleaser Pro v1.3](https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.3.0-pro).
Install instructions can be found [here](https://goreleaser.com/install/).
---
Other news:
- Our community call was set for January 7th, but was delayed. We're still picking a new date. [Link](https://github.com/goreleaser/community/pull/2).
- We created an example repository with Supply Chain Security good practices, [check it out](https://github.com/goreleaser/supply-chain-example).
- GoReleaser now has ~9.4k stars and 261 contributors! Thanks, everyone!
- Our Discord server is getting new members almost daily. [Join and chat with us](https://discord.gg/RGEBtg8vQ6)!

View File

@ -0,0 +1,65 @@
---
date: 2022-01-26
slug: goreleaser-v1.4
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.4 — the AUR release
GoReleaser can now create and publish Arch Linux `PKGBUILD` files to Arch User
Repositories!
<!-- more -->
![neofetch in an arch linux container](https://carlosbecker.com/posts/goreleaser-v1.4/0fab21e9-bab6-4ba6-bd6a-c99b63c868a8.png)
This amazing new feature was sponsored by [Charm](https://charm.sh/).
## **How does it work?**
The AUR is basically a group of Git repositories that, if you push the right set
of files, are installable on an Arch Linux box using a tool
like [yay](https://github.com/Jguer/yay).
To push there, you'll need to create an account on 
[the AUR website](https://aur.archlinux.org/) and inform them of the public key
you'll be using to push.
Then you just need to 
[add some configuration to your goreleaser.yaml](https://goreleaser.com/customization/aur
file and...you're done! GoReleaser will build everything for you, clone the
repository, update the files, commit everything, and push it back.
**And that's it!** You can now instruct your users to install your package with
a command like `yay -S goreleaser-bin` or `yay -S goreleaser-pro-bin`. How
awesome is that!?
## **Other notable features**
- [GoReleaser Pro](https://goreleaser.com/pro) now allows you to
use `-snapshot` without a `-key`. This should help users without a license key
test things locally, or on a CI job with fewer privileges (e.g. GitHub Actions
on a pull request).
- And finally, both the OSS and Pro distributions now have man pages: run `man
goreleaser` or `man goreleaser-pro` to check them out.
- On [GoReleaser Pro](https://goreleaser.com/pro), custom variables should now
be  [prefixed with `.Var`](https://goreleaser.com/deprecations/#variables).
## **Other news**
- We still don't have a new date for our first community call. Personal life a
little too busy lately, will try my best to schedule it
ASAP. [Link](https://github.com/goreleaser/community/pull/2).
- GoReleaser now has ~9.5k stars and 262 contributors! Thanks, everyone!
- Our Discord server is getting new members almost daily. 
[Join and chat with us](https://discord.gg/RGEBtg8vQ6)!
---
Full disclosure: [Charm](https://charm.sh/) is my current employer.
Shameless plug: Definitely [check us out](https://charm.sh/), we are 
[building a bunch of cool OSS stuff](https://github.com/charmbracelet)!

View File

@ -0,0 +1,36 @@
---
date: 2022-02-12
slug: goreleaser-v1.5
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.5 — the misc improvements release
GoReleaser 1.5 is out, with a handful of miscellaneous improvements.
<!-- more -->
## **Highlights**
- Better manpages using [mango](https://github.com/muesli/mango);
- Migrated from [cobra](https://github.com/spf13/cobra) to [coral](https://github.com/muesli/coral) — which will eventually lead to faster `go install`;
- Improved nFPM to make it easier for GoReleaser's debs and GoReleaser-generated debs that pass [lintian](https://lintian.debian.org/) checks;
- Several improvements on GoReleaser output logs;
- More fields are now templateable, namely on nFPMs and Universal Binaries configs;
- Hooks now have an option to always print their outputs;
- `goreleaser build --single-target` now copies the binary to `CWD`, also accepts a `-output` flag telling to copy the binary elsewhere;
- Changelog passing through `goreleaser release --release-notes` now warns if the file is empty or whitespace-only, allowing to more easily debug releases;
- You can now override build `tags``ldflags``gcflags` and `asmflags` per target platform;
- On a similar note, you can get the runtime `GOOS` and `GOARCH` on template variables using `{{ .Runtime.Goos }}` and `{{ .Runtime.Goarch }}`.
You can see the full changelog [here](https://github.com/goreleaser/goreleaser/releases/tag/v1.5.0).
## **Other news**
- We still don't have a new date for our first community call. Personal life a little too busy lately, will try my best to schedule it ASAP. [Link](https://github.com/goreleaser/community/pull/2).
- GoReleaser now has ~9.6k stars and 264 contributors! Thanks, everyone!
- Our Discord server is getting new members almost daily. [Join and chat with us](https://discord.gg/RGEBtg8vQ6)!
- nFPM also had a couple of releases the last few weeks, [check them out](https://github.com/goreleaser/nfpm/releases).

View File

@ -0,0 +1,34 @@
---
date: 2022-03-06
slug: goreleaser-v1.6
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.6 — the boring release
GoReleaser 1.6 is out! Another "boring" release with some miscellaneous improvements and bug fixes.
<!-- more -->
## **Highlights**
- New `filter` and `reverseFilter` template functions ([#2924](https://github.com/goreleaser/goreleaser/pull/2924))
- nFPM and archiving in `tar.gz` should now be faster ([#2940](https://github.com/goreleaser/goreleaser/pull/2940), [#2941](https://github.com/goreleaser/goreleaser/pull/2941))
- More Snapcraft app metadata fields ([#2955](https://github.com/goreleaser/goreleaser/pull/2955))
- New `.TagBody` template field ([#2923](https://github.com/goreleaser/goreleaser/pull/2923))
- Install `amd64` binaries when no `arm64` binaries are present on macOS (i.e. use Rosetta) ([#2939](https://github.com/goreleaser/goreleaser/pull/2939))
- Several dependency updates
- Several bug fixes
- Some documentation improvements
You can see the full changelog [here](https://github.com/goreleaser/goreleaser/releases/tag/v1.6.0).
## **Other news**
- I'm risking sounding repetitive here, but we still don't have a new date for our first community call. Personal life a little too busy lately, will try my best to schedule it ASAP. [Link](https://github.com/goreleaser/community/pull/2).
- GoReleaser now has ~9.7k stars and 268 contributors! Thanks, everyone!
- Our Discord server is getting new members almost daily. [Join and chat with us](https://discord.gg/RGEBtg8vQ6)!
- nFPM also had a release as well, [check it out](https://github.com/goreleaser/nfpm/releases).

View File

@ -0,0 +1,31 @@
---
date: 2022-03-20
slug: goreleaser-v1.7
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.7 — The Go 1.18 release
The title would have been more creative if it was GoReleaser 1.18 as well... maybe... probably not.
<!-- more -->
## **Highlights**
- Go 1.18 update ([#2978](https://github.com/goreleaser/goreleaser/pull/2978), [#2984](https://github.com/goreleaser/goreleaser/pull/2984))
- Ability to filter by file extension in HTTP uploads ([#2992](https://github.com/goreleaser/goreleaser/pull/2992))
- Homebrew tap service block ([#2973](https://github.com/goreleaser/goreleaser/pull/2973))
- Deprecated buildpacks support ([#2982](https://github.com/goreleaser/goreleaser/pull/2982)), and removed some deprecated code/etc that have been deprecated for 6 months+ ([#2985](https://github.com/goreleaser/goreleaser/pull/2985))
- As always, some dependency upgrades, bug fixes and documentation improvements.
You can see the full changelog [here](https://github.com/goreleaser/goreleaser/releases/tag/v1.7.0).
## **Other news**
- Still no community meeting, sorry 🫠. [Link](https://github.com/goreleaser/community/pull/2).
- GoReleaser now has ~9.8k stars and 269 contributors! Thanks, everyone!
- Our Discord server is getting new members almost daily. [Join and chat with us](https://discord.gg/RGEBtg8vQ6)!
- nFPM also had a release as well, [check it out](https://github.com/goreleaser/nfpm/releases).

View File

@ -0,0 +1,33 @@
---
date: 2022-04-15
slug: goreleaser-v1.8
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.8 — the GOAMD64 release
This release's biggest feature is the `GOAMD64` support.
<!-- more -->
## **Highlights**
- support `GOAMD64`([#3016](https://github.com/goreleaser/goreleaser/pull/3016))
- upgraded from `yaml.v2` to `yaml.v3`([#3004](https://github.com/goreleaser/goreleaser/pull/3004))
- deprecate gofish ([#2999](https://github.com/goreleaser/goreleaser/pull/2999))
- added Slack notification options ([#2988](https://github.com/goreleaser/goreleaser/pull/2988))
- a lot of bug fixes and docs improvements
You can see the full changelog [here](https://github.com/goreleaser/goreleaser/releases/tag/v1.8.0).
## **Other news**
- Still no community meeting, sorry 🫠. [Link](https://github.com/goreleaser/community/pull/2).
- Release Party though! Thanks to everyone who joined!
- [GoReleaser is now in the ThoughtWorks Technology Radar!](https://www.thoughtworks.com/radar/tools/goreleaser)
- GoReleaser now has ~9.9k stars and 271 contributors! Thanks, everyone!
- Our Discord server is getting new members almost daily. [Join and chat with us](https://discord.gg/RGEBtg8vQ6)!
- nFPM also had a release as well, [check it out](https://github.com/goreleaser/nfpm/releases).

View File

@ -0,0 +1,39 @@
---
date: 2022-05-18
categories:
- announcements
authors:
- caarlos0
slug: goreleaser-v1.9
---
# Announcing GoReleaser v1.9 — the 10k stars release
This release contains several minor improvements and a couple of new features! Let's have a look!
<!-- more -->
![goreleaser changelog preview](https://carlosbecker.com/posts/goreleaser-v1.9/136319f0-2346-4c3b-aa77-e239a7563527.png)
## **Highlights**
- `goreleaser changelog` was added to [GoReleaser Pro](https://goreleaser.com/pro) — you can use it to preview your next release changelog
- added more build options, enabling you to build test binaries [#3064](https://github.com/goreleaser/goreleaser/pull/3064)
- added `go_first_class` target options for build [#3062](https://github.com/goreleaser/goreleaser/pull/3062)
- new run script for CIs that don't have it natively [#3075](https://github.com/goreleaser/goreleaser/pull/3075)
- make it easier to run GoReleaser against a SCM that is not GitHub, GitLab or Gitea [#3088](https://github.com/goreleaser/goreleaser/pull/3088)
- allow to create meta archives [#3093](https://github.com/goreleaser/goreleaser/pull/3093)
- the archive pipe no longer check links are valid, like `tar` [#3103](https://github.com/goreleaser/goreleaser/pull/3103)
- a lot of bug fixes and docs improvements
- we are also experimenting with new ways to share news with our users, the latest is our [newsletter](https://www.getrevue.co/profile/goreleaser)
You can see the full changelog [here](https://github.com/goreleaser/goreleaser/releases/tag/v1.9.0).
## **Other news**
![We hit 10k stars!](https://carlosbecker.com/posts/goreleaser-v1.9/23d24a10-64ad-4fbd-aa37-d7e0367fe9d9.png)
- Still no community meeting, sorry 🫠. [Link](https://github.com/goreleaser/community/pull/2).
- We hit 10k stars on our [main repository](https://github.com/goreleaser/goreleaser)!
- GoReleaser now has ~10.1k stars and 277 contributors! Thanks, everyone!
- Our Discord server is getting new members almost daily. [Join and chat with us](https://discord.gg/RGEBtg8vQ6)!

View File

@ -0,0 +1,42 @@
---
date: 2022-07-04
categories:
- announcements
authors:
- caarlos0
slug: goreleaser-v1.10
---
# Announcing GoReleaser v1.10 — the summer release
Fun fact: it is actually winter now here in Brazil. Regardless, this release is packed with new features, quality-of-life improvements and bug fixes!
<!-- more -->
![GoReleaser Screenshot](https://carlosbecker.com/posts/goreleaser-v1.10/488e0554-ebcb-4e4f-90ed-a0c2c8b36fde.png)
### Highlights
- **GoReleaser Pro** can now skip global after hooks with `-skip-after`;
- **GoReleaser Pro** can now split the release process into "prepare", "publish" and "announce". Check out `goreleaser release --help`,`goreleaser publish --help` and `goreleaser announce --help` for more details;
- The entire GoReleaser output is now using [caarlos0/log](https://github.com/caarlos0/log), which is a more-or-less drop-in [apex/log](https://github.com/apex/log) replacement. It uses [Charm's technology](https://charm.sh/) for its implementation and has a slightly different proposal and feature set;
- New `-skip-docker` and `-skip-before` flags added;
- `goreleaser build` now allows repeatable `-id` filters;
- The build process now uses 1 parallelism permit for each binary being built, regardless of how many build configurations you have;
- GoReleaser can now load a config file from `STDIN` (using `-config -`);
- Builds can now override `env` in for a given target;
- `release.repo.owner` and `release.repo.name` can now be templated;
- Changelog grouping is now processed in the order they are declared and rendered in the order of their `order` field;
- GoReleaser now logs the duration of "slow" pipes;
- The deprecated `nfpms.empty_folders` is now removed;
- The deprecated handling of Windows ARM64 builds on Go versions older than 1.17 is now removed;
- As of every release, a good amount of bug fixing;
- And a bunch of documentation improvements.
### Other news
- GoReleaser now has ~10.3k stars and 285 contributors! Thanks, everyone!
- Our Discord server is getting new members almost daily. [Join and chat with us](https://discord.gg/RGEBtg8vQ6)!
- Check out a preview of the split release phases feature:
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/G0MF0R_LD1g?si=zunwxqAhjU6QFK9d" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

View File

@ -0,0 +1,55 @@
---
slug: goreleaser-v1.11
date: 2022-08-28
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.11 — the hundred commits release
This release took a while, for all the good reasons: a ton of new features and
bug fixes for your delight!
<!-- more -->
Oh, and, over 100 commits!
It might be the biggest GoReleaser release in commits made, although I have no
data to back it up — except my memory.
![GoReleaser Screenshot](https://carlosbecker.com/posts/goreleaser-v1.11/picture.png)
### Highlights
- **GoReleaser Pro** can now skip Fury publishing with `--skip-fury`;
- **GoReleaser Pro** now has before and after hooks for archives;
- GoReleaser is now compiled using Go 1.19, and supports new Go 1.19 targets
(`GOARCH=loong64`);
- New `.ArtifactExt` template field and new `split` function;
- You can now add more files/folders/globs to source archives (e.g. the `vendor`
folder);
- The JSONSchema is finally (properly) fixed;
- Skip uploading artifacts into the release, without skipping the whole release;
- Changelogs using the `github` strategy now use the short commit as well;
- Allow to keep a single draft GitHub release;
- Allow to set `target_commitish` in GitHub releases;
- Allow to set up mTLS in the HTTP uploads pipe;
- Option to strip the binary parent folder in the archive;
- Couple of improvements in the nFPM: added Termux packaging, changelogs and
`provides` support.
- The GoReleaser Docker image now logs in into the GitLab Registry if its
environment variables are set;
- Homebrew taps can now define their dependencies' versions;
- The deprecated Gofish feature is now fully removed;
- As of every release, a healthy amount of bug fixing;
- Many documentation improvements.
### Other news
- GoReleaser now has ~10.5k stars and 292 contributors! Thanks, everyone!
- GoReleaser now has a [LinkedIn page](https://www.linkedin.com/company/goreleaser/);
- We eventually discuss new features in our Discord server. [Join the conversation](https://discord.gg/RGEBtg8vQ6)!
- nFPM had new releases as well, [check it out](https://github.com/goreleaser/nfpm/releases).
- GoReleaser Pro now has [nightly releases](https://github.com/goreleaser/goreleaser-pro/releases/tag/nightly);

View File

@ -0,0 +1,50 @@
---
date: 2022-10-17
slug: goreleaser-v1.12
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.12 — the more-than-a-hundred commits release
[The previous release had ~100 commits](./v1.11.md),
and this one has 149 since previous feature release!
<!-- more -->
Definitely a big release, with some big features. Let's dive in!
![GoReleaser Pro release using the new spli/merge feature](https://carlosbecker.com/posts/goreleaser-v1.12/picture.png)
### Highlights
- **GoReleaser Pro** can now split and merge releases;
- **GoReleaser Pro** can now filter paths for changelogs;
- **GoReleaser Pro** has now a `continue` command, which merges `publish` and
`announce`;
- **GoReleaser Pro** can now filter targets by `GGOOS` and `GGOARCH` as well;
- AUR can now set the backup options;
- GoReleaser completions are now published to Fig as well;
- Blobs have more templateable fields;
- The Telegram announcer now supports markdown;
- NFPMs can now create iOS packages (for jailbroken iPhones only);
- Buildpacks were permanently removed;
- As always, **a lot** of bug fixes, documentation improvements and dependencies
updates;
You can [install][] the same way you always do, and you can see the full release
notes [here][oss-rel] and [here (for Pro)][pro-rel].
[install]: https://goreleaser.com/install
[pro-rel]: https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.12.0-pro
[oss-rel]: https://github.com/goreleaser/goreleaser/releases/tag/v1.12.0
### Other news
- GoReleaser now has ~10.8k stars and 305 contributors! Thanks, everyone!
- We eventually discuss new features in our Discord server. 
[Join the conversation](https://discord.gg/RGEBtg8vQ6)!
- nFPM had new releases as well, 
[check it out](https://github.com/goreleaser/nfpm/releases).

View File

@ -0,0 +1,58 @@
---
date: 2022-11-18
slug: goreleaser-v1.13
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.13 — the November release
Another month, another release!
Like the previous 2 releases, this is a beefy one: over 100 commits from 15
contributors!
<!-- more -->
![Mastodon integration](https://carlosbecker.com/posts/goreleaser-v1.13/picture.png)
This one also marks the point of
[1 year since our first v1](./v1.md)!
### Highlights
- `docker`, `docker buildx` and `podman` (on GoReleaser Pro) will now use the
image `digest` when creating `docker manifests`. This should help ensure that
what you are releasing wasn't changed by an outside tool.
- In the same token, the Docker images and manifests signing with `cosign`
will now use the `digest` by default.
- GoReleaser can now announce to Mastodon!
- Ability to create Arch Linux packages, _btw_.
- Still regarding nFPM, `dst`s with trailing slashes will now have the same
behavior as tools such as `cp` with trailing slashes.
- For Windows fans: you can now create and publish `nupkg`s (Chocolatey
packages)!
- Better support for building and publishing shared or static libraries.
- Many bug fixes and documentation improvements.
You can [install][] the same way you always do, and you can see the full release
notes [here][oss-rel] and [here (for Pro)][pro-rel].
[install]: https://goreleaser.com/install
[pro-rel]: https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.13.0-pro
[oss-rel]: https://github.com/goreleaser/goreleaser/releases/tag/v1.13.0
### Other news
- GoReleaser now has ~10.9k stars and 313 contributors! Thanks, everyone!
- We are now present in the fediverse, give us a follow at
[@goreleaser@fosstodon.org](https://fosstodon.org/@goreleaser).
- We eventually discuss new features in our Discord server. 
[Join the conversation](https://goreleaser.com/discord)!
- nFPM had new releases as well, 
[check it out](https://github.com/goreleaser/nfpm/releases).
- We made a bunch of progress towards getting 100% in the
[OpenF Best Practices](https://bestpractices.coreinfrastructure.org/en/projects/5420#analysis)
assessment... and we're almost there.

View File

@ -0,0 +1,52 @@
---
date: 2022-12-27
slug: goreleaser-v1.14
tags: [goreleaser, goreleaser-pro, golang]
---
# Announcing GoReleaser v1.14 — the Christmas release
Another month, another release!
In fact, the last release of the year.
<!-- more -->
This one in particular marks the 6 years anniversary of GoReleaser, and is
packed with new features and improvements.
![Santa](https://carlosbecker.com/posts/goreleaser-v1.14/img.png)
Let's see what's new:
### Highlights
- GoReleaser Pro can now skip the build of specific Docker images based on a
template evaluation result;
- GoReleaser Pro build hooks now also inherit the build environment variables
- You can now use templates in `brews.install`, `builds.env` and
`archives.files.info`
- Windows is added as a default OS for builds (amd64 and 386)
- New `archives.rlcp` option: It'll be the default soon, run `goreleaser check`
to verify your configuration
- Allow to customize the tag sorting directive
- Deprecate `archives.replacements`
- Allow to set the file info of binaries inside archives
- Added a new `title` template function
- As always, a lot of bug fixes and documentation improvements
You can [install][] the same way you always do, and you can see the full release
notes [here][oss-rel] and [here (for Pro)][pro-rel].
[install]: https://goreleaser.com/install
[pro-rel]: https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.14.0-pro
[oss-rel]: https://github.com/goreleaser/goreleaser/releases/tag/v1.14.0
### Other news
- GoReleaser now has ~11k stars and 316 contributors! Thanks, everyone!
- We are now present in the fediverse, give us a follow at
[@goreleaser@fosstodon.org](https://fosstodon.org/@goreleaser).
- We eventually discuss new features in our Discord server. 
[Join the conversation](https://goreleaser.com/discord)!
- nFPM had new releases as well, 
[check it out](https://github.com/goreleaser/nfpm/releases).

View File

@ -0,0 +1,65 @@
---
date: 2023-01-30
slug: goreleaser-v1.15
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.15 — the first of 2023
Keeping our pace of 1 minor a month, this is the January 2023 release.
<!-- more -->
![GoReleaser’s Ko integration documentation](https://carlosbecker.com/posts/goreleaser-v1.15/img.png)
It is packed with some juicy features and tons of bug fixes and quality-of-life
improvements.
Let's take a look:
### Highlights
- GoReleaser Pro now can now create changelog subgroups
- You can create and push Docker images/manifests with [Ko](https://ko.build/)
(big thanks to [@developerguyba](https://twitter.com/developerguyba) and
[@ImJasonH](https://twitter.com/ImJasonH) for all the work here)
- More templateable fields: `nfpms.apk.signature.key_name`, `release.disable`,
`release.skip_upload`, `snaps.grade`, `telegram.chat_id`
- Deprecated `--clean` in favor of `--clean`
- As always, a lot of bug fixes and documentation improvements
You can [install][] the same way you always do, and you can see the full release
notes [here][oss-rel] and [here (for Pro)][pro-rel].
[install]: https://goreleaser.com/install
[pro-rel]: https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.15.0-pro
[oss-rel]: https://github.com/goreleaser/goreleaser/releases/tag/v1.15.0
#### GitHub Action incident
Last Friday (Jan 27th), we had a rather big
[incident](https://github.com/goreleaser/goreleaser-action/pull/389) due to a
GitHub website change. We were using a URL to get the release that was not in
the API domain, but was working well for a couple of years. GitHub changed it,
and we, as well as many other projects, got an incident in our hands. This is
definitely our fault, though, we should have been using the guaranteed API
endpoints instead. That said, we fixed it rather quickly, even though it was a
Friday night. Since then, we also made more changes to use the `releases.json`
served by our website instead of GitHub’s API, which also avoids rate limits and
issues with GHE users. I also wanna give huge props to
[@crazy-max](https://github.com/crazy-max) for working hard on all that, as well
as everyone who helped debug and test everything on
[#389](https://github.com/goreleaser/goreleaser-action/pull/389).
### Other news
- GoReleaser now has ~11.2k stars and 322 contributors! Thanks, everyone!
- We are now present in the fediverse, give us a follow at
[@goreleaser@fosstodon.org](https://fosstodon.org/@goreleaser).
- We eventually discuss new features in our Discord server. 
[Join the conversation](https://goreleaser.com/discord)!
- nFPM had new releases as well, 
[check it out](https://github.com/goreleaser/nfpm/releases).

View File

@ -0,0 +1,65 @@
---
date: 2023-03-06
slug: goreleaser-v1.16
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.16 — the late February release
The February release got a little late... _better later than even later, I guess!_ 😄
<!-- more -->
![goreleaser healthcheck](https://carlosbecker.com/posts/goreleaser-v1.16/img.png)
It is packed with some juicy features and tons of bug fixes and quality-of-life
improvements.
Let's take a look:
### Highlights
- On GoReleaser Pro you can now add dividers between groups in the changelog.
[Documentation](https://goreleaser.com/customization/changelog/).
- GoReleaser Pro also gets a new template variable: `{{ .Artifacts }}`, which
you can iterate over to build, for instance, custom scripts. Oh, how can you
build custom scripts? I'm glad you asked!
[Documentation](https://goreleaser.com/customization/templates/#artifacts).
- Concluding our Pro-exclusive feature-set for this release: template files! You
can template entire files, and they'll get added to the release!
[Documentation](https://goreleaser.com/customization/templatefiles/).
- All GoReleaser distributions get a new subcommand: `healthcheck`.
[Documentation](https://goreleaser.com/cmd/goreleaser_healthcheck/).
- The single `build` statement has been undocumented for many years, and has
been deprecated.
- You can now announce to OpenCollective.
[Documentation](https://goreleaser.com/customization/announce/opencollective/).
- Templating updates: `nfpms` get `{{ .ConventionalExtension }}`, new
templateable fields, `base` (as in `filepath.Base`) template function, and
more.
- When running on a new project, with no `project_name` set, and no git remotes,
GoReleaser will now try to infer the project name from the `go.mod` file
instead of erroring.
- GoReleaser is now built with Go 1.20.
- As always, a lot of bug fixes, dependency updates and improvements!
You can [install][] the same way you always do, and you can see the full release
notes [here][oss-rel] and [here (for Pro)][pro-rel].
[install]: https://goreleaser.com/install
[pro-rel]: https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.16.0-pro
[oss-rel]: https://github.com/goreleaser/goreleaser/releases/tag/v1.16.0
### Other news
- We have a whole lot of example repositories, including Zig, GoReleaser-Cross,
GoReleaser Pro features, and more.
[Check it out](https://github.com/orgs/goreleaser/repositories?q=example)!
- GoReleaser now has ~11.3k stars and 327 contributors! Thanks, everyone!
- We eventually discuss new features in our Discord server. 
[Join the conversation](https://goreleaser.com/discord)!
- nFPM had new releases as well, 
[check it out](https://github.com/goreleaser/nfpm/releases).

View File

@ -0,0 +1,54 @@
---
date: 2023-04-10
slug: goreleaser-v1.17
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.17 — the late Easter release
The Easter release is here!
<!-- more -->
![better docker image build error output](https://carlosbecker.com/posts/goreleaser-v1.17/img.png)
It is packed with some juicy features and tons of bug fixes and quality-of-life
improvements.
Let's take a look:
### Highlights
- GoReleaser Pro now has a `templated_files` (or `templated_extra_files`) in
several fields: archives, blobs, checksum, custom_publishers, docker, nfpms,
release, snapcrafts and source
- GoReleaser can now open pull requests of homebrew taps, brews and scoop
instead of just pushing it to a branch
- Some smaller improvements in templates, like the new `.Now` and `.IsDraft`
template variables (tip: `{{ .Now.Format "2006" }}` to format the date time as
you want)
- Default Parallelism now matches Linux container CPU
- Some errors have been improved to be more clear on how to fix them
- Many improvements in the documentation
- As always, a lot of bug fixes, dependency updates and improvements!
You can [install][] the same way you always do, and you can see the full release
notes [here][oss-rel] and [here (for Pro)][pro-rel].
[install]: https://goreleaser.com/install
[pro-rel]: https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.17.0-pro
[oss-rel]: https://github.com/goreleaser/goreleaser/releases/tag/v1.17.0
### Other news
- We have a whole lot of example repositories, including Zig, GoReleaser-Cross,
GoReleaser Pro features, and more.
[Check it out](https://github.com/orgs/goreleaser/repositories?q=example)!
- GoReleaser now has ~11.4k stars and 333 contributors! Thanks, everyone!
- We eventually discuss new features in our Discord server. 
[Join the conversation](https://goreleaser.com/discord)!
- nFPM had new releases as well, 
[check it out](https://github.com/goreleaser/nfpm/releases).

View File

@ -0,0 +1,171 @@
---
date: 2023-05-05
slug: goreleaser-v1.18
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.18 — the maintainers month release
May is the [maintainers month](https://maintainermonth.github.com), so I would
first like to thank all the maintainers out there for the hard work, you rock!
<!-- more -->
![new goreleaser -v output (pro)](https://carlosbecker.com/posts/goreleaser-v1.18/img1.png)
Now, onto new features!
## Highlights
### Native `upx` support
This version introduces a [`upx`][upx] root configuration section, which allows
you to compress the binaries.
Go built binaries are known for being, well, not small. There are a couple of
strategies to remediate it, for example, passing `-s -w` as `-ldflags` to `go
build` - which GoReleaser does by default since the beginning.
I hope that, by making it easier to make the binaries even smaller, we get more
projects to do that, better supporting environments with bad download speeds
and/or low storage.
For reference, running `upx` through GoReleaser binaries shrunk them from
**~51M** to **~15M** - about **27%** of its original size.
In a future release we'll also add more filters to the `upx` configuration.
[Documentation](https://goreleaser.com/customization/upx/).
PS: if you use this on GitHub Actions, I recommend using
[`crazy-max/ghaction-upx`](https://github.com/crazy-max/ghaction-upx) to install
the latest and greatest [`upx`][upx] version!
[upx]: https://upx.github.io/
### Report binaries sizes
Also related to binary sizes, you can now enable size reporting. After the build
phase, GoReleaser will display the sizes and paths of all built artifacts.
These sizes will also be available in `dist/artifacts.json`, so you might parse
and export them somewhere else.
[Documentation](https://goreleaser.com/customization/reportsizes/).
### Template improvements
This is a recurrent subject in most releases, I know: more templateable fields!
This release is not different in that regard:
- New `{{ .IsGitDirty }}` template variable
- `nfpms.*.package_name` now allows templates
### Scoops
To be in better parity with [`brews`][brews] and others, `scoop` is deprecated
in favor of `scoops`, and you can now define multiple Scoop manifests in the
same `.goreleaser.yaml` file.
[Documentation](https://goreleaser.com/customization/scoop/).
[brews]: https://goreleaser.com/customization/homebrew/
### Publish Homebrew taps, Scoop manifests and Krew plugins to plain Git repositores
Historically, you could only publish to GitHub, GitLab and Gitea, which used
their respective APIs.
Now, you can push to any Git repository. This can be specially useful for people
self-hosting Git servers, like [Soft Serve][soft] for example.
[soft]: https://charm.sh/soft-serve
Documentation:
- [Homebrew Taps](https://goreleaser.com/customization/homebrew/).
- [Scoops Manifests](https://goreleaser.com/customization/scoop/).
- [Krew Plugin Manifests](https://goreleaser.com/customization/krew/)
### Deprecation warnings rolled out
On GoReleaser Pro, the initial way to access custom environment variables was
`{{.var_name}}`. That could conflict with GoReleaser's internal state, and was
deprecated in favor of `{{.Var.var_name}}`.
Now, the old way is officially removed for good.
### Output improvements
I always aim for the GoReleaser output to be concise yet complete-ish.
This release contains a few improvements in that regard, like the removal of
sorting the `log` keys alphabetically, so they are displayed in the intended
order.
Another change is in printing the artifacts' path: it will now, when possible,
use relative paths in order to make the output a bit better.
Last but not least, we have a new `goreleaser --version` output using
[go-version](https://github.com/caarlos0/go-version):
{{< img caption="new goreleaser -v output" src="img2.png" >}}
It's not much, but it's honest work!
### Check multiple configuration files
GoReleaser Pro allows you to include configuration files, which might lead to
[repositories of reusable `.goreleaser.yaml` files
parts](https://github.com/caarlos0/goreleaserfiles).
One of the advantages of this is being able to, for example, change some
configuration in a single place and that is then applied to all the projects
that use that file.
The problem is that `goreleaser check` only ever allowed to check one file at a
time.
On v1.18 we added the ability to, instead, pass as many configuration files you
need as arguments. This also allows you to use shell globs, e.g.:
```bash
goreleaser check goreleaser*.yaml
```
You can then add this to your CI, so your GoReleaser configuration files are
always validated and hopefully free of deprecation notices. 🤝
### No AUR for v1.18.0
I'm not sure if AUR is under maintainance or if there something else going on,
but I'm unable to clone my AUR packages using their private URLs.
I didn't want to hold the release because of it, so I'll be releasing a patch as
soon as the problem is fixed, whatever the problem is.
Thanks for the comprehension. 😃
## Other news
- We have a whole lot of example repositories, including Zig, GoReleaser-Cross,
GoReleaser Pro features, and more.
[Check it out](https://github.com/orgs/goreleaser/repositories?q=example)!
- GoReleaser now has ~11.6k stars and 336 contributors! Thanks, everyone!
- We eventually discuss new features in our Discord server. 
[Join the conversation](https://goreleaser.com/discord)!
- nFPM had new releases as well, 
[check it out](https://github.com/goreleaser/nfpm/releases).
## Download
You can [install][] or upgrade using your favorite package manager, or see the
full release notes and download the pre-compiled binaries [here][oss-rel] and
[here (for Pro)][pro-rel].
[install]: https://goreleaser.com/install
[pro-rel]: https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.18.0-pro
[oss-rel]: https://github.com/goreleaser/goreleaser/releases/tag/v1.18.0

View File

@ -0,0 +1,245 @@
---
date: 2023-06-28
slug: goreleaser-v1.19
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.19 — the big release
Almost 200 commits adding Nix, Winget, and much more...
<!-- more -->
This release took almost **2 months** (!), and I hope the wait was worth it!
Without further ado, let's dive in!
## Highlights
### Security improvements
We got a [CVE on nFPM](https://github.com/goreleaser/nfpm/security/advisories/GHSA-w7jw-q4fg-qc4c)
and another one [on
GoReleaser](https://github.com/goreleaser/goreleaser/security/advisories/GHSA-2fvp-53hw-f9fc).
It is unlikely that you were affected by this, but it's worth taking a look just
in case.
**Both incidents were fixed in this release.**
### Open pull requests for Homebrew, Krew, Scoop
You can now instead of just pushing to a branch, push and open a pull request.
It even works cross-repository!
Here's an example:
```yaml
# .goreleaser.yml
brews: # can be brews, krew, scoops, etc...
- # ...
repository:
owner: john
name: repo
branch: "{{.ProjectName}}-{{.Version}}"
pull_request:
enabled: true
base:
owner: mike
name: repo
branch: main
```
GoReleaser will also read the `.github/PULL_REQUEST_TEMPLATE.md` and prepend it
to the PR description if it exists!
### Nix
We added support to generate Nixpkgs.
We **don't** generate Nixpkgs that compile from source, though.
Instead, we use the already built archives.
This decision was made because this way we can support closed-source software as
well as Open Source.
The idea here is that you create your own [NUR][] and instruct your users to
install from there.
[NUR]: https://github.com/nix-community/NUR
Example:
```yaml
# .goreleaser.yml
nix:
- name: goreleaser-pro
repository:
owner: goreleaser
name: nur
homepage: https://goreleaser.com
description: Deliver Go binaries as fast and easily as possible
license: unfree
install: |-
mkdir -p $out/bin
cp -vr ./goreleaser $out/bin/goreleaser
installManPage ./manpages/goreleaser.1.gz
installShellCompletion ./completions/*
```
### Winget
Now that Winget supports installing `zip` packages, GoReleaser added support to
generate the needed manifests, and you can then PR them to
`microsoft/winget-pkgs`.
![winget-installed goreleaser on windows](https://carlosbecker.com/posts/goreleaser-v1.19/pic.jpg)
Example:
```yaml
# .goreleaser.yml
winget:
- name: goreleaser-pro
publisher: goreleaser
license: Copyright Becker Software LTDA
copyright: Becker Software LTDA
homepage: https://goreleaser.com
short_description: Deliver Go binaries as fast and easily as possible
repository:
owner: goreleaser
name: winget-pkgs
branch: "goreleaser-pro-{{.Version}}"
pull_request:
enabled: true
draft: true
base:
owner: microsoft
name: winget-pkgs
branch: master
```
PS: when you open a PR to `microsoft/winget-pkgs`, you are expected to fill the
PR template there... Don't forget to do it! 😄
### Ko improvements
The Ko pipe will now ignore empty tags (e.g. if a template evaluate to an empty
string).
Ko also now properly registers its manifests within GoReleaser's context, so you
can sign them with `docker_signs`.
### Deprecations that were permanently removed
Some things that were deprecated for over 6 months were removed in this release:
- `archives.replacements`
- `archives.rlcp`
There are also other deprecations to be removed soon!
Check the [deprecations][] page to find out more, and run `goreleaser check`
every now and then to see if your configuration file is good!
[deprecations]: https://goreleaser.com/deprecations
### Templates
More fields now accept templates:
- `dockers.skip_push`
- `docker_manifests.skip_push`
- `scoops.description`
- `scoops.homepage`
- `snapcrafts.title`
- `snapcrafts.icon`
- `snapcrafts.assumes`
- `snapcrafts.hooks`
On the same token, there are a couple of new template functions and fields:
- `{{.IsNightly}}` (always false on OSS)
- `{{.Checksums}}` can be used in the release body template
- `{{envOrDefault "FOO" "bar" }}` returns the value of `$FOO` if it is set,
otherwise returns `bar`
### Standard repository
Historically, you would set `brews.tap`, `krews.index` and etc.
Internally, they all used the same structure: a repository.
"A repository" is also (probably) how most think about these fields.
To make things easier on everyone, now all those fields are named `repository`
instead.
You can check the [deprecations][] page to find more information.
### Continue on error
From this version onward, GoReleaser will not hard-stop when Homebrew, Nix, and
other pipes fail to publish.
Our understanding is that having a broken, stopped-in-the-middle release, is
worse than continuing and reporting all the errors in the end, so you can fix
them all in a single pass and do a point-release.
You can still get the previous behavior by passing the `--fail-fast` flag.
### Upx
As promised, `upx` now has more filters: `goos`, `goarch`, `goarm` and
`goamd64`.
### Telegram
The Telegram announcer now supports choosing the message format.
You can also use `mdv2escape` to escape sequences accordingly to `mdv2`.
### Changelog
Besides just excluding commits that match some regular expressions, you can now
include **only** the commits that match one of them.
Example:
```yaml
# .goreleaser.yml
changelog:
filters:
include:
- "^feat.*"
- "^fix.*"
```
### Bugfixes et al
We also had a bunch of bugfixes and documentation improvements, as always.
## Other news
- GoReleaser now has ~11.8k stars and 340 contributors! Thanks, everyone!
- We eventually discuss new features in our Discord server. 
[Join the conversation](https://goreleaser.com/discord)!
- nFPM had new releases as well, 
[check it out](https://github.com/goreleaser/nfpm/releases).
## Download
You can [install][] or upgrade using your favorite package manager, or see the
full release notes and download the pre-compiled binaries [here][oss-rel] and
[here (for Pro)][pro-rel].
[install]: https://goreleaser.com/install
[pro-rel]: https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.19.0-pro
[oss-rel]: https://github.com/goreleaser/goreleaser/releases/tag/v1.19.0
## Helping out
You can help by contributing features and bug fixes, or by donating.
You may also be interested in buying a GoReleaser Pro license.
You can find out more [here](https://goreleaser.com/sponsors/).

View File

@ -0,0 +1,102 @@
---
date: 2023-08-09
slug: goreleaser-v1.20
categories:
- announcements
authors:
- caarlos0
---
# Announcing GoReleaser v1.20 — a quality-of-life release
A little over 100 commits in small-_ish_ quality-of-life improvements.
<!-- more -->
This is not a flashy release, but I bet you're going to like it anyway 😄
## Highlights
![Releasing...](https://carlosbecker.com/posts/goreleaser-v1.20/pic.png)
### Nightlies
I've been releasing [GoReleaser Pro Nightlies][pro-nightly] for a while now, but
it never had a fixed schedule, and the OSS version never had a nightly release
either.
Starting now, the Pro Nightly will be released every Wednesday, and the OSS
every Thursday.
[pro-nightly]: https://github.com/goreleaser/goreleaser-pro/releases/tag/nightly
### GoReleaser Pro improvements
[GoReleaser Pro][pro] added a few new features:
- ability to automatically check boxes in PR templates
- alternative names for Homebrew formulas
- `Dockerfile` templated contents
- HTTP & Artifactory upload matrix
- nFPM `templated_scripts`
- `goreleaser release --single-target`
- Release's footer/header can be set to file paths/URLs in the configuration file
### Nix
[We added Nix support in the previous release](./v1.19.md),
and in this one we added a few improvements:
- `zip` support
- the ability to define runtime dependencies
- make it easier to extend with a new `extra_install` option
### `extra_install`
Speaking of extra install instructions, we added this option to brew too.
### `mod_timestamp`
We added the ability to set a `mod_timestamp` to both metadata files and to
universal binaries.
### Other improvements and bug fixes
This release also adds a few other small improvements, here's a few of them:
- Scoops now support `arm64`
- Winget got the `PortableCommandAlias` option
- Release on GitHub now has the `make_latest` option
- You can now disable custom publishers using templates
- `goreleaser init` and overall `goreleaser release` output improvements
Make sure to read the [full release notes][oss-rel], and the
[pro version release notes][pro-rel] as well.
As always, we also had a bunch of bug fixes and documentation improvements.
## Other news
- GoReleaser now has ~11.9k stars and 348 contributors! Thanks, everyone!
- We eventually discuss new features in our Discord server. 
[Join the conversation](https://goreleaser.com/discord)!
- nFPM had new releases as well, 
[check it out](https://github.com/goreleaser/nfpm/releases).
## Download
You can [install][] or upgrade using your favorite package manager, or see the
full release notes and download the pre-compiled binaries [here][oss-rel] and
[here (for Pro)][pro-rel].
[install]: https://goreleaser.com/install
[pro-rel]: https://github.com/goreleaser/goreleaser-pro/releases/tag/v1.20.0-pro
[oss-rel]: https://github.com/goreleaser/goreleaser/releases/tag/v1.20.0
[pro]: https://goreleaser.com/pro
## Helping out
You can help by contributing features and bug fixes, or by donating.
You may also be interested in buying a GoReleaser Pro license.
You can find out more [here](https://goreleaser.com/sponsors/).

View File

@ -0,0 +1,38 @@
---
date: 2023-09-14
slug: welcome
categories:
- announcements
authors:
- caarlos0
---
# Welcome to our new blog
We are in the process of migrating our blog from Medium to here.
<!-- more -->
Medium is proprietary, and I don't particularly like it very much.
Now that [material-mkdocs][] has a blog feature, I started migrating the blog to
here.
You can follow the progress in [this issue](https://github.com/goreleaser/goreleaser/issues/3503).
You can also subscribe to the [RSS feed](/feed_rss_created.xml)!
Thanks, I hope you enjoy the new home. 😄
[material-mkdocs]: https://squidfunk.github.io/mkdocs-material/
!!! tip "Guest Posts"
We are also very happy to accept guest posts!
If you feel like it, you can open a pull request adding your post to
[`./www/docs/blog/posts/`](https://github.com/goreleaser/goreleaser/blob/main/www/docs/blog/posts/),
and/or join our [Discord](/d) and discuss in the `blog` channel.
You may also need to add yourself to
[`./www/docs/blog/.authors.yml`](https://github.com/goreleaser/goreleaser/blob/main/www/docs/blog/.authors.yml).

View File

@ -12,11 +12,13 @@ Below you can find the steps for each of them.
### homebrew tap
=== "OSS"
```bash
brew install goreleaser/tap/goreleaser
```
=== "Pro"
```bash
brew install goreleaser/tap/goreleaser-pro
```
@ -24,17 +26,20 @@ Below you can find the steps for each of them.
### homebrew
=== "OSS"
```bash
brew install goreleaser
```
!!! info
The [formula in homebrew-core](https://github.com/Homebrew/homebrew-core/blob/master/Formula/g/goreleaser.rb) might be slightly outdated.
Use our homebrew tap to always get the latest updates.
### snapcraft
=== "OSS"
```bash
sudo snap install --classic goreleaser
```
@ -42,12 +47,14 @@ Below you can find the steps for each of them.
### scoop
=== "OSS"
```bash
scoop bucket add goreleaser https://github.com/goreleaser/scoop-bucket.git
scoop install goreleaser
```
=== "Pro"
```bash
scoop bucket add goreleaser https://github.com/goreleaser/scoop-bucket.git
scoop install goreleaser-pro
@ -56,6 +63,7 @@ Below you can find the steps for each of them.
### apt
=== "OSS"
```bash
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | sudo tee /etc/apt/sources.list.d/goreleaser.list
sudo apt update
@ -63,6 +71,7 @@ Below you can find the steps for each of them.
```
=== "Pro"
```bash
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | sudo tee /etc/apt/sources.list.d/goreleaser.list
sudo apt update
@ -72,6 +81,7 @@ Below you can find the steps for each of them.
### yum
=== "OSS"
```bash
echo '[goreleaser]
name=GoReleaser
@ -82,6 +92,7 @@ Below you can find the steps for each of them.
```
=== "Pro"
```bash
echo '[goreleaser]
name=GoReleaser
@ -94,26 +105,29 @@ Below you can find the steps for each of them.
### aur
=== "OSS"
```bash
yay -S goreleaser-bin
```
=== "Pro"
```bash
yay -S goreleaser-pro-bin
```
### nix
#### nixpkgs
=== "OSS"
```bash
nix-env -iA goreleaser
```
!!! info
The [package in nixpkgs](https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/goreleaser/default.nix)
might be slightly outdated, as it is not updated automatically.
Use our NUR to always get the latest updates.
@ -129,6 +143,7 @@ Once you do that, you can install the packages.
[nur]: https://github.com/goreleaser/nur
=== "OSS"
```nix
{ pkgs, lib, ... }: {
home.packages = with pkgs; [
@ -138,6 +153,7 @@ Once you do that, you can install the packages.
```
=== "Pro"
```nix
{ pkgs, lib, ... }: {
home.packages = with pkgs; [
@ -149,14 +165,17 @@ Once you do that, you can install the packages.
### deb, rpm and apk packages
=== "OSS"
Download the `.deb`, `.rpm` or `.apk` packages from the [OSS releases page][releases] and install them with the appropriate tools.
=== "Pro"
Download the `.deb`, `.rpm` or `.apk` packages from the [Pro releases page][pro-releases] and install them with the appropriate tools.
### go install
=== "OSS"
```bash
go install github.com/goreleaser/goreleaser@latest
```
@ -164,16 +183,19 @@ Once you do that, you can install the packages.
### bash script
=== "OSS"
```bash
curl -sfL https://goreleaser.com/static/run | bash
```
=== "Pro"
```bash
curl -sfL https://goreleaser.com/static/run | DISTRIBUTION=pro bash
```
=== "Additional Options"
You can also set the `VERSION` and `DISTRIBUTION` variables to specify
a version instead of using latest and `pro` or `oss` distributions,
respectively.
@ -186,6 +208,7 @@ Once you do that, you can install the packages.
```
!!! tip
This script does not install anything, it just downloads, verifies and
runs GoReleaser.
Its purpose is to be used within scripts and CIs.
@ -193,9 +216,11 @@ Once you do that, you can install the packages.
### manually
=== "OSS"
Download the pre-compiled binaries from the [OSS releases page][releases] and copy them to the desired location.
=== "Pro"
Download the pre-compiled binaries from the [Pro releases page][pro-releases] and copy them to the desired location.
### nightly
@ -206,11 +231,13 @@ Use it for testing out new features only.
#### manually
=== "Pro"
Download the pre-compiled binaries from the [nightly release][nighly-pro-releases] and copy them to the desired location.
### bash script
=== "Pro"
```bash
curl -sfL https://goreleaser.com/static/run |
VERSION=nightly DISTRIBUTION=pro bash -s -- release --clean
@ -219,6 +246,7 @@ Use it for testing out new features only.
#### docker
=== "Pro"
Docker images are also available, look for tags with a `-nightly` suffix.
Registries:
@ -233,6 +261,7 @@ Use it for testing out new features only.
All artifacts are checksummed, and the checksum file is signed with [cosign][].
=== "OSS"
1. Download the files you want, and the `checksums.txt`, `checksum.txt.pem` and `checksums.txt.sig` files from the [releases][releases] page:
```bash
wget 'https://github.com/goreleaser/goreleaser/releases/download/__VERSION__/checksums.txt'
@ -252,6 +281,7 @@ All artifacts are checksummed, and the checksum file is signed with [cosign][].
```
=== "Pro"
1. Download the files you want, and the `checksums.txt`, `checksum.txt.pem` and `checksums.txt.sig` files from the [releases][pro-releases] page:
```bash
wget 'https://github.com/goreleaser/goreleaser-pro/releases/download/__VERSION__-pro/checksums.txt'
@ -277,6 +307,7 @@ Our Docker images are signed with [cosign][].
Verify the signatures:
=== "OSS"
```bash
cosign verify \
--certificate-identity 'https://github.com/goreleaser/goreleaser/.github/workflows/release.yml@refs/tags/__VERSION__' \
@ -285,6 +316,7 @@ Verify the signatures:
```
=== "Pro"
```bash
cosign verify \
--certificate-identity 'https://github.com/goreleaser/goreleaser-pro-internal/.github/workflows/release-pro.yml@refs/tags/__VERSION__-pro' \
@ -293,6 +325,7 @@ Verify the signatures:
```
!!! info
The `.pem` and `.sig` files are the image `name:tag`, replacing `/` and `:` with `-`.
## Running with Docker
@ -301,6 +334,7 @@ You can also use it within a Docker container.
To do that, you'll need to execute something more-or-less like the examples below.
=== "OSS"
Registries:
- [`goreleaser/goreleaser`](https://hub.docker.com/r/goreleaser/goreleaser)
@ -321,6 +355,7 @@ To do that, you'll need to execute something more-or-less like the examples belo
```
=== "Pro"
Registries:
- [`goreleaser/goreleaser-pro`](https://hub.docker.com/r/goreleaser/goreleaser-pro)
@ -341,10 +376,10 @@ To do that, you'll need to execute something more-or-less like the examples belo
goreleaser/goreleaser-pro release
```
!!! info
Now, the provided docker image does not support
the generation of snapcraft packages.
the generation of Snapcraft packages.
Note that the image will almost always have the last stable Go version.
@ -370,7 +405,7 @@ and iterate from that.
Here you have two options:
If you want to contribute to the project, please follow the
steps on our [contributing guide](/contributing/).
steps on our [contributing guide](/contributing).
If you just want to build from source for whatever reason, follow these steps:

View File

@ -5,17 +5,21 @@
<a rel="me" href="https://fosstodon.org/@goreleaser">Mastodon</a>
for updates
- Join our [Discord server](/discord)
- Read our [blog](https://blog.goreleaser.com)[^blog]
- Read our [blog](./blog/index.md) ([RSS](/feed_rss_created.xml))
- Follow us on [LinkedIn](/linkedin)
- For questions, support and general discussion, please use
[Discord](/discord) or
[GitHub Discussions](https://github.com/goreleaser/goreleaser/discussions)
- [Contributing Guidelines](/contributing)
- [Security Policy](/security)
- [EULA](/eula)
- Ask questions on [GitHub Discussions](https://github.com/goreleaser/goreleaser/discussions)
- Before contributing, read the [Contributing Guidelines](./contributing.md)
- [Security Policy](./security.md
- [EULA](./eula.md)
This project adheres to the Contributor Covenant
[code of conduct](https://github.com/goreleaser/.github/blob/main/CODE_OF_CONDUCT.md).
By participating, you are expected to uphold this code.
[^blog]: We accept guest posts! Join our discord and see the `blog` channel.
[^blog]:
We accept guest posts!
You can open a pull request adding your post to
[`./www/docs/blog/posts/`](https://github.com/goreleaser/goreleaser/blob/main/www/docs/blog/posts/),
and/or join our discord and discuss in the `blog` channel.
You may also need to add yourself to
[`./www/docs/blog/.authors.yml`](https://github.com/goreleaser/goreleaser/blob/main/www/docs/blog/.authors.yml).

View File

@ -1,25 +1,27 @@
IgnoreURLs:
- www.google-analytics.com
- fonts.gstatic.com
- opencollective.com
- https://gitlab.com/-/profile/personal_access_tokens
- https://twitter.com/goreleaser
- support.discord.com
- microsoft.com
- https://github.com/goreleaser/goreleaser/edit/
- https://discord.com/
- https://gofi.sh
- https://docs.mattermost.com
- https://github.com/goreleaser/goreleaser/pkgs
- https://iron.security
- https://marketplace.visualstudio.com
- linkedin.com
- repology.org
- reddit.com
- docs.github.com
- help.github.com
- www.google-analytics.com
- fonts.gstatic.com
- opencollective.com
- https://gitlab.com/-/profile/personal_access_tokens
- https://twitter.com/goreleaser
- support.discord.com
- microsoft.com
- https://github.com/goreleaser/goreleaser/edit/
- https://discord.com/
- https://gofi.sh
- https://docs.mattermost.com
- https://github.com/goreleaser/goreleaser/pkgs
- https://iron.security
- https://marketplace.visualstudio.com
- linkedin.com
- repology.org
- reddit.com
- getrevue.co
- docs.github.com
- help.github.com
- twitter.com
IgnoreDirs:
- overrides
- overrides
IgnoreDirectoryMissingTrailingSlash: true
IgnoreAltMissing: true
ExternalTimeout: 60

View File

@ -54,6 +54,14 @@ plugins:
- minify:
minify_html: true
- include-markdown
- tags
# - meta
- blog:
post_url_format: "{slug}"
- rss:
match_path: blog/posts/.*
date_from_meta:
as_creation: date
extra:
social:
@ -206,6 +214,8 @@ nav:
- sponsors.md
- users.md
- contributing.md
- Blog:
- blog/index.md
- pro.md
- links.md