ForHosting KIT · Strumenti per sviluppatori

Verifica di versioni e intervalli SemVer

Gli aggiornamenti dei pacchetti dipendono spesso da una domanda solo apparentemente semplice: una versione semantica esatta appartiene all’intervallo scritto in un manifesto, in una regola del file di blocco, in una politica di rilascio o in una matrice di compatibilità?

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

Questo strumento risponde applicando la precedenza deterministica di SemVer. Comprende comparatori, intersezioni separate da spazi, intervalli con trattino, caratteri jolly, versioni parziali e alternative con doppia barra. Gli identificatori di prerelease e build ricevono il corretto significato semantico, quindi il risultato è adatto agli strumenti per le dipendenze e non è una semplice approssimazione numerica.

Inserisca una versione e l’intervallo da verificare

Fornisca una versione semantica completa, per esempio <code>2.4.1</code>, e un’espressione di intervallo. In un insieme di comparatori separati da spazi devono riuscire tutte le condizioni: <code>&gt;=2.0.0 &lt;3.0.0</code> accetta quindi le versioni stabili della seconda versione principale. Separi gli insiemi con <code>||</code> quando può bastare uno dei rami. Anche una versione esatta è un intervallo valido. Lo strumento restituisce la versione normalizzata, l’intervallo senza spazi esterni, un valore booleano e l’alternativa corrispondente numerata da uno; zero indica che nessuna alternativa coincide. Questo risultato esplicito è facile da usare in un controllo di distribuzione, un rapporto sulle dipendenze, un editor di manifesti o un test senza interpretare testo descrittivo. Gli input sono stringhe: convertire l’intera versione in virgola mobile farebbe sembrare 1.10 minore di 1.9 ed eliminerebbe i prerelease. Una <code>v</code> iniziale è accettata nelle versioni complete e rimossa dalla normalizzazione; componenti non validi, alternative vuote e identificatori errati producono un errore di input tipizzato anziché un falso risultato inaffidabile.

Usi con precisione comparatori, trattini e caratteri jolly

Sono disponibili <code>&gt;</code>, <code>&gt;=</code>, <code>&lt;</code>, <code>&lt;=</code> e <code>=</code>. Più comparatori nella stessa alternativa formano un’intersezione. Un’espressione come <code>1.2.3 - 2.4.0</code> include entrambi gli estremi completi; un estremo superiore parziale viene esteso alla fine della propria famiglia: <code>1.2 - 2.4</code> parte da 1.2.0 e si ferma prima di 2.5.0. I caratteri jolly possono essere <code>x</code>, <code>X</code> o <code>*</code>. Pertanto <code>3.x</code> copre le versioni stabili da 3.0.0 fino a prima di 4.0.0, mentre <code>3.2</code> equivale a <code>3.2.x</code>. I jolly devono seguire i componenti noti; <code>1.x.4</code> viene rifiutato perché non descrive un intervallo coerente. Questa capacità rifiuta intenzionalmente le abbreviazioni con accento circonflesso e tilde. Esprima quei limiti con comparatori espliciti, affinché la regola resti visibile e inequivocabile nei log, nelle politiche generate, nei controlli automatici e nelle revisioni umane.

Comprenda precedenza, prerelease e metadati di build

Le versioni semantiche si confrontano componente per componente, non alfabeticamente. Decidono prima i numeri principale, secondario e patch. Un prerelease precede la relativa versione stabile; i suoi identificatori separati da punti vengono confrontati da sinistra a destra: quelli numerici si confrontano numericamente, precedono quelli non numerici e un prefisso uguale più corto viene prima. I metadati dopo <code>+</code> sono conservati nell’output normalizzato ma non cambiano mai la precedenza, come richiede SemVer. I gestori di dipendenze evitano inoltre di selezionare accidentalmente prerelease. Lo strumento segue tale comportamento: un prerelease può soddisfare un insieme soltanto quando quell’insieme contiene un comparatore prerelease con gli stessi numeri principale, secondario e patch. Per esempio, <code>2.0.0-beta.2</code> può soddisfare <code>&gt;=2.0.0-beta.1 &lt;2.0.0</code>, ma non rientra in un jolly ampio solo perché coincide il nucleo numerico. Ogni valutazione è locale e deterministica. Non vengono interrogati registri, scaricati pacchetti o ipotizzati rilasci correnti; le stesse stringhe restituiscono sempre la stessa decisione.

Convalidare versioni candidate

Confronti una versione proposta con l’intervallo dichiarato dal progetto che la usa prima di modificare il file di blocco.

Proteggere una pipeline di rilascio

Autorizzi o rifiuti gli artefatti di distribuzione secondo una finestra di compatibilità esplicita nella politica.

Spiegare il comportamento del manifesto

Provi limiti, jolly, alternative e prerelease per capire perché un risolutore accetta o ignora un rilascio.

Quanto costa una verifica tramite API?

Ogni richiesta costa $0.002. Lo stesso strumento deterministico può essere eseguito direttamente nel browser.

Un intervallo può contenere più condizioni?

Sì. Separi le condizioni E con spazi e le alternative O con ||.

Gli estremi di un intervallo con trattino sono inclusi?

Gli estremi completi sono inclusi. Un estremo superiore parziale diventa un limite esclusivo oltre la sua famiglia.

I metadati di build influiscono sul risultato?

No. Sono conservati nella versione normalizzata ma ignorati ai fini della precedenza SemVer.

Perché un prerelease non soddisfa un intervallo ampio?

È ammesso solo se l’insieme include esplicitamente un prerelease con gli stessi numeri principale, secondario e patch.

Sono supportati gli intervalli con circonflesso e tilde?

No. Usi comparatori espliciti, intervalli con trattino, jolly, versioni parziali oppure alternative ||.

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/dev/semver-satisfies

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/dev/semver-satisfies \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"version":"2.4.1","range":">=2.0.0 <3.0.0"}'
{
  "version": "2.4.1",
  "range": ">=2.0.0 <3.0.0"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.semver_satisfies",
  "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.

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.

Leggi la documentazione completa del KIT →