Versione semantica 2.0.0 chiarisce esplicitamente questo punto:
La versione principale è 0 per lo sviluppo iniziale instabile, prima della pubblicazione della prima versione API stabile:
4. Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered
stable.
Dichiara inoltre chiaramente che la prima versione pubblica inizia alla 1.0.0:
5. Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public API and how it changes.
La formulazione della clausola 8 non è esplicita, apposta:
8. Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced
La dicitura chiarisce che qualsiasi versione principale deve essere rigorosamente maggiore di 0 e che deve essere incrementata in caso di modifiche importanti. Ma la dicitura lascia aperta una versione 0 per cui il vincolo non regge, perché per la versione 0, qualsiasi modifica può avvenire in qualsiasi momento, senza necessità di incrementi formali.
Semver usa la logica di induzione matematica : se provi qualcosa per una iniziale iterazione iniziale e dimostri se la proprietà è vera ad una iterazione, è vera per la successiva, quindi è vera per tutte le iterazioni che iniziano con quella iniziale.
Questi principi non sono nuovi ed erano già veri per le versioni precedenti (es. semver 1.0.0 ) sebbene con alcune differenze nella numerazione dei paragrafi.