blob: 351d5fa7e9f45073524c713747cad16a0b116ec6 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="/favicon.ico">
<base href="https://hadoop.apache.org">
<title>Apache Hadoop</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<link rel="stylesheet" href="/css/hadoop.css">
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<img class="navbar-logo" src="/elephant.png">
<a class="navbar-brand" href="/"> Apache Hadoop</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class=""><a href="releases.html">Download</a></li>
<li class="dropdown ">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a>
<ul class="dropdown-menu">
<li ><a href="http://apache.github.io/hadoop/">Current (trunk)</a></li>
<li ><a href="https://hadoop.apache.org/docs/current/">Latest</a></li>
<li ><a href="https://hadoop.apache.org/docs/stable/">Stable</a></li>
<li role="separator" class="divider"></li>
<li><a href="https://hadoop.apache.org/docs/r3.3.5/">3.3.5</a></li>
<li><a href="https://hadoop.apache.org/docs/r3.2.4/">3.2.4</a></li>
<li><a href="https://hadoop.apache.org/docs/r2.10.2/">2.10.2</a></li>
<li role="separator" class="divider"></li>
<li><a href="https://wiki.apache.org/hadoop">Wiki</a></li>
</ul>
</li>
<li class="dropdown ">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Community <span class="caret"></span></a>
<ul class="dropdown-menu">
<li ><a href="/bylaws.html">Bylaws</a></li>
<li ><a href="/committer_criteria.html">Criteria for Committership</a></li>
<li ><a href="/mailing_lists.html">Mailing lists</a></li>
<li ><a href="/cve_list.html">Published CVEs</a></li>
<li ><a href="/who.html">Who We are</a></li>
</ul>
</li>
<li class="dropdown active">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Development <span class="caret"></span></a>
<ul class="dropdown-menu">
<li ><a href="https://cwiki.apache.org/confluence/display/HADOOP/How&#43;To&#43;Contribute">How to Contribute</a></li>
<li ><a href="/issue_tracking.html">Issue Tracking</a></li>
<li ><a href="/version_control.html">Version Control</a></li>
<li ><a href="/versioning.html">Versioning</a></li>
</ul>
</li>
<li class="dropdown ">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Help <span class="caret"></span></a>
<ul class="dropdown-menu">
<li ><a href="https://www.cafepress.com/hadoop">Buy Stuff</a></li>
<li ><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li ><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
<a href="https://www.apache.org/">Apache Software Foundation <span class="glyphicon glyphicon-new-window" aria-hidden="true"></span></a>
</li>
</ul>
</div>
</div>
</nav>
<div class="container">
<h1>Apache Hadoop Release Versioning</h1>
<!---
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<h2 id="background">Background</h2>
<p>Apache Hadoop uses a version format of
<strong>&lt;major&gt;.&lt;minor&gt;.&lt;maintenance&gt;</strong>, where each version
component is a numeric value. Versions can also have additional suffixes
like <em>&quot;-alpha2&quot;</em> or <em>&quot;-beta1&quot;</em>, which denote the API compatibility
guarantees and quality of the release. We use <em>&ldquo;a.b.c&rdquo;</em> and <em>&ldquo;x.y.z&rdquo;</em> to
denote a dotted version triplet.</p>
<p>Major versions are used to introduce substantial, potentially
incompatible, changes. Examples of this include the replacement of
MapReduce 1 with YARN and MapReduce 2 in Hadoop 2, and the required Java
runtime version from JDK7 to JDK8 in Hadoop 3.</p>
<p>Minor versions are used to introduce new compatible features within a
major release line.</p>
<p>Maintenance releases include bug fixes or low-risk supportability
changes.</p>
<p>Hadoop&rsquo;s versioning scheme has evolved over the years. The early days of
0.20.2 leading up to the 1.y releases saw a <a href="http://blog.cloudera.com/blog/2012/01/an-update-on-apache-hadoop-1-0/">plethora of parallel
releases</a>
with different featuresets. Release activities coalesced in the early
2.y release era, with a mostly linear progression of releases from 2.0.0
through 2.7.0.</p>
<p>However, the ongoing maintenance of the 2.6.z and 2.7.z re-introduced
parallel active release lines to Hadoop. Additional plans for 2.8.z and
3.0.z releases mean potentially four active release lines, necessitating
clarification on Hadoop versioning and how it affects these parallel
release branches.</p>
<h2 id="versioning-rules">Versioning rules</h2>
<p>To establish a common foundation of knowledge, we require the following
in terms of release versions.</p>
<ul>
<li>For <strong>a.b.c</strong> (maintenance) releases, the &ldquo;c&quot;s need to be released
in order.</li>
<li>For <strong>a.b.0</strong> (minor) releases, the &ldquo;b&quot;s need to be released in
order.</li>
<li>For <strong>a.0.0</strong> (major) releases, it comes after a specific x.y.0
minor release.</li>
</ul>
<p>This means that new major releases need to be coordinated with the
previous minor release. New minor and maintenance releases only require
coordination within their release line.</p>
<p><em>&quot;-alphaX&rdquo;</em> and <em>&quot;-betaX&rdquo;</em> suffixed version can be treated as a.b.c
versions, with the first (e.g. <em>&quot;-alpha1&quot;</em>) being the a.b.0 release.</p>
<p>When it comes to setting fix versions, this policy is encoded by the
following set of rules:</p>
<ol>
<li>For each <strong>minor</strong> release line, set the <strong>lowest unreleased a.b.c
version, where c ≥ 0</strong>.</li>
<li>For each <strong>major</strong> release line, set the <strong>lowest unreleased a.b.0
version</strong>.</li>
</ol>
<h2 id="example">Example</h2>
<p>As an example, as of August 3rd, 2016, the latest releases in the 2.6.x
and 2.7.x lines are 2.6.4 and 2.7.2. We have also cut the following
branches for planned future releases: branch-2.7.3, branch-2.8, and
branch-3.0.0-alpha1.</p>
<p>If we are committing a bugfix that is intended for the 2.6.5 release, we
would commit to:</p>
<ol>
<li>trunk (3.0.0-alpha2)</li>
<li>branch-3.0.0-alpha1 (3.0.0-alpha1)</li>
<li>branch-2 (2.9.0)</li>
<li>branch-2.8 (2.8.0)</li>
<li>branch-2.7 (2.7.4)</li>
<li>branch-2.7.3 (2.7.3)</li>
<li>branch-2.6 (2.6.5)</li>
</ol>
<p>Applying the above rules for setting fix versions:</p>
<ol>
<li>Rule 1: 2.6.z and 2.7.z are both minor release lines, so set
<strong>2.6.5</strong> and <strong>2.7.3</strong></li>
<li>Rule 2: 2.y.z and 3.y.z the major release lines, so set <strong>2.8.0</strong>
and <strong>3.0.0-alpha1</strong></li>
</ol>
<p>Note that when backporting changes, we always make sure to backport to
the next higher release in a release line. For instance, we make sure to
backport to branch-2.7 (2.7.4) when backporting to branch-2.7.3 (2.7.3),
and to branch-2 (2.9.0) when backporting to branch-2.8 (2.8.0). This
preserves the monotonicity of releases.</p>
</div>
<div class="container">
<footer class="footer container">
<div class="col-md-6">
<p>Apache Hadoop, Hadoop, Apache, the Apache feather logo,
and the Apache Hadoop project logo are either registered trademarks or trademarks of the Apache Software Foundation
in the United States and other countries</p>
<p>Copyright © 2006-2023 The Apache Software Foundation</p>
<p><a href="/privacy_policy.html">Privacy policy</a></p>
</div>
<div class="col-md-6">
<img class="img-responsive" src="/asf_logo_wide.png"/>
</div>
</footer>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script>
$(function() { $('table').addClass('table table-striped'); })
</script>
<script type="application/javascript">
var doNotTrack = false;
if (!doNotTrack) {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-7453027-1', 'auto');
ga('send', 'pageview');
}
</script>
</body>
</html>