|
|
|
|
|
by jpollock
3841 days ago
|
|
Version numbers are for marketing and legal. They are used as a way to bundle sets of features together and give them a name "You need to upgrade to X.Y.Z, $$ plz", and "If your version is older than X.Y.Z, you are no longer supported, go away or pay us lots of money. K thx bye". Marketing may place additional rules "Customers on X.Y.Z should be able to upgrade to A.B.C by clicking a button and giving us money.", but it's still owned by marketing (or at least the person wearing that hat). Software engineers should only care about the information required to create a reproducible build. For that, all they need is a single value, be it a number, a hex string, or a name. Resist the temptation to let the marketing team know about the internal build numbers. That way leads to madness. We went from a single version number to a 5 digit dotted number all because people kept putting the internal number into contracts and we had to inject new releases with the same marketing number. DO NOT DO THIS - it leads to madness! Frequently the dotted number will map onto software branches, but don't link them directly - again, that limits your flexibility and (if completely artificial) will result in unnecessary code drift when the branches inevitably diverge over 5yr+maintenance contracts. |
|
This this this this this. This.
I've been burned by not doing this in the past with a boss who liked to make huge jumps and changes to version numbers without telling his devs, and then not being able to reproduce a given build.
Take a look at the versioning/about screens of some major software, and you'll often see these internal build numbers which have nothing to do with the shiny new "Version 2.0" that's on the branding.
Marketing can call it a Totally New Name v10, to us it's all just config values applied to build #12345.