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?)"

18 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 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.

    2. 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.

    3. 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.

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

      1.1.1 -> 2.0.0 - Expect 2.0.1 within the week.

    5. 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!
  2. 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.

  3. 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.

  4. 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?'

  5. 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.
  6. 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? ]=-
  7. 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)

  8. Re:Different people, different numbering schemes. by veganboyjosh · · Score: 5, Funny

    Odd numbers for unstable releases?

    That you, Gene Roddenberry?

  9. 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"".

  10. 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
  11. 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

  12. 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.

  13. 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.