Zum Inhalt springen
🛠️ToolsShed

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.x1.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.