Hacker News new | ask | show | jobs
by coldpie 4788 days ago
Version numbers are infuriating. Dates don't overflow, people! If you're doing incremental development that doesn't have a concept of a "stable release", just use dates. This applies to projects like Firefox and the Linux kernel. I was pretty annoyed when Linus went with 3.x. Eventually, it's going to run into the same problem 2.6.x did. Date-based versioning would have lasted forever!
3 comments

For internal purposes, you're probably right. For distribution and documentation purposes, I think it's much easier to understand "this plugin works on 7.3 or later" than "this plugin works on 2010-08-25 or later."
I think it doesn't have to include fully qualified date. For example, Ubuntu uses date-based versioning, e.g. 13.04
Thanks for pointing that out. It never occurred to me that their versioning is date-based.
You are assuming a monotonically increasing version number. What happens when you need to go back to the old "version" and push out an update? For instance, you shipped 3.0 a few months back but most of your users are still on 2.7. Uh, there's a bug on 2.7, you need to push out a fix. If you are doing versions by date, then there is no easy way to distinguish parallel development.
Just to play devils advocate, you could use both versioning schemes. For example, 13.01.24 could indicate it was the 24th revision of the 13.01 release (as opposed to being released on the 24th of the month).
I like this idea the best, but I think revision numbers are conventionally prefixed with a dash;

    13.01-24
http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Pac...

(i can never quite distinguish between revisions and releases... when is each used?)

Yeah, that would be better.

In this context a revision is just a bug fix release, the same as a "point release" or "minor release" or "patch version." I'm sure there are terms I'm forgetting. A micro-version increment, where the system is ${major}.${minor}.${micro} (in what the kids call "semantic versioning," but what used to just be called "not versioning like an idiot.")

Yeah, that wouldn't be the slightest bit confusing.
Version numbers for applications with a public API should have meaning:

http://semver.org/