I would be interested to get the SO community's opinions on the best application versioning strategy.My questions:How do you keep track of your application's version number? Do you have a formal definition of what each number/character in that version represents?What do the different numbers/strings in the application's version mean for your app?Do you use any automated updating system in your apps (e.g. something like Sparkle) and how good has it been behaving for you?Do you have a separate update procedure for beta-testers or pre-release testers of your app?
What is your application versioning strategy?
versioning;strategy
How do you keep track of your  application's version number? Do you  have a formal definition of what each  number/character in that version  represents?What do the different numbers/strings  in the application's version mean for  your app?I use following:AppName_<Major>.<Minor>.<Patch/Upgrade>.<BuildNo>Major - Major version is a definite release of the product. It increased when there are significant changes in functionality.Minor - Minor version is incremented when only new features or major bug fixes have been added.Upgrade/Patch - Upgrade refers to the replacement of a product with a newer version of product.It is incremented only when upgrade is provided on designated major release.Patch version starts with 0 and incremented only when bug has been resolved. Build No - Build Number is incremented when new build is created. Do you use any automated updating  system in your apps (e.g. something  like Sparkle) and how good has it been  behaving for you?We use building tool which automatically builds app at night which we call nightly build and this increases build number every time a build is created.Do you have a separate update  procedure for beta-testers or  pre-release testers of your app?No. Tester tests over nightly build at every morning which we call BAT(Build Acceptance Test) and verify nightly build.