TechnicalArchitectureWorx

The (Unofficial) ITWorx Technical Architecture Blog

What are the Best Practices for Versioning?

Posted by archworx on July 5, 2007

Versioning is mainly used to identify multiple revisions of the same unit of information/code. Versioning is the corner stone of Software Development – it is used to differentiate between the different work you do everyday. If you do not version it is almost like you haven’t accomplished anything.

RULE #1
Version number should be stored in object code, for example a .NET assembly.

  • This is so it can be accessed from the code itself. This is important because, for instance you can use it to gauge compatibility with other systems that you need to interact with. For example:

    • If you are using a web service, there should be a way to query the web service’s version number from the web service itself. The Web Service itself may also need to know its client’s version numbers. With this information, you can programmatically control version compatibility, for instance the web service can deny the service to its clients because it knows that it is of an incompatible version.

RULE #2
Version Numbers Must be Unique and non-repeated.

  • No two releases with any differences can hold the same version number. Even if it is just a minor bug fix. Even if it is a spelling mistake.

RULE #3
Version Numbers must be related to the Source Control Label/Tag.

  • This works both ways, for example:
    1. The Source Safe label used in labeling a release should contain the same version number stored in the compiled binary, or part thereof.
    2. The Version Number produced inside the binary must be as closely related as possible to the label/tag name. Ideally part of the version number should be retrieved from the Source Control system. For example, using SourceSafe/KeyWordExpansion

RULE #4
Version numbers must be user accessible.

  • Users of the application must be able to find out which version of the software they are using. Do not hide it from them, and make sure they can access it relatively easily.

RULE #5
Version numbers must be consistent across Configuration Items

  • The version numbers stored inside the product binary must be the same as that reported to the user, as well as being strongly related to the source control label/tag name. The best way to achieve this is via a build control tool such as NAnt and/or Cruise Control for example.

More about Version numbers:

  • Version numbers can look like x.x.x or x.x.x.x depending on mechanism or technology used.

10 Responses to “What are the Best Practices for Versioning?”

  1. Where should I keep my build number, thanks if you could provide me some insight

  2. Major follows some sports, primarily during the playoffs.
    Just last year Apple sold more than one hundred million i – Phone and i
    – Pad apps. It sounds like you log into the game and join a “Shadow war” server and play with hundreds of other players within that PVP world, but that world is different
    from the cooperative Arkfall boss hunting world.

  3. Gertie said

    Perfect pan size we encourage you take them back to your hotel and have them prepared.
    Here is some helpful information so you can select a good charter boat and avoid
    a few of the pitfalls. But here’s my top 5 to consider with choices for both types of water included:.

  4. Tia said

    This idea would be perfectly done with camping, it allows a camper to
    acquire the utmost relaxation which is the basic objective
    of the activity. Once you decide what kind of Oregon coast camping vacation you are
    looking for, finding an Oregon coast camping site is a piece of
    cake. Found with hill farms precisely set in Betws-y-Coed, the
    main attraction for campers is still the famous peak of Tryfan.

  5. You have to give a tube radio at least 20 to 30 minutes just to
    warm up and then you decide what frequency you want to be on
    and load the plate and tune them up. Much of your best players marketplaces in the united states are
    supervised. Another radio commercial production tip to
    chew on is to make sure the audio quality is excellent on
    any spot your produce.

  6. Major follows some sports, primarily during the playoffs.

    It is an adventurous game filled with fun and excitement.
    In addition, you can save the effort of coding
    the store functionality, virtual goods dependencies, billing interfaces and rewards.

  7. That’s like Houston Texas being without a Country station. They also apparently believe that their customers who like a particular song they hear on the radio, are likely to purchase that song, which could add to downloads from i – Tunes. But mostly BBC Radios 4 and 5 because, being speech orientated, they’re more like what I do, so I can
    learn lots from them.

  8. Even though your goal is just to lose 5 pounds in a week, you
    should be strict with what you do so as not to inadvertently undo all your hard work for vegetarian weight loss.
    Avocados- Although not my favorite, are high in fats,
    the good ones. Many people don’t have the time to weight themselves every day, but checking the scale on a regular basis can definitely help when you’re working to lose weight and
    keep it off.

  9. a Bruce Lee workout includes stretching, bending, running, dipping,
    kicking, jumping, traditional muscle building exercises, weight lifting, rope skipping, medicine ball handling, etc.

    In fact, I always suggest to those overweight vegetarians to keep to a max of 4 pounds a week so
    you won’t suffer loose skin post weight loss. Hence, broccoli is a must-add ingredient in your vegetarian weight loss diet.

  10. Corinne said

    Too many folks have already thrown away plenty of good money on nothing but useless
    salt tablets being shipped from South America. For many working to lose weight, one failure is
    enough to get them off the path to success. Who does not need that little bit of elevation when trying to diet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: