Semverカリキュレーター

セマンティックバージョニングのルールを使用して、バージョン範囲のマッチ確認、バージョン比較、次のインクリメントを計算します。

このツールについて

Semverカリキュレーターは、セマンティックバージョニング(SemVer)を 扱うための無料のブラウザベースツールです。SemVerは npm、Cargo、Goモジュール、 その他多くのモダンなパッケージマネージャーで使用されるバージョニングスキームです。 特定のバージョンが指定された範囲を満たすかの確認、2つのバージョンの比較、 次のメジャー/マイナー/パッチインクリメントの計算、バージョンリストの一括テストが可能です。

package.jsonなどのマニフェストで使用される完全な範囲構文をサポートしています: キャレット範囲(^1.2.3)、チルダ範囲(~1.2.3)、ハイフン範囲 (1.2.3 - 2.3.4)、比較演算子(>=><<==)、 ワイルドカード範囲(1.x1.2.*)、OR式(||)。プレリリース 識別子(例:1.0.0-alpha.1)とビルドメタデータ(例:1.0.0+build.42)は SemVer 2.0.0仕様に従って完全に解析・比較されます。

package.jsonを作成する場合は、 Package.jsonジェネレーターをお試しください。 JSON設定ファイルの比較には、JSON Diffツールが 変更の発見に役立ちます。

バージョン文字列と範囲式はブラウザから送信されることはありません。 すべての処理はデータ送信なしの100%クライアントサイドです。

使い方

  1. Range Matchタブを開き、バージョン(例:1.5.3)と範囲(例:^1.2.0)を入力します。結果は即座に更新されます。
  2. Compareタブに切り替えて、2つのバージョンを入力し、どちらが新しいかをメジャー/マイナー/パッチの内訳付きで確認します。
  3. Incrementタブで、バージョンを入力して次のメジャー、マイナー、パッチバージョンを一覧で確認します。
  4. Batch Checkタブを開き、バージョンのリスト(1行に1つ)と範囲を貼り付けて、どのバージョンがマッチするかを緑色のハイライトで確認します。
  5. Referenceタブで、すべての範囲構文(^、~、-、>=、||、x/*など)のクイックリファレンスを参照します。
  6. 結果のCopyをクリックするか、Ctrl+Shift+Cを押して現在の結果をクリップボードにコピーします。
  7. 1.0.0-alpha.12.0.0-rc.2などのプレリリースバージョンを試して、リリースバージョンとの比較を確認します。

人気のSemverの例

すべての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プレフィックスを自動的に除去し、エコシステム間で共有されるコア範囲演算子をサポートしています。

関連ツール