Semver-Rechner
Vergleichen Sie semantische Versionen und prüfen Sie, ob eine Version einen Bereich erfüllt (^, ~, >= usw.).
Zwei Versionen vergleichen
Bereichsbeispiele
| ^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.x | 1.x OR 2.x |
Über dieses Tool
Semantic Versioning (SemVer) ist eine standardisierte Methode, um Softwareänderungen durch Versionsnummern wie MAJOR.MINOR.PATCH zu kommunizieren. Dieses Werkzeug hilft dir, Versionen schnell zu vergleichen und zu überprüfen, ob eine bestimmte Version eine Bereichsbeschränkung erfüllt — wesentlich bei der Verwaltung von Abhängigkeiten in Projekten, Bibliotheken und Frameworks.
Um es zu nutzen, gib eine Versionsnummer (z. B. 1.5.0) und einen Bereichsausdruck (z. B. ^1.0.0 oder >=1.0.0 <2.0.0) im ersten Abschnitt ein, um zu sehen, ob die Version übereinstimmt. Der zweite Abschnitt ermöglicht dir, zwei Versionen direkt zu vergleichen und ihre Reihenfolge zu bestimmen. Die integrierten Beispiele zeigen häufige Bereichsoperatoren: Zirkumflex (^) ermöglicht MINOR- und PATCH-Updates, Tilde (~) begrenzt auf PATCH-Updates, und Bindestrich-Bereiche (1.0.0 - 2.0.0) decken alle Versionen zwischen zwei Grenzen ab.
Entwickler und Paketmanager verlassen sich täglich auf diese Versionsüberprüfungen, um Kompatibilität zu gewährleisten und Breaking Changes zu verhindern. Dieser Rechner spart Zeit bei Code-Reviews, Abhängigkeitsaktualisierungen und CI/CD-Pipelines, bei denen Versionsbeschränkungen überprüft werden müssen.
Häufig gestellte Fragen
Code-Implementierung
# 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.