Scripts and programs should skip having extensions like '.sh' and '.bash'

Understanding '+incompatible' in Go module version names

Sustainability in Open Source - Github and Charm

Talking about improving sustainability of open source with some incredible open source community members. We highly recommend checking out their profiles to see the cool projects they’re working on!

Go Protobuf Plugin Versioning

Update on Go 1.24 tool dependencies Go 1.24 introduced the -tool flag to go get and the tool stanza to go.mod. This makes tool dependencies an excellent way to manage protobuf plugins. I have rewritten this post with that in mind. Background When working with Protobuf and gRPC, o...

The proper setup of a Go module, as I understand it

Announcing GoReleaser v1.12 — the more-than-a-hundred commits release

The previous release had ~100 commits, and this one has 149 since previous feature release! Definitely a big release, with some big features. Let’s dive in! GoReleaser Pro release using the new split/merge feature Highlights GoReleaser Pro can now split an...

A complete guide to working with Cookies in Go

In this post we're going to run through how to use cookies in your Go web application to persist data between HTTP requests for a specific client. We'll start simple, and slowly build up a working application which covers the following topics: Basic reading and writing of cook...

Basic Go tooling for generics

Continuing the recent theme of blog posts about Go tooling, this post will briefly discuss how analysis tools interact with one of Go's newest features - generics. As usual, this post provides a motivating example and discusses a couple of approaches to writing a tool. The full c...

The C <code>free()</code> API gives libraries and functions useful freedom

Creating a tag and releasing from a GitHub Action, with GoReleaser

Most people run GoReleaser by creating a tag locally, pushing it, and letting their CI takes care of the matter. Another lesser known option is to leverage workflow_dispatch on a GitHub Action to create the tag locally, and then &ldquo;auto-creating&rdquo; the tag once the releas...