{"id":145,"date":"2009-10-06T10:46:34","date_gmt":"2009-10-06T10:46:34","guid":{"rendered":"http:\/\/www.scmgalaxy.com\/tutorials\/2009\/10\/06\/what-is-build-versioning\/"},"modified":"2017-12-26T09:02:09","modified_gmt":"2017-12-26T09:02:09","slug":"what-is-build-versioning","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/what-is-build-versioning\/","title":{"rendered":"Software versioning &#8211; What is Build Versioning?"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4082 aligncenter\" src=\"http:\/\/www.scmgalaxy.com\/tutorials\/wp-content\/uploads\/2009\/10\/build-versioning.png\" alt=\"build-versioning\" width=\"600\" height=\"400\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2009\/10\/build-versioning.png 600w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2009\/10\/build-versioning-300x200.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p><b>Version:\u00a0<\/b> It is a set of code to which major\/minor or a Patch of changes is made. Hence we say a build is released to the QA team for testing. Version is normally the Proper number given for the final package after fixing all issues. Normally in most Cases both numbers, version &amp; build are given in order to release a product.<\/p>\n<p>For example, if you see MSN Messenger About box the version<br \/>\nnumber is given as:<\/p>\n<p>Skype Version: 3.8.0.139<\/p>\n<p>Now if you check the Version number there are 4 different head for this release. Starting from left 3.8.0 is the main version number, and .139 is the Build number which is linked with Version number.<\/p>\n<p><b>Build:\u00a0<\/b> It is a set of code in executables to which changes are made which is mile stone, Release candidate or general availability based. Build is a complete setup package which is developed<\/p>\n<p>For Internal use, mostly for QA Purposes, if there are issues then they are fixed and new Build number is given to package.<\/p>\n<p>The resource version number is a structure of two double word values, the Most Significant Value (MSV) and the Least Significant Value (LSV). Each value is broken into two parts, the high word and the low word. In a resource script, this is represented by something like &#8220;FILEVERSION 1,0,0,1&#8221; or &#8220;PRODUCTVERSION 1,0,0,1&#8221;.\u00a0\u00a0 The &#8220;1,0&#8221; is the high word\/low word of the MSV. The &#8220;0,1&#8221; is the high word\/low word of the LSV. There is also a string representation of the versions in the StringFileInfo block.<\/p>\n<p>Version Number to the Build will be Application Packaging team or the Team in charge of Releasing in most of the situations; sometimes it was also done by the Development Team.<\/p>\n<p>Version number is incremented by one number for each and every release. At the start of the application goes to testing it will start with the version number 1.0. For each and every release, it will be incremented by one.<br \/>\nThis is done in the SDLC which follows iterative method. The increment is to indicate that the scheduled changes are done to the system in one version and it is tested, and simultaneously the changes are done to the system in the forthcoming builds and subsequently tested.<\/p>\n<p>The version is not necessarily to be incremented by one number, sometimes it is also incremented in the points, this will happen in the case of Defects found in the current build or testing activity abandoned due to application not stable.<\/p>\n<p>Version number is one of the important things in build release as it keeps track of all changes in the code.<\/p>\n<p><b>Process:<\/b><br \/>\nOnce the Dev team develops a build, this is sent to the configuration management team. They maintain a document, of version, the change, module, release details etc. This detail of build is stored in server and viewable by all. So that whenever there is a issue, it is enough if we have a look at the history and pull out that particular version and deliver.<\/p>\n<p><b>Why do we need?<\/b><br \/>\n\u2022\u00a0\u00a0\u00a0 To revert back to old working condition Executables<br \/>\n\u2022\u00a0\u00a0\u00a0 To Maintain the Bug fixes and Enhancement Record with particular label<br \/>\n\u2022\u00a0\u00a0\u00a0 To Keep Track of major\/minor or a Patch of changes is made.<br \/>\n\u2022\u00a0\u00a0\u00a0 To have the Process of Achieving Milestone Achieved<br \/>\n\u2022\u00a0\u00a0\u00a0 To have Better Transition between QA, Dev and Release Team<br \/>\n\u2022\u00a0\u00a0\u00a0 To Make the\u00a0 Build and release process Smooth with milestone achieved.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Version:\u00a0 It is a set of code to which major\/minor or a Patch of changes is made. Hence we say a build is released to the QA team for testing. Version is normally the Proper number given for the final package after fixing all issues. Normally in most Cases both numbers, version &amp; build are&#8230;<\/p>\n","protected":false},"author":1,"featured_media":4082,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[2],"tags":[3279,91,146,3277,3272,3280,3275,3276,3282,3274,3281,381,3283,2434,3278,670,3273],"class_list":["post-145","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorised","tag-about-build-versioning","tag-build","tag-build-and-release","tag-build-overview","tag-build-versioning","tag-build-versioning-guide","tag-build-versioning-introduction","tag-build-versioning-overview","tag-numbering","tag-software-versioning","tag-understand-build-versioning","tag-version","tag-version-number","tag-versioning","tag-versioning-overview","tag-what","tag-what-is-build-versioning"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=145"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/145\/revisions"}],"predecessor-version":[{"id":4084,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/145\/revisions\/4084"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media\/4082"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}