I had never thought much about it, but Semvar.org has. This is a way to think about creating version numbers of your projects. That is to give real meaning to
1.2.1 and there are some great ideas here all based about what is stable in the API set. For an Excel spreadsheet you can think about that as what variables you can reliable export from it, so some ideas:
- 0.*.* means that nothing is stable
- Version 1.* is the first time that the public API is available and it has to be stable.
- You use the minor version update live Version 1.2 to mean that you have added to the API set, but it still has the same old APIs in it. That is you are just adding features say to a model.
- You did a big update like to Version 2.0, if you add incompatible changes, that is you are making a breaking change.
- When you are doing testing, you can have Version 2.0-alpha for instance before you go stable.
- Finally, if you want to have build data, like a build number then follow it with a
Finally, someone did a parse tree in Backus-Naur form for geeks which is nerdy but shows you how to parse it:
<semver> ::= <version> | <version> "-" <pre-release> | <version> "+" <build> | <version > "-" <pre-release> "+" <build> <version> ::= <major> "." <minor> "." <patch>
Well you get the idea. Nicely thought out!