バージョン番号を正しく並べ替える

1.10.0が1.9.0より新しいという、リリース本来の順序でバージョン一覧を並べ替えます。

このガイドで使う道具

やりたいこと

変更履歴・ダウンロードしたビルドの一覧・gitタグのコピーなどを正しい順に並べたい場面です。普通の文字順ソートでは1文字ずつ比較するため「1.10.0」が「1.9.0」より上に来てしまいます。バージョンはドットで区切った各部分を数値として比較する必要があります。

使い方

1行に1バージョンずつ貼り、古い順か新しい順に並べ替えます。ドット区切りの数値を順に比較し、先頭のvや=を受け付け、-rc.2のようなプレリリースはそのリリースより前に置き、+以降のビルド情報は無視します。バージョンとして読めない行は行番号で一覧します。

  • どちらが新しいか1組だけ知りたい時は比較モードで2つ入力します。
  • 20万文字・2万行まで。

具体例

v1.9.0・1.10.0・1.2.0-rc.1・1.2.0を古い順に並べると1.2.0-rc.1→1.2.0→1.9.0→1.10.0になります。rcがそのリリースより前に、1.10が1.9より後に来ます。文字順ソートではこの順になりません。

注意点

SemVer式の順序です。2024.03のようなカレンダーバージョンは数値として扱います(足りない部分は0として読まれるため2024.3と2024.30は同じではありません)。バージョン以外の行は推測せず飛ばします。日付や名前が混じった行は並びません。