パッケージバージョン形式変換

バージョン文字列を1行ずつ貼り付け、SemVer、PEP 440、両方、いずれでも有効か確認します。一方のエコシステムでは正しく見えても、他方で拒否または異なる意味になる理由を示します。

ブラウザー内でローカルに処理します。ファイルがアップロードされることはありません。

使い方 ツール

  1. バージョン文字列を1つまたは複数行で貼り付けます。内容はブラウザー外へ送信されません。
  2. 「バージョンを確認」を選びます。
  3. 各値について、文法違反または意味上の差を確認します。
  4. 近似変換は自動適用せず説明します。安全な書き換えが提案された場合に利用してください。

前提条件

出典と参考データ

方法論

各行を仕様から作成した正規表現で両文法に対して解析します(SemVer 2.0.0公式文法正規表現と、epoch/release/pre/post/dev/localを含むPEP 440パターン)。その後、SemVerがpre-release前に要求するがPEP 440は要求しないハイフン、SemVerにないPEP 440 dev/post、異なるbuild metadata意味論(SemVerでは優先順位に影響せず、PEP 440 local版では影響)、どちらも期待しないgitタグ`v`接頭辞、厳密なSemVerで無効な先頭ゼロ、PEP 440では有効だがSemVerでは無効な2要素版を検査します。

計算例

SemVer必須のハイフンがないPython式pre-release

入力項目: 1.0.0a1

結果: PEP 440では有効(alpha 1)ですが、厳密なSemVerではpre-release識別子の前にハイフンが必要なので拒否されます。エラーとして指摘しSemVer形式`1.0.0-a1`を提案します。

build metadataとPEP 440 local版

入力項目: 1.2.3+build1

結果: 両形式の文字列として有効ですが、SemVerでは+build1は優先順位に影響せず`1.2.3+build1`と`1.2.3+build2`が同順位です。一方PEP 440のlocal版相当部分は並び順に影響します。仕様上の意味差として警告し、文字列自体は曖昧でないため変換しません。

PEP 440開発版接尾辞

入力項目: 1.0.0.dev0

結果: PEP 440では1.0.0より前の開発版として有効ですが、SemVerに直接相当する概念はありません。`1.0.0-dev.0`は使われる近似形ですが、優先順位規則が異なるため自動変換せず説明します。

実用的なアドバイス
よくある間違い

よくある質問

なぜ`1.0.0a1`は警告でなくエラーですか?

単なる非推奨形式でなく、厳密なSemVerパーサーが解析に失敗します。JSONパーサーが末尾カンマを拒否するのと同じく、書式の好みでなく非互換です。

なぜ`1.0.0.dev0`を自動的にSemVerへ書き換えないのですか?

保証された同等形式がないためです。PEP 440のdev/post版が示す前後関係はSemVerのpre-release/build欄では完全に再現できず、どのSemVer表記も異なる並べ替え動作の近似になります。情報を失わない場合のみ自動書き換えます。

`1.2.3+build1`は本当に壊れていますか?

文字列としては壊れておらず、両方の文法で有効です。リスクはbuild/local接尾辞がバージョン比較に与える影響で、エコシステム間で異なります。

PEP 440の`.dev`版をSemVerへ厳密変換できますか?

保証された厳密変換はありません。PEP 440開発版の順序意味論はSemVer pre-release識別子ですべて再現できません。`1.0.0-dev.0`は近似で、同等版ではない場合があります。このツールは形式と移植性注記を検査し、パッケージマネージャーの解決処理やバージョン比較を実行しません。

最終確認日: 2026-09-25

パッケージマネージャーの完全なバージョン解決器ではなく、SemVer 2.0.0とPEP 440の一般形式を認識する文法チェッカーです。Debian revisionやMaven qualifierなどは対象外で、どちらの形式も比較・並べ替えません。

テーマとツールの設定、保存済みリストと最近使用したリストは、このブラウザー内にのみ保存されます。