Version Numbers Don't Matter (to users)
bvckup.tumblr.com
bvckup.tumblr.com
Otherwise, asking the user is unnecessary and gets in the way. In browsers, for example, any changes to the rendering engine will have to be backwards compatible and any changes to the interface will be minimal as there's not that much too change. Chrome's model does really well here.
The version number itself can be anything you want, as long as it's relatively simple- it's really only necessary when the user is troubleshooting, so it just needs to be easy to say over the phone or compare to something on the web.
Just a couple weeks ago hundreds of thousands of SmoothGestures users learned the perils of auto-updating when an update introduced phone-home mechanisms into an extension which ostensibly does mouse gestures.
I have an app out that checks for updates and prompts the user if there's a new one. That's the default setting and it can be changed to disable all checks or switch to an automatic updates. Looking at the server logs I can tell that users do disable the update checks after the first notification, a lot of them do, like close to 25-30%. And virtually no-one switches to the automatic updates. YMMV obviously by an app and the OS, but it's still a data point to consider.
I am really curious to try just the date as a version number, but it seems just too alien and unconventional. The only real-life example I am aware of is Kuznetsov's iproute2 tool for Linux (or just ip). It uses the DDMMYYYY format and that's not much of an improvement over regular versions in my opinion.
Can anyone think of any other notable examples of unconventional versioning? It'd be nice to have a list for a reference.
You don't have to display version numbers to non-technical users. The update summary in this post looks fantastic for showing what changes have been made to end users.
[1]: http://semver.org/
> A bug fix is defined as an internal change that fixes incorrect behavior.
One man's incorrect behavior is another man's proper working order. Excluding crashes, missing data and other obvious bloopers, the "bug fix" needs to be defined way more formally than this. That would lead to more strict documentation requirements, which is a major bore and inconvenience to any self-respecting developer, which in turn will lead to lapses in SemVer compliance and then back to the starting point :)
For uncommon stuff: Ubuntu and Android use alphabetical code names, but I guess they're not really version numbers.
Knuth versions some of his books by digits of pi or e. (3, 3.1, 3.14, 3.141 etc).
Emacs has an implied "1." before each version number. It was decided that since there would never be a "2.x" version, they would just drop the "1." (22.3, 23.1, 23.2 etc).
Edit: oh, and git names revisions by SHA hashes, so each version is effectively random!
That said, I am distributing business-oriented software, that is often "mission critical", or at least directly tied to the profit stream.
That's the thing. It is really hard to make a string of dotted numbers informative. They can obviously be used to express hierarchy of the versions, and that's useful in development context, but I would strongly argue against trying to pack any additional sense into them.