Lewati ke konten
πŸ› οΈToolsShed

Kalkulator Semver

Bandingkan versi semantik dan periksa apakah versi memenuhi rentang (^, ~, >= dll.).

Bandingkan Dua Versi

Contoh Rentang

^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

Tentang alat ini

Semantic Versioning (SemVer) adalah cara terstandar untuk mengomunikasikan perubahan perangkat lunak melalui nomor versi seperti MAJOR.MINOR.PATCH. Alat ini membantu anda dengan cepat membandingkan versi dan memeriksa apakah versi tertentu memenuhi batasan rentang β€” penting saat mengelola dependensi di seluruh proyek, perpustakaan, dan kerangka kerja.

Untuk menggunakannya, masukkan nomor versi (misalnya 1.5.0) dan ekspresi rentang (misalnya ^1.0.0 atau >=1.0.0 <2.0.0) di bagian pertama untuk melihat apakah versi cocok. Bagian kedua memungkinkan anda membandingkan dua versi secara langsung untuk menentukan urutan mereka. Contoh bawaan menunjukkan operator rentang umum: caret (^) memungkinkan pembaruan MINOR dan PATCH, tilde (~) membatasi hanya pembaruan PATCH, dan rentang dengan tanda hubung (1.0.0 - 2.0.0) mencakup semua versi antara dua batas.

Pengembang dan pengelola paket mengandalkan pemeriksaan versi ini setiap hari untuk memastikan kompatibilitas dan mencegah perubahan yang merusak. Kalkulator ini menghemat waktu selama peninjauan kode, pembaruan dependensi, dan pipeline CI/CD di mana batasan versi harus diverifikasi.

Pertanyaan yang Sering Diajukan

Implementasi Kode

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