Apache Hadoop 使用 <major>.<minor>.<maintenance> 的版本格式,其中每个版本组件都是一个数字值。版本还可以有额外的后缀,如 “-alpha2” 或 “-beta1”,表示 API 兼容性保证和发布的质量。我们使用 “a.b.c” 和 “x.y.z” 表示点分版本三元组。
主要版本用于引入重大、可能不兼容的更改。例如,在 Hadoop 2 中用 YARN 和 MapReduce 2 替换 MapReduce 1,以及在 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 版本的其他计划意味着可能会有四条活动发布线,需要澄清 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)。这保留了版本的单调性。