Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I can easily follow the Semantic Versioning recommendations if I develop a library or API, but what if the developed product is a website or a desktop application?

When would you increment a major component in that case?

In case of a complete UI redesign? Or something else?

Thoughts?

share|improve this question

2 Answers 2

Semantic Versioning seems to be at conflict with most desktop application numbering. We solved this by handing over "product versioning" to the marketing department, and we maintain completely separate (but logical to us) versions for all the components. A specific product version then becomes a defined collection of compatible components. Maintaining semantic versioning between components is much easier.

share|improve this answer
    
Good answer, We have been working to implement something similar. Good examples of places where this happens as well is the Microsoft Office Suite of applications. –  Klee May 31 '13 at 0:16
    
All you need to do think of this case (happened to me many times) - Bug in Version 3.2.1. "Marketing" promise the customer the fix will be delivered in 3.2.2, which is already in Beta release...... "Marketing" then insist on a new version of 3.2.2 with the bug fix......... Only option is to decouple "Marketing" versions from anythign that might indicate reality –  mattnz May 31 '13 at 0:51
    
@mattnz, if marketing has that much influence that they can insist the fix is in 3.2.2, they you just kill the 3.2.2 that is in Beta and start over. That's a business decision that I don't lose sleep over. –  Dave Nay May 31 '13 at 0:56
1  
"....Only option is to decouple "Marketing" versions from anything that might indicate reality." That is exactly what we have done. Marketing could call our product versions 95, ME, SE, XP, Vista, 7, 8 or Blue and it wouldn't affect our internal versions. –  Dave Nay May 31 '13 at 1:02
2  
+1 The marketing department must control the "product version" that the customers know about. It's part of marketing, like the brand name, and it's their job to worry about this stuff. The software developers must control the internal product identifiers that enable binary products to be identified and linked back to specific source code. Therefore these two identifiers should be completely decoupled. –  MarkJ May 31 '13 at 11:26

I adapted semantic versioning for desktop or web applications, so in our work we are using: X.Y.Z

  1. Z is increasing if a release contains just a bug fix, dependencies update or some application internal changes, so no new functionality introduced to user;
  2. Y is increasing if a release contains minor changes in UI or just introduces some new feature, or some feature redesign/functionality update which will affect user;
  3. X is increasing if a release contains major UI/functionality update, for example: new interface design/layout;
  4. New project starts with version 0.1 and minor version is increasing with development;
  5. If a project contains all planned functionality for version 1.0 the version should be changed to 1.0.
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.