Call The First Version "1.0"

Dear Open Source Software Developers,

Take a cue from the commercial software of the world and call your first released version 1.0.

Subsequent feature releases can be 2.0, 3.0, etc. Bug fixes can be 2.1, 3.0.1, etc. I don’t care how you do that, just so long as the version number is greater than or equal to 1.0.0.

“But Bob, I use versions like 0.3.1 to indicate that the software is not feature complete.”

So don’t release it, then, or call it ALPHA. Most software adds features with new version releases. Why are you different?

“Sure, but I want to indicate it isn’t ready for prime-time.”

Hey, pal, unless you put ALPHA or BETA in the version name us poor saps downloading your software will think it’s release quality. When we’re trying a new piece of software we don’t stop to learn all the arcane version numbering schemes for each project. We download it, and when it doesn’t work we think it sucks and ditch it. Give us a hint it’s alpha or beta quality by including one of those words.

“Why do you care what I number each version as?”

Well, there’s a lot of stuff, from CMDBs to package managers, that don’t like versions below 1.0. That causes all sorts of pain for people like me. Eventually you’ll run out of sub-1.0 numbers and switch to 1.0, and then whatever hack I use to cope with your sub-1.0 numbers (usually by just multiplying by 10) isn’t going to work again.

“Whatever, dude. Deal with it.”

I deal with it every day. 🙂 My responses range from not using your software to dealing with the numbering scheme on my own. And from the looks of things, I’ll continue to have to deal with it for decades…

5 thoughts on “Call The First Version "1.0"”

  1. I couldn’t possibly agree with you more..

    Our CMDB falls exactly like you say.. I have scripted it to save the version number as (1 + $version) in the database and in the presentation layer I remove that hack so that data is reported correctly. What a bloody pain!!!

    🙂 Love your commentary .. keep it up ..


  2. I do agree that can be annoying. On the other hand, I just assume that anything below version 1.0 is beta or alpha.

  3. Nope, Have to disagree.

    There is no consistancy across naming in the software world. None. 1.0 might mean rock solid or it might mean a load of bunk. To ask it of anyone is to hold them to a non-existent standard.

    The projects that to the 0.1 style development are telling people “expect the API to change”. They may nott really have that control, but I think it is fair of them to make some attempt to communicate that. Of course, the Linux Kernel changes APIs all the time, and it has been 2.x for ever.

    Sun did a huge rewrite anmd jumped Solaris from 1.x to 2.x and said “never again.” Years later marekting came and just lopped off the most significant digit, so 2.8 was followed by 9. And we are back to release number inflation.

    The only thing you should ask of a release numbering scheme is that it be internally consistant. 0.45.16 should be followed by either 0.45.17 or larger, or 0.46.0. Package managers use this logic for upgrade/downgrade logic. Beyond that, who cares. I mean really. It is a unitless number.

  4. One of my points is that certain package managers and other system management software doesn’t like versions that are less than 1.

    I do also expect internal consistency.

Comments are closed.