Skip to content

Polygen e SemVer #17

@tajmone

Description

@tajmone

Ho visto che al codice ripultito in master hai assegnato le versione 1.0.6a.

Apro una parentesi riguardo SemVer, dato che si era discusso sulla possibilità di adottarne la notazione per le release di Polygen da questo repo in poi.

La versione 1.0.6a non è valida in SemVer 2.0, perché i tre segmenti devono essere solo numerici, o 0 o un numero qualsiasi non preceduto da zeri.

L'unico modo per creare una release successiva alla 1.0.6 è creare la 1.0.7 (o una maggiore). L'alternative è creare una prerelease della 1.0.7, per es 1.0.7-a o 1.0.7-rc1 (o qualsasi schema si voglia adottare pre le prerelease).

Il problema in questione è facilmente illustrabile tramite esempi pratici:

1.0.6   > 1.0.6-a
1.0.6-c > 1.0.6-b
1.0.6-c > 1.0.6-a
1.0.6-b > 1.0.6-a
1.0.6-b < 1.0.6-aa
1.0.6-a < 1.0.6-aa
1.0.6-12 > 1.0.6-9

In SemVer una prerlease è sempre inferiore ad una release (ossia una versione che non contiene il segmento di pre-release). L'ordine di precedenza tra le prerelease (in una stessa versione) ha delle regole un po' arzigogolate:

identifiers consisting of only digits are compared numerically and identifiers with letters or hyphens are compared lexically in ASCII sort order. Numeric identifiers always have lower precedence than non-numeric identifiers. A larger set of pre-release fields has a higher precedence than a smaller set, if all of the preceding identifiers are equal. Example:

1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0

Come accennavo, conviene sempre verificare la validità di una release SemVer tramite un validatore online:

http://jubianchi.github.io/semver-check/

che consente anche di verificare che la precedenza tra le varie prerelease sia corretta.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions