Stamp It! Every Program Should Say Which Version It Is

The pitch: stop the guessing game
It has been reported that software engineer Michael Stapelberg is pushing a simple, powerful idea: every program should reliably report what build it is. Frustration breeds fast fixes — "what version are you running?" is the single most boring question in engineering. Stapelberg argues that with modern toolchains (Go, notably) and reproducible packaging systems (Nix), making a program announce its own identity isn’t just polite, it’s practical.
How it would work (and why Go + Nix matter)
In practice this means embedding deterministic build metadata — a version string, a commit hash, a package derivation — and exposing it via a consistent, machine-readable flag or endpoint. Go already offers ways to carry build info into binaries (for example via linker flags and runtime/debug metadata), and Nix’s emphasis on deterministic outputs gives packagers a natural source for canonical identifiers. It has been reported that Stapelberg thinks those pieces together make a universal “stamp” feasible without wrecking reproducibility.
Trade-offs and the bigger payoff
There are trade-offs. Naïve stamping can leak build paths or timestamps and break reproducible builds; careless stamping can bloat logs or spill secrets. But do it right — use commit hashes or Nix derivation ids, avoid volatile timestamps — and you get immediate wins: easier debugging, cleaner support conversations, simpler incident triage, and a nicer fit for supply-chain tooling and SBOMs. Will the ecosystem agree to a common format? That’s the rub. Still, if the pandemic taught us anything about tooling, it’s that small common-sense standards can save countless hours and a lot of hair-pulling. Who wouldn’t welcome fewer "Which version?" calls at 2 a.m.?
Sources: michael.stapelberg.ch, Lobsters
Comments