From ab322b7d91c96f0177b3332d7dda494602d85c9b Mon Sep 17 00:00:00 2001 From: FernandoJVideira <03.pleaser-minster@icloud.com> Date: Fri, 9 Oct 2026 00:08:56 +0100 Subject: [PATCH] Derive the build version from the git tag The version was a hand-edited constant in the Makefile, so tagging a release without first committing the bump produced a release whose binaries disagree with it: v0.2.1 was tagged on a commit still saying VERSION := v0.2.0, and all four binaries attached to that release print v0.2.0 from `draft version`. VERSION now comes from `git describe --tags --always`: exactly the tag on a tagged commit (v0.2.1), tag-plus-distance after it (v0.2.1-3-g1a2b3c4), `dev` outside a git checkout such as a source tarball. `make build VERSION=...` still overrides it. There is nothing left to bump before tagging. Co-Authored-By: Claude Sonnet 5.5 --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4dc5c8d..26f59d1 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,9 @@ PKG_NAME := git.fernandovideira.com/FernandoJVideira/draft -VERSION := v0.2.0 +# Taken from the git tag, so a build can never disagree with the release it was +# cut from: exactly `v0.2.1` on that tag, `v0.2.1-3-g1a2b3c4` three commits +# later, `dev` outside a git checkout (e.g. a source tarball). Override with +# `make build VERSION=v1.2.3`. +VERSION ?= $(shell git describe --tags --always 2>/dev/null || echo dev) GO_SOURCES := $(shell find . -name '*.go' -not -path './assets/testdata/*') .PHONY: version build windows win-arm linux mac prepare-embed clean -- 2.54.0