コンテンツへスキップ
🛠️ToolsShed

Semverカリキュレーター

セマンティックバージョンを比較し、バージョンがレンジを満たすか確認します(^、~、>=など)。

2つのバージョンを比較

レンジの例

^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

このツールについて

セマンティックバージョニング(SemVer)は、MAJOR.MINOR.PATCHのようなバージョン番号を使ってソフトウェアの変更を標準化された方法で伝えるシステムです。このツールは、バージョンを素早く比較し、特定のバージョンが範囲制約を満たすかどうかを確認するのに役立ちます。プロジェクト、ライブラリ、フレームワーク全体で依存関係を管理する際に不可欠です。

使用するには、最初のセクションにバージョン番号(例:1.5.0)と範囲表現(例:^1.0.0または>=1.0.0 <2.0.0)を入力して、バージョンが一致するかどうかを確認します。第2セクションでは、2つのバージョンを直接比較して順序を確認できます。組み込みの例は、一般的な範囲演算子を示しています。キャレット(^)はMINORとPATCH更新を許可し、チルダ(~)はPATCH更新に限定され、ハイフン範囲(1.0.0 - 2.0.0)は2つのバージョン間のすべてのバージョンをカバーします。

開発者とパッケージマネージャーは、互換性を確保し、破壊的変更を防ぐために、毎日これらのバージョン確認に依存しています。このツールはコードレビュー、依存関係のアップグレード、バージョン制約を検証する必要があるCI/CDパイプラインでの時間を節約できます。

よくある質問

コード実装

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