Slashdot Mirror


The Amazing World of Software Version Numbers

Harry writes "In theory, software version numbers should be incredibly mundane. In reality, companies have long twisted them for marketing purposes, avoided ones they didn't like, and even replaced them with things other than numbers. I've prepared a tribute to them with some facts and ruminations, but there's a lot I don't know, and I'd appreciate help on the historical side of things. (Anyone know when the standard decimal point-based system came into use?)"

26 of 321 comments (clear)

  1. What now? by Anonymous Coward · · Score: 5, Funny

    ...standard decimal point-based system...

    What is this standard you are referring to?

    1. Re:What now? by Slashdot+Suxxors · · Score: 3, Insightful

      I'm no coder but to me the X.Y.Z format has always been where Z = minor bug fixes, Y = new features, more bugfixes, whatever, and X = major new features and such.

    2. Re:What now? by diskis · · Score: 5, Insightful

      1.1.1 -> 1.1.2 - bugfix only, no change in what the end-user sees.
      1.1.1 -> 1.2.0 - new features, perhaps a button in the UI has moved. Still fully compatible with the previous version. Documents should be stored identically, network protocols unchanged.
      1.1.1 -> 2.0.0 - major release, might very well break functionality, documents may have to be converted from previous versions, UI can change drastically.

    3. Re:What now? by JamesVI · · Score: 4, Interesting

      The typical three number scheme is derived from the numbering for shared libraries. Often called Major.Minor.BugFix.
      You increment the BugFix number when you implement a bug fix that makes no changes whatsoever to the interface. You increment the Minor number when you extend the interface (by adding new features). Both of these changes are backwardly compatible so you can just restart an executable that uses the library without having to rebuild or relink.
      If you alter the interface in a non-backwardly compatible way then you must relink your executable before it can work with the new version of the library. The Major number is incremented to indicate a non-backwardly compatible change.

    4. Re:What now? by w3woody · · Score: 4, Insightful
      My favorite has been

      X.Y (B): X: major version as you've outlined.
      Y: minor version as you've outlined.
      (B): Build number; this is an auto-incrementing number which indicates the build. This is used for QA tracking purposes.
      I can also see adding a .Z, as you've also outlined: every public facing build increments Z before shipping, in order to indicate if it is a bug fix. If there is a .Z, then the build number can be hidden from the user--the only purpose it serves is for customer support to know which build the user has so bugs can be tracked appropriately.
      I don't see any reason why it needs to be any more complicated than that.

    5. Re:What now? by wkurzius · · Score: 5, Funny

      1.1.1 -> 2.0.0 - Expect 2.0.1 within the week.

    6. Re:What now? by davester666 · · Score: 4, Insightful

      > 1.1.1 -> 2.0.0 - major release, might very well break functionality, documents may have to be converted from previous versions, UI can change drastically.

      Um, you missed the most important part.

      1.x -> 2.x releases are when the business needs upgrade revenue, whether there is significant, useful new functionality or not.

      --
      Sleep your way to a whiter smile...date a dentist!
    7. Re:What now? by Darinbob · · Score: 3, Insightful

      Much of this is really up to marketing. I've seen big sets of bug fixes without new "features" cause a "1.1.1 -> 1.2.0" release, as long as marketing sees this as a relatively important release. I've also seen new features end up as only minor version changes "1.1.1 -> 1.1.2" if the marketing sees this as minor or not worth a bullet point in their talking points.

      Sometimes the version numbers are decided upon before the final set of changes has been determined. Often politics get involved, and other external issues. Ie, things like "version 2.5 will be the last one supported on old hardware".

      Last place I was at used "major.minor.dailybuild". This got confusing, since every day there was at least one more version to deal with, plus some incremental builds. The build engineer memorized all this stuff, but I could never distinguish 3.1.212 from 3.1.243...

  2. w/r/t Windows by gcnaddict · · Score: 3, Interesting

    Windows 7 is NT version 6.1, but that's because of appcompat reasons only.

    Microsoft frequently jumps build numbers before milestones (7000 for Beta 1 of Win7, 7600 for RTM)

    Microsoft often picks arbitrary numbers for revision builds (used to be buildnum.0, now it's buildnum.16384 as the starting point. Example: Vista RTM is 6000.16386, meaning there were three compiles of build 6000)

    --
    Viable Slashdot alternatives: https://pipedot.org/ and http://soylentnews.org/
    1. Re:w/r/t Windows by subanark · · Score: 5, Informative

      Actually the reason the minor version number started at 16386 is that the part of the upper bits for the version number are used to indicate branch. In this case the release bit is set to 1, if this was a 'test' build then it would be set to 0. Another bit (which isn't set) is used for the corporate branch, which includes security updates that aren't as fully vetted and changes to core components requested by corporate partners. Additionally, the lower 16 bits of the build (6000) is used to indicate service pack (at least that was the plan right before release). This change to how service packs were handled was done in the last month, and yes Microsoft fudged the version number towards the end so it would be 6000 (although it was close to that at the end).

      (I was the performance test engineer for Vista update services during the initial release of Vista)

    2. Re:w/r/t Windows by gparent · · Score: 4, Informative

      No, you're entirely wrong. The version number has been chosen specifically in regard to applications which check the first number (6) only, in order to not break them (since Windows 7 remains compatible with mostly everything Vista, this is a good thing).

      It still remains a major performance/stability/feature upgrade, thus why it is NT "7" theoretically.

    3. Re:w/r/t Windows by xsarpedonx · · Score: 3, Funny

      "I was the performance test engineer for Vista update services during the initial release of Vista" Shouldn't you have posted this anonymously?

    4. Re:w/r/t Windows by subanark · · Score: 4, Funny

      I really don't think the update services for Vista are that bad performance wise. But... my job didn't amount to anything, I was pretty much there so that the update division could state that they did performance testing.

  3. FFx2 by T+Murphy · · Score: 5, Funny

    All I know is with Firefox on 3.5 and Windows on 7.0, Windows must be twice as good as Firefox. AOL of course trumps everyone.

  4. First Post 5.0 by Anonymous Coward · · Score: 3, Funny

    Better late than never!

  5. Re:First V0.1 by homes32 · · Score: 3, Funny

    don't forget to upgrade to:
    V0.1 Basic - you don't really want this cuz we crippled it so you would buy our more expensive packages
    V0.1 Premium - just enough of a taste to make you horny for more features in our Platinum package
    V0.1 Professional - we stripped out some the the cool stuff and added some features for buisness that you will never use
    V0.1 Platinum - this is the best one yet! you get everything!(almost) it will even make you coffee and pancakes and walk your dog!
    V0.1 So awesome we can't even tell you the name edition! - we don't know what the hell this is, our marketing guys have been hitting the sauce pretty hard lately.

  6. Don't forget TIFF by Anonymous Coward · · Score: 5, Interesting

    All TIFF files have a version number of 42, chosen, according to the developer docs, for that number's deep philosophical significance.

  7. os x by psyklopz · · Score: 4, Funny

    The article mentions OS X and the fact that they will be running out of cat names pretty soon.

    My prediction: as soon as they run out of cat names, they'll go to 'OS 11'

    Steve Jobs will market it by saying 'this one goes to eleven... It's one better, isn't it?'

    1. Re:os x by je+ne+sais+quoi · · Score: 3, Informative

      Oh, I don't know, there's lots of cat species. I myself an breathlessly awaiting Mac OS X version Iberian Lynx, which will be one better than Asiatic Lion. Perhaps that doesn't have quite the same ring to it though. They could also do extinct species, like sabertooth, which would be a decent name.

      In all honesty, I do wonder why they haven't done a Lion version yet.

      --
      Gentlemen! You can't fight in here, this is the war room!
  8. Re:0.97 0.98 0.99 ??? by idontgno · · Score: 5, Informative

    Which points up (no pun intended) the semantic confusion of using "." ("period", "full stop") as a version component separator. Semantically, it's not a decimal radix point. Therefore, the second component of your hypothetical version is not 99/100, it's integer 99. Therefore, integer 100 is indeed > integer 99, and the "." shouldn't be pronounced as part of it.

    That doesn't happen, of course; we all* say "point 99" or the like, which is exactly the same as if the "." were, in fact, a decimal point.

    *Not strictly "all"; I usually say "dot" instead of "point", partly because of this confusion. This usage became mainstream with "dot Net" since the string "Net" makes no sense as a real number "r" such that 0 > r > 1.

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
  9. I grew up with by kenp2002 · · Score: 4, Informative

    A.B.C.D

    A: Major Release, violates backwards compatability

    B: Feature Add Increment. Indicates new features from prior release

    C: Bug Fix Release Increment.

    D: Build Identifier usually YEARMONTHDATE

    e.g.
    1.1.0.080215
    1.2.12.090714 (12th minor update to feature set 2 for release 1 built on July 14th 2009)
    1.3.1.091224 (First minor update for feature set 3 built on Dec 24th 2009.)

    Since most software tends to follow quarterly or monthly release schedules you rarely get more then 18 minor revisions if they are building weekly on a quarterly schedule or more then 4 on a monthly schedule.

    --
    -=[ Who Is John Galt? ]=-
  10. Re:Different people, different numbering schemes. by veganboyjosh · · Score: 5, Funny

    Odd numbers for unstable releases?

    That you, Gene Roddenberry?

  11. Doom II Version 1.666 by linebackn · · Score: 4, Interesting

    One of my favorite version numbers was the version of the first Doom II executable (which used a different version number than the game itself as it shared the exact same executable with Doom I, Doom I shareware, and Doom II). The initial release of Doom II was "Doom II Version 1.666"".

  12. Re:os x - Don't forget LOLCAT editions? by Webcommando · · Score: 5, Funny

    Apple will have even more names when they move into LOLCAT space: Serious Cat, Ceiling Cat, Basement Cat, Itty Bitty Kitty Commiteh, and Monorail Cat.

    The possibilities are endless!

    --
    I love the sound of distortion in the morning -- webcommando
  13. Starcraft maps by AlpineR · · Score: 4, Interesting

    I release several games as custom maps in Starcraft. Many of them are refinements of earlier versions made by others. And all of them are released unprotected so that others may add their own refinements.

    Version numbers get messy. I typically go to the next major number if I'm doing a serious overhaul of my own or somebody else's map. Then I increment the minor numbers for bug fixes, balance changes, and minor enhancements.

    But then somebody else comes along, makes a minor (and often terrible) change and releases it as the next major version. Or they make major changes and release it as the next minor version. Then when I make a new version, it either clashes with those other versions or looks older than the versions released with big jumps.

    I've tried adding descriptor names to my versions, a la Vista. So I have "Phantom BGH Gold 1.0" as my refinement of "Phantom BGH 2.4", but most people don't seem to get that. When my updates landed me at "Phantom BGH Gold 3.0" people at least paid attention that it might be newer, but they still complained that it was different than "Phantom BGH 2.4".

    I also tried adding "Classic" to a game version which was a totally rewritten implementation of a game type with other versions in the 3.0 to 9.0 range. I intended the "Classic" to signify I was focusing on the core ideas of the game type, but so many people thought it meant "old". As if the first version ever released of that map was labeled "Classic", and a label of "New" means new forever.

    TheNevermind

  14. Netscape/Mozilla versions by Dracos · · Score: 3, Informative

    Netscape went directly from 4.8 from 6.0

    This was not as arbitrary as one might think. Toward the end of NS4's actual development cycle, there was an attempt to wring another major version out of that codebase, and it was called Mozilla 5. Eventually it was abandoned because the new NGLayout engine (now known as Gecko) was much better than the clunky old Mosaic-derived codebase. The NG stuff became the basis for Netscape versions 6 through 8, the Mozilla Suite, Firefox, Thunderbird, and lots of other things.

    I know there are some Netscape/Mozilla folks around here who could correct/expand that story.