Versioning & Packages

バージョン範囲テスト

エコシステムを選び、その規則に合う入力だけを調べます。

バージョン範囲テスト

入力

候補版を一行ずつ

結果

入力すると開始します。

処理はこのブラウザー内だけで行い、パッケージレジストリへ送信しません。

オプション

Composer:安定した数値版、^、~、.*、比較、AND/OR、ハイフン範囲。

候補は500行、入力は65,536文字まで。レジストリ検索はしません。

入力すると開始します。

READMEから版指定を写したとき、その記号が別の管理ツールでも同じ意味とは限りません。バージョン範囲テストでは先にComposerかNuGetを選び、手元で用意した候補版だけを照合します。

Composerのバージョン制約とNuGetのバージョン範囲は別の解析器を使います。Goモジュールパスは字句と取得可能な形を区別し、Cargo.tomlの依存バージョンは一つの宣言へ整えます。

バージョン範囲テストを使う理由

同じ数字でも、選んだエコシステムの意味で読めます。

区間の括弧を取り違えない

バージョン範囲テストはComposerの数値制約とNuGetの区間を混ぜません。NuGetの裸の1.0は下限で、[1.0]が完全一致です。

四つの入力が別々の規則経路を通り、それぞれの判定レポートへ進む図

パスと宣言も別の成果物に

Goの結果は字句としての妥当性とダウンロード用の先頭要素を分けて表示します。Cargoは互換更新か完全一致かを添えたTOML一行を出します。

Goモジュールパスの二段階判定とCargo依存宣言の一行出力を並べた図

判定前に知っておきたい三点

01

最初に文法を選ぶ

モードごとに入力を保持します。NuGetの角括弧をComposerの制約として黙って解釈することはありません。

02

演算子のない版を確認

NuGetの1.0は1.0以上、Cargoの1.0は互換更新を許します。Cargoで固定したい場合は=1.0を指定します。

03

新しい結果を待つ

自動実行は入力後350ミリ秒待ちます。オフならCtrl/Cmd+Enterで実行し、古い結果はコピーと保存が無効になります。

規則に応じた四つの検査

Composerの安定版制約

^、~、比較、ワイルドカード、AND、OR、部分版のハイフン範囲を手入力の候補に適用します。無効な行も残します。

NuGet区間の端点

角括弧と丸括弧、開いた端点、プレリリース、裸の下限と[x]の完全一致を別々に判定します。

Goのモジュールパス

ASCIIのパス要素、予約名、ダウンロード用ドメイン、/vNの末尾を静的に検査します。

Cargoの依存宣言

crate名、版指定、features、default-featuresからcrates.io向けのTOML一行を作り、JSONレポートと分けてコピーできます。

この画面で扱わない範囲

Composerの分岐安定性は対象外
devブランチ、別名、@stability、プレリリース候補を拒否します。minimum-stabilityやリポジトリ情報を使うインストール判定は行いません。
NuGetの復元選択は対象外
1.*などの浮動版は拒否します。候補が区間に入ることと、実際のrestoreがその版を選ぶことは別です。
Goリポジトリへ接続しない
ローカルでは有効なパスでも取得用ドメインを欠くことがあります。DNSやモジュールプロキシへの問い合わせはしません。
Cargo.toml全体は編集しない
crates.ioの通常の一宣言だけを生成します。git、path、workspace、私設レジストリ、コメント付きファイルの再整形はしません。
候補リストには上限がある
非空行は500行まで、入力は65,536文字まで。誤った候補は元の行番号とともに結果へ残します。

バージョン範囲テストのよくある質問

Composerの^と~で許容されるバージョンはどう違うか?

Composerの^1.2は2.0未満の互換版を許し、~1.2も2.0未満ですが、~1.2.3は1.3未満で止まります。このバージョン範囲テストは安定した数値版のみを扱います。

NuGetの[1.0,2.0)は2.0を含むか?

含みません。[は1.0を含み、末尾の)は2.0を含まない上限を表します。

Go moduleのv2でパス末尾に/v2が必要なのはなぜか?

Goでは互換性のないv2以降を別のモジュールパスとして扱うため、通常は末尾に/v2を付けます。ここではパスの形だけを検査します。

Cargo.tomlの0.1.12はどのバージョンを許容するか?

Cargoの0.1.12は既定のcaret条件で、通常0.2未満の互換版を許します。完全に固定したい場合は=0.1.12です。

Cargo.tomlのdependenciesに記載するバージョンの探し方?

公開済みの版はcrates.ioやプロジェクトの資料で確認してください。このページは版を検索せず、入力した条件から一宣言を生成するだけです。

解決しない問題がありますか?

バージョン範囲テストを始める

バージョン範囲テストへ戻り、対象のエコシステムを選んでから最新の判定と制限を確認してください。