Apache Hadoopは、<メジャー>.<マイナー>.<メンテナンス> のバージョン形式を使用しており、各バージョンコンポーネントは数値です。バージョンには、"-alpha2" や "-beta1" などの追加のサフィックスが付く場合があり、これらはAPIの互換性保証とリリースの品質を示します。「a.b.c」および「x.y.z」は、ドットで区切られたバージョン番号の3つ組を表します。
メジャーバージョンは、大幅で、互換性のない変更を導入するために使用されます。これには、Hadoop 2でのMapReduce 1からYARNおよびMapReduce 2への置き換え、Hadoop 3での必須JavaランタイムバージョンがJDK7からJDK8に変更などが含まれます。
マイナーバージョンは、メジャーリリースライン内で新しい互換性のある機能を導入するために使用されます。
メンテナンスリリースには、バグ修正または低リスクのサポート可能性の変更が含まれます。
Hadoopのバージョン管理スキームは、長年にわたって進化してきました。0.20.2から1.yリリースまでの初期段階では、さまざまな機能セットを持つ多数の並列リリースがありました。リリース活動は2.yリリースの初期段階で統合され、2.0.0から2.7.0まで主に線形のリリース進行が行われました。
しかし、2.6.zと2.7.zの継続的なメンテナンスにより、Hadoopに並列アクティブリリースラインが再導入されました。2.8.zと3.0.zリリースの追加計画は、潜在的に4つのアクティブリリースラインを意味し、Hadoopのバージョン管理とその並列リリースブランチへの影響に関する明確化が必要になります。
共通の知識基盤を確立するために、リリースバージョンに関して以下が必要です。
これは、新しいメジャーリリースは、前のマイナーリリースと調整する必要があることを意味します。新しいマイナーリリースとメンテナンスリリースは、それぞれのリリースライン内でのみ調整する必要があります。
"-alphaX” と "-betaX” サフィックス付きバージョンは、a.b.cバージョンとして扱うことができ、最初のバージョン(例:"-alpha1")はa.b.0リリースになります。
修正バージョンの設定に関しては、このポリシーは次のルールのセットでエンコードされます。
例として、2016年8月3日現在、2.6.xラインと2.7.xラインの最新リリースは2.6.4と2.7.2です。また、計画されている今後のリリースのために、branch-2.7.3、branch-2.8、およびbranch-3.0.0-alpha1ブランチを作成しました。
2.6.5リリースを対象とするバグ修正をコミットする場合、次のようにコミットします。
修正バージョンの設定に関する上記のルールの適用
変更をバックポートする場合、常にリリースライン内の次の上位リリースにバックポートすることを確認します。たとえば、branch-2.7.3(2.7.3)にバックポートする場合、branch-2.7(2.7.4)にバックポートし、branch-2.8(2.8.0)にバックポートする場合、branch-2(2.9.0)にバックポートします。これにより、リリースの単調性が維持されます。