Semverカリキュレーター
セマンティックバージョニングのルールを使用して、バージョン範囲のマッチ確認、バージョン比較、次のインクリメントを計算します。
このツールについて
Semverカリキュレーターは、セマンティックバージョニング(SemVer)を 扱うための無料のブラウザベースツールです。SemVerは npm、Cargo、Goモジュール、 その他多くのモダンなパッケージマネージャーで使用されるバージョニングスキームです。 特定のバージョンが指定された範囲を満たすかの確認、2つのバージョンの比較、 次のメジャー/マイナー/パッチインクリメントの計算、バージョンリストの一括テストが可能です。
package.jsonなどのマニフェストで使用される完全な範囲構文をサポートしています:
キャレット範囲(^1.2.3)、チルダ範囲(~1.2.3)、ハイフン範囲
(1.2.3 - 2.3.4)、比較演算子(>=、>、<、<=、=)、
ワイルドカード範囲(1.x、1.2.*)、OR式(||)。プレリリース
識別子(例:1.0.0-alpha.1)とビルドメタデータ(例:1.0.0+build.42)は
SemVer 2.0.0仕様に従って完全に解析・比較されます。
package.jsonを作成する場合は、
Package.jsonジェネレーターをお試しください。
JSON設定ファイルの比較には、JSON Diffツールが
変更の発見に役立ちます。
バージョン文字列と範囲式はブラウザから送信されることはありません。 すべての処理はデータ送信なしの100%クライアントサイドです。
使い方
- Range Matchタブを開き、バージョン(例:
1.5.3)と範囲(例:^1.2.0)を入力します。結果は即座に更新されます。 - Compareタブに切り替えて、2つのバージョンを入力し、どちらが新しいかをメジャー/マイナー/パッチの内訳付きで確認します。
- Incrementタブで、バージョンを入力して次のメジャー、マイナー、パッチバージョンを一覧で確認します。
- Batch Checkタブを開き、バージョンのリスト(1行に1つ)と範囲を貼り付けて、どのバージョンがマッチするかを緑色のハイライトで確認します。
- Referenceタブで、すべての範囲構文(^、~、-、>=、||、x/*など)のクイックリファレンスを参照します。
- 結果のCopyをクリックするか、Ctrl+Shift+Cを押して現在の結果をクリップボードにコピーします。
1.0.0-alpha.1や2.0.0-rc.2などのプレリリースバージョンを試して、リリースバージョンとの比較を確認します。
人気のSemverの例
よくある質問
セマンティックバージョニング(SemVer)とは何ですか?
セマンティックバージョニングは、MAJOR.MINOR.PATCHの形式を使用するバージョニングスキームです。MAJORの変更は互換性のないAPI変更を示し、MINORの変更は後方互換性のある機能追加、PATCHの変更は後方互換性のあるバグ修正です。semver.orgで仕様が定義されており、npm、Cargo、その他多くのパッケージマネージャーの標準です。
^(キャレット)と~(チルダ)の違いは何ですか?
キャレット(^1.2.3)は最も左の非ゼロ桁を変更しない変更を許可します。そのため^1.2.3は>=1.2.3 <2.0.0を意味します。チルダ(~1.2.3)はパッチレベルの変更のみを許可し、~1.2.3は>=1.2.3 <1.3.0を意味します。キャレットはnpm installのデフォルトで、より寛容です。
プレリリースバージョンはどのように比較されますか?
プレリリースバージョンは、関連するリリースバージョンよりも優先度が低くなります。例えば、1.0.0-alpha < 1.0.0です。プレリリース識別子は左から右に比較されます:数値識別子は整数として比較され、文字列識別子は辞書順で比較され、数値は常に文字列よりも優先度が低くなります。
ビルドメタデータはバージョンの優先順位に影響しますか?
いいえ。SemVer 2.0.0によると、ビルドメタデータ(+...のサフィックス)はバージョンの優先順位の決定時に無視されます。ビルドメタデータのみが異なる2つのバージョンは、比較目的では等しいと見なされます。
このツールはどの範囲構文をサポートしていますか?
キャレット範囲(^)、チルダ範囲(~)、ハイフン範囲(1.0.0 - 2.0.0)、比較演算子(>=、>、<=、<、=)、ワイルドカード範囲(1.x、1.2.*)、ORユニオン(||)、およびこれらの組み合わせをサポートしています。npm、yarn、pnpmで使用される構文をカバーしています。
データは安全ですか?
はい。すべてのバージョン解析、比較、範囲マッチングはJavaScriptを使用してブラウザ内で完全に実行されます。バージョン文字列、範囲、その他のデータがサーバーに送信されることはありません。ツール使用中にブラウザの開発者ツールのネットワークタブで確認できます。
Cargo(Rust)やGoモジュールのバージョンにも使えますか?
はい、標準のSemVer範囲であれば使用できます。Cargoはnpmと同様にキャレットをデフォルトで使用し、Goモジュールはvプレフィックス付きのセマンティックバージョニングを使用します。このツールはvプレフィックスを自動的に除去し、エコシステム間で共有されるコア範囲演算子をサポートしています。
関連ツール
package.json生成
ビジュアルフォームでpackage.jsonファイルを生成。名前、バージョン、スクリプト、依存関係等を設定。
JSON差分比較
2つのJSONオブジェクトを構造的に比較し、追加、削除、変更された値をキー順に依存せず検出します。
Semantic Releaseコンフィグビルダー
semantic-releaseの設定ファイルをビジュアルに生成します。プラグイン選択、ブランチ設定、リリースルール、JSON/YAML/JSエクスポート対応。
Changelogジェネレーター
Conventional CommitsからCHANGELOG.mdを生成します。タイプ別グループ化、バージョンヘッダー、Keep a Changelog形式でエクスポート。
進数変換ツール
2進、8進、10進、16進およびカスタム基数間で数値を変換します。ビット可視化付き。
requirements.txt ↔ pyproject.toml変換
Pythonのrequirements.txtとpyproject.toml依存関係フォーマットを相互変換します。
go.modフォーマッター
Goモジュールファイルの整形、検証、クリーンアップ。依存関係のソート、バージョン揃え、重複検出。