Stamp It! All Programs Must Report Their Version
a day ago
- The author correctly guessed an outage root cause quickly but wasted hours due to lack of visibility into version numbers and rollouts.
- Software versioning standards are often lower than those of household appliances, despite software being constantly updated.
- The i3 window manager's `--version` and `--moreversion` commands provide detailed version info, including VCS revision, config file path, and build date, which aid debugging.
- Go stamps VCS buildinfo by default since Go 1.18, making it easy to identify exact build versions.
- NixOS can lose VCS revision stamping due to reproducibility concerns, but the author's `go-vcs-stamping` overlay fixes this.
- The three-step solution to improve version observability is: Stamp the VCS revision, Plumb it through build/packaging, and Report it on all relevant surfaces.
- Implementing version observability is a high-ROI one-day project that can save hours during incident response.