ForHosting KIT · Strumenti per sviluppatori

Confronti versioni semantiche secondo le regole SemVer

Scopra quale di due versioni viene davvero prima: 1.0.0-alpha.1 è inferiore a 1.0.0-alpha.beta, perché un’etichetta numerica sta sempre sotto una parola, e 2.10.0 supera correttamente 2.9.0. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Prima versione
1.0.0-alpha.1
Seconda versione
1.0.0-alpha.beta
Ottiene
Confronto
less
Precedenza
-1
Versione maggiore
1.0.0-alpha.beta

Confronti due numeri di versione semantica senza affidarsi all’ordinamento lessicale, alla conversione in virgola mobile o a scorciatoie specifiche dei gestori di pacchetti. Questa capacità convalida entrambi gli input secondo Semantic Versioning 2.0.0 e applica le regole ufficiali di precedenza ai componenti major, minor, patch e pre-release. Indica se la prima versione ha precedenza inferiore, superiore o uguale alla seconda e ignora correttamente i metadata di build. Le versioni non valide o incomplete producono un chiaro errore di input, anziché un ordinamento fuorviante.

Confronti le versioni con le regole usate dalle release software

Il normale confronto tra stringhe restituisce risultati errati per molti numeri di versione. Per esempio, un ordinamento lessicale può collocare 2.10.0 prima di 2.9.0 perché confronta il carattere 1 con 9, mentre una conversione numerica elimina il significato distinto delle posizioni major, minor e patch. Questo comparatore analizza separatamente ogni posizione obbligatoria e procede da sinistra a destra.

Rifiuta inoltre forme permissive, come un componente patch mancante, una v iniziale o un identificatore numerico principale con zero iniziale. Una convalida rigorosa è preziosa negli script di distribuzione, nei registri dei pacchetti, nei servizi di aggiornamento e nei controlli CI, perché impedisce a dati non validi di passare silenziosamente come release legittime. Invii la prima e la seconda versione esattamente come pubblicate.

Il risultato include una precedenza con segno: meno uno indica che la prima è inferiore, zero indica equivalenza e uno indica che la prima è superiore. Un campo descrittivo rende la stessa risposta pratica per interfacce e condizioni di workflow.

Comprenda l’ordine delle pre-release e i metadata di build

Gli identificatori di pre-release sono il punto in cui i comparatori semplicistici falliscono più spesso. Una release con un suffisso preliminare ha precedenza inferiore rispetto alla stessa versione major, minor e patch priva del suffisso: 1.0.0-rc.1 è quindi inferiore a 1.0.0. Se entrambe sono pre-release, gli identificatori vengono confrontati in sequenza.

Quelli numerici si confrontano per grandezza, quelli non numerici secondo l’ordine lessicale ASCII e un identificatore numerico ha sempre precedenza inferiore a uno non numerico. Se tutti gli identificatori condivisi coincidono, la versione che ne contiene di più ha precedenza superiore. Queste regole riproducono la progressione standard da alpha a beta e alle release candidate senza attribuire significati speciali a parole specifiche.

I metadata dopo il segno più vengono convalidati ma esclusi dalla precedenza. Pertanto, 1.0.0+linux e 1.0.0+windows sono equivalenti nonostante le stringhe diverse.

Usi il confronto rigoroso in modo sicuro nell’automazione

Un risultato deterministico può diventare un punto decisionale piccolo e affidabile all’interno di sistemi più ampi. Una pipeline di rilascio può richiedere che la versione proposta sia superiore a quella distribuita. Un programma di aggiornamento può stabilire se un manifesto scaricato rappresenta un upgrade, un downgrade o una build equivalente.

Una suite di test può coprire la sequenza canonica delle pre-release e respingere le etichette non valide prima della pubblicazione degli artefatti. L’implementazione non effettua richieste di rete, non legge l’orologio e non usa valori casuali: gli stessi input producono sempre lo stesso output. Gli identificatori numerici vengono confrontati come stringhe di cifre, invece di essere convertiti in numeri JavaScript, mantenendo l’ordine corretto anche oltre l’intervallo degli interi sicuri.

La lunghezza degli input è limitata per mantenere l’elaborazione circoscritta.

Protegga una pipeline di rilascio

Confermi che la versione proposta di un pacchetto abbia precedenza superiore a quella distribuita prima della pubblicazione.

Valuti i manifesti di aggiornamento

Stabilisca se una release remota è un upgrade, un downgrade o una build equivalente senza l’influenza dei metadata.

Convalidi le sequenze preliminari

Verifichi l’ordine di versioni alpha, beta, candidate e finali, rifiutando stringhe Semantic Versioning non valide.

Che cosa indica il valore di confronto?

Una precedenza di -1 indica che la prima versione è inferiore, 0 che sono equivalenti e 1 che la prima è superiore.

I metadata di build influiscono sul risultato?

No. Vengono convalidati, ma Semantic Versioning li esclude dai confronti di precedenza.

Una pre-release è inferiore alla corrispondente release finale?

Sì. A parità di numeri major, minor e patch, una versione con identificatori preliminari ha precedenza inferiore a quella finale.

Sono ammessi gli zeri iniziali?

Gli identificatori numerici major, minor, patch e di pre-release non possono contenere zeri iniziali, salvo la singola cifra zero.

Posso aggiungere una v iniziale o omettere il numero patch?

No. Gli input devono essere stringhe Semantic Versioning 2.0.0 rigorose, come 1.2.3 o 1.2.3-rc.1.

Quanto costa?

L’esecutore nel browser è disponibile per verifiche interattive.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/dev2/semver-compare

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/dev2/semver-compare \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"first_version":"2.1.0-rc.1","second_version":"2.1.0"}'
{
  "first_version": "2.1.0-rc.1",
  "second_version": "2.1.0"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.semver_compare",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

max_chars_per_version1024
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Comprenda l’ordine delle pre-release e i metadata di build

A parità di precedenza, greater_version è null perché nessun input prevale sull’altro.

Usi il confronto rigoroso in modo sicuro nell’automazione

Usi l’esecutore nel browser per un controllo interattivo oppure chiami l’API a $0.002 quando il confronto appartiene a un flusso ripetibile. Consideri invalid_input un problema di qualità dei dati da correggere.

Leggi la documentazione completa del KIT →