The Semantic Versioning 2.0.0 standard says:
The simplest thing to do is start your initial development release at
0.1.0 and then increment the minor version for each subsequent release.
It is fine to go from 0.3.0 straight to 1.0.0. It is also perfectly okay to be at 0.23.0. Starting at 0.4.0 is somewhat unadvisable as it suggests there have been previous published versions.
Additionally, note that 0.y.z
is kept aside for quick iteration, so that initial development (and hence lots of breaking changes) does not leave you at something silly like 142.6.0. Instead of bumping the major version, bump the minor version on every breaking change until you release 1.0.0:
Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.