コンテンツにスキップ

バージョン管理

SUMOのバージョン番号とその意味

SUMOのバージョン番号は多くの場所で確認できます。 具体的には以下が挙げられます。

  • リリースバージョン(sumo -Vを実行した際のリリース情報、またはGUIアプリケーションの「バージョン情報」ダイアログで表示されるもの)。例:1.6.0
  • 開発者バージョン(ナイトリービルドや自己コンパイル版で同様の場所で確認可能)、例:v1_6_0+1520-cb474809f6
  • ネットワークバージョン(すべての.net.xmlファイルの先頭で<net version="1.0" ...として表示)
  • TraCIまたはlibsumoのgetVersionコマンドが返すTraCIバージョン

リリースバージョン

SUMOはセマンティックバージョニングを大まかに採用しており、メジャーリリース(最初の数字が変更)、 マイナーリリース(2番目の数字が変更)、パッチまたはバグフィックスリリース(3番目の数字)を区別します。 年間3~4回リリースを行い、ほとんどの場合マイナーリリースを配信します。 変更量は比較的多く(連続リリース間で1000以上のコミットが発生)、 常に新たなマイナーバージョンを正当化する追加機能が存在します。 比較的高い頻度とナイトリービルドの利用可能性のため、バグ修正リリースは マイナーリリースに深刻なバグが存在する場合にのみ提供されます。 メジャーリリースは非常に稀(2001年以降1度のみ実施)であり、ほぼ政治的な決定事項です。

サービスバージョン(例:1.6.0がリリース済みの状態で1.5.1をリリース)は行わず、別々のリリーストラックやブランチも維持しません。 開発ラインは1本のみです。

開発者向けバージョン

"v" に続き、直近のリリース番号 (例:1_6_0)、 プラス記号と前回のリリース以降の コミット数 (例:+1520) 、マイナス記号とGitHubメインブランチへの 最終コミットのハッシュ先頭文字列 (例: -cb474809f6) で構成されます。 Pythonパッケージでは、PEP440 準拠のため "1.6.0.post1520" に変換されます。

ネットワーク版

こちらも"メジャー.マイナー" 形式のバージョン番号であり、この形式が導入された時点のSUMOリリースを示すものです。 netconvert ツールは通常、古いネットワークも解析可能 (少なくとも2015年0.25.0でネットワークのバージョン管理が導入された時点まで遡る) であり、現在の形式に変換します。

TraCIバージョン

詳細は関連コマンドの説明を参照してください。

後方互換性

入力

ネットワークやルートなどの主要入力ファイルは安定しており、通常は新規要素や属性を追加するのみです。

処理

新機能の導入や動作変更時には、旧動作を復元するオプションを提供するように努めています (旧動作をバグと判断する場合を除く)。 すべてのモデルは現在も非常に活発に開発中 (かつ主要開発は研究目的) であるため、異なるSUMOバージョン間で複雑な 交通状況において同一の挙動を得ることは困難な場合があります。 シナリオを他者に提供する際は、想定実行環境のSUMOバージョンを明記することを強く推奨します。 バージョン情報は全出力ファイルにも記載されます。

出力

出力フォーマットも比較的安定していますが、車両挙動の変更や一般的なバグ修正の影響を受ける可能性があります。

GUI

ユーザー体験の安定性に関しては最も注力が不足していますが、ユーザーを混乱させないよう常に努めています (本当です!)。