Vai al contenuto
🛠️ToolsShed

Calcolatore Semver

Confronta le versioni semantiche e verifica se una versione soddisfa un intervallo (^, ~, >= ecc.).

Confronta due versioni

Esempi di intervalli

^1.2.3>= 1.2.3 < 2.0.0
~1.2.3>= 1.2.3 < 1.3.0
>=1.0.0 <2.0.0>= 1.0.0 AND < 2.0.0
1.0.0 - 2.0.0>= 1.0.0 <= 2.0.0
1.x.x || 2.x.x1.x OR 2.x

Informazioni sullo strumento

Il Versionamento Semantico (SemVer) è un modo standardizzato di comunicare le modifiche al software attraverso numeri di versione come MAJOR.MINOR.PATCH. Questo strumento ti aiuta a confrontare rapidamente le versioni e verificare se una versione specifica soddisfa un vincolo di intervallo — essenziale quando gestisci dipendenze in progetti, librerie e framework.

Per usarlo, inserisci un numero di versione (ad esempio 1.5.0) e un'espressione di intervallo (ad esempio ^1.0.0 o >=1.0.0 <2.0.0) nella prima sezione per verificare se la versione corrisponde. La seconda sezione ti consente di confrontare direttamente due versioni per determinare il loro ordine. Gli esempi integrati mostrano gli operatori di intervallo comuni: accento circonflesso (^) permette aggiornamenti MINOR e PATCH, tilde (~) consente solo aggiornamenti PATCH, e intervalli con trattino (1.0.0 - 2.0.0) coprono tutte le versioni tra due limiti.

Gli sviluppatori e i gestori di pacchetti fanno affidamento quotidianamente su questi controlli di versione per garantire la compatibilità e prevenire modifiche che rompono il codice. Questo calcolatore risparmia tempo durante la revisione del codice, l'aggiornamento delle dipendenze e le pipeline CI/CD dove i vincoli di versione devono essere verificati.

Domande Frequenti

Implementazione del Codice

# pip install packaging
from packaging.version import Version
from packaging.specifiers import SpecifierSet

v1 = Version("1.2.3")
v2 = Version("2.0.0")
v3 = Version("1.2.3-alpha.1")  # Note: packaging uses PEP 440 syntax

# Comparison
print(v1 < v2)    # True
print(v1 == Version("1.2.3"))  # True

# Check if a version satisfies a specifier
spec = SpecifierSet(">=1.0.0,<2.0.0")
print(Version("1.5.0") in spec)   # True
print(Version("2.0.0") in spec)   # False
print(Version("0.9.0") in spec)   # False

# PEP 440 pre-release (different from semver!)
v_pre = Version("1.0.0a1")    # alpha 1
v_rc  = Version("1.0.0rc2")   # release candidate 2
print(v_pre < v_rc < Version("1.0.0"))  # True

# Sorting versions
versions = [Version(v) for v in ["2.0.0", "1.0.0", "1.5.0", "1.5.1"]]
print(sorted(versions))
# [<Version('1.0.0')>, <Version('1.5.0')>, <Version('1.5.1')>, <Version('2.0.0')>]

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.