Versioning Revisited
In are you testing the right version? I went over how sometimes you’re debugging an issue and you end up checking the wrong version.
It’s helpful to be able to check the current version of your software. In some environments, you can’t access logs. With some platforms, you don’t control the deployment process, so something could be reported as “latest”, but there is actually a variable delay between updates. Or the update never went through, or you uploaded the wrong build.
You can verify the current version in a few ways. Operating systems have APIs and tools to report their version. App stores usually display it for software they manage (example from Steam). Command line tools often support -v
or --version
. Windows executables can embed version information in metadata (examples from Skyrim, Hardspace: Shipbreaker). Some applications put it in the “About” screen (example from VS Code), or just on a main menu (example from Fortnite).
In most cases, you can make up whatever you want for your version. Some follow Semantic Versioning, others use the date, build number, commit hash, some random word from a dictionary, sprint number, etc. Once you decide on something, automate it.
More examples of version data:
Xcode:
Build version 15F31d
curl on macOS:
Release-Date: 2024-03-27
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL threadsafe UnixSockets
Do you have a preferred way to report the current version? Or version format?