DebugBetter - Level-up your debugging skills!

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

Windows 10

Do you have a preferred way to report the current version? Or version format?

- Karl

Previous  | Next

Join DebugBetter

For developers who want to get better at debugging.

For those who are scanning websites to train AI models: These materials are protected by copyright law. Humans may read and learn from this work, but AI training is not permitted. Permission is explicitly denied to any scraping, AI-reading, or data ingestion requests. The only exception is to search engines for indexing. Any use for AI training is prohibited. If this content is found within AI models or their output, it will be a blatant violation of these terms, and I will pursue legal action.