せやテクあると助かる、ちょうどいいWebツール。
開発・デバッグ支援

Semver計算・比較

バージョン番号(1.2.3)がSemantic Versioningとして正しいか検証し、次のmajor/minor/patchを計算します。2つのバージョンの大小比較にも対応しています。

入力データはサーバーへ送信されませんインストール不要無料で使えます
「メジャーバージョンが同じなら互換性がある」は仕様上の約束事であり、実際のライブラリがそれを守っている保証はありません。本ツールはバージョンの上げ方の判断を行いません。

バージョンを入力してください。

2つのバージョンを比較

2つのバージョンを入力してください。

このツールでできること

Semver計算・比較にまつわる主な機能です。

  • バージョン番号がSemantic Versioningとして正しいか検証できます
  • 次のmajor/minor/patchを同時に計算できます
  • 2つのバージョンの大小を、仕様どおりの規則で比較できます(文字列比較ではありません)
  • プレリリース版(1.2.3-alpha.1等)を正しく扱えます
  • ビルドメタデータ(+build.5等)を正しく扱えます
  • 安全な整数の範囲を超える大きな数値のバージョンでも正しく計算・比較できます

使い方

Semver計算・比較の手順を説明します。

手順を見る
  1. 「計算」または「比較」を選びます
  2. バージョン番号を入力します計算は1つ、比較は2つ入力します
  3. 結果を確認します入力するとリアルタイムに表示されます

こんなときに使えます

こんな場面でSemver計算・比較が役立ちます。

利用シーンを見る
  • リリース作業で、次のバージョン番号を確認したいとき
  • Gitタグを作る前に、バージョン番号が正しい形式か確認したいとき
  • 2つのバージョンのどちらが新しいか、素早く確認したいとき
  • プレリリース版を含むバージョンの優先順位を確認したいとき

Semantic Versioningの仕組みと注意点

詳しい解説を見る

MAJOR.MINOR.PATCHの意味

Semantic Versioning(SemVer)では、バージョン番号をMAJOR.MINOR.PATCHの形で表します。MAJORは互換性のない変更、MINORは後方互換性のある機能追加、PATCHは後方互換性のあるバグ修正を表します。本ツールは、Semantic Versioning 2.0.0(semver.org)の仕様に基づいて実装しています。

プレリリース版からの計算

1.2.3-alpha.1のようなプレリリース版から次のバージョンを計算する際の規則は、広く使われているnpmのsemverパッケージの実装に合わせています。例えば、プレリリース付きバージョンのPatchを計算すると、数値を増やさずプレリリースだけを取り除く場合があります。

ビルドメタデータ

+build.5のようなビルドメタデータは、バージョンの優先順位の比較には使われません。ビルドメタデータだけが異なる2つのバージョンは、優先順位は同じですが文字列としては異なります。

本ツールが対応していないもの(Range)

^1.2.3や~1.2.3のような範囲指定(Range)には対応していません。これはSemantic Versioningの仕様そのものではなく、npmが独自に定めた構文のためです。

互換性・バージョンの上げ方は保証しません

「MAJORが同じなら互換性がある」という考え方は仕様上の約束事であり、実際のライブラリがそれを守っている保証はありません。本ツールは、どの要素を上げるべきかの判断は行いません。

大きな数値の比較

JavaScriptの数値型で安全に扱える範囲(253-1)を超える大きな数値のバージョンでも、BigIntを使って正しく比較・計算します。

よくある質問

`^1.2.3`や`~1.2.3`のような範囲指定(Range)に対応していますか?

対応していません。これはSemantic Versioningの仕様そのものではなく、npmが独自に定めた構文のためです。

先頭に`v`をつけて入力できますか?

はい。`v1.2.3`のように入力しても、入力補助として`v`を取り除いてから検証します。`v`は仕様上バージョンの一部ではないため、結果には付きません。

`01.2.3`のような先頭ゼロは、`1.2.3`として扱われますか?

いいえ。先頭ゼロのある数値は、勝手に修正せず不正な形式として扱います。

メジャーバージョンが同じなら、互換性があると保証されますか?

いいえ。これは仕様上の約束事であり、実際のライブラリがそれを守っている保証はありません。本ツールはバージョンの上げ方の判断を行いません。

入力したバージョン番号はサーバーへ送信されますか?

いいえ。計算・比較の処理はすべてブラウザ内で完結しており、入力内容がサーバーへ送信されることはありません。