According to the site link
Given a MAJOR.MINOR.PATCH version number, increase to:
- MAJOR version: When you make incompatible changes in the API
- Minor version: when adding features while maintaining compatibility
- Patch (PATCH) version: when to fix failures while maintaining compatibility.
Additional labels for pre-release and build metadata are available as an extension to MAJOR.MINOR.PATCH. format.
Reading this passage in the FAQ:
How should I handle revisions in the initial development stage 0.y.z?
The simplest thing to do is to start your initial development version at 0.1.0 and then increment it to a 'minor' version on each subsequent release.
How do I know when to release version 1.0.0?
If your software is being used in production, it should probably already be 1.0.0. If you have a stable API that users depend on, it should be 1.0.0. If you're worrying a lot about backward compatibility, it should already be 1.0.0.
I understood what 0.x.x is only for development and when it is stable then we should migrate to 1.0.0, but what I did not understand is how this works along with Alpha, Beta and RC. In the case Alpha and Beta are not stabilized yet, just maybe the RC (Release Candidate).
As I understand it Alpha is usually "distributed" among developers or a group that will experiment.
Questions:
- When to use
-alpha
and when to use 0.x.x? - The Alpha, Beta, and RC suffixes are only for commercial software (I'm not talking about paid) as full software, and would the use of 0.x.x be more code-oriented?