Up until now, I've went with a super informal system. I wasn't really sure if there were any more structured systems for it, so I just guessed.
I'd start with 0.1 if it's a really preliminary beta version. I'd up to 1.0.0 for the first "stable" version. Then I'd just add a "tenth" for each new version. So 1.1.0, 1.2.0, 1.3.0, etc. Once I got to 1.9.0, I'd just up it to 2.0.0, kind of like WordPress does. The first number doesn't have much significance like other software projects.
For example, WordPress 4.0 was not radically different from WordPress 3.9.
But I just discovered something called Semantic Versioning which makes a lot of sense.
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
So I think I'll go with that from now on. Do you use any sort of structured system like this, or did you have more of an informal system like what I did before?