<!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">

  <title>DistributedLog Release Guide</title>
  <meta name="description" content="Apache DistributedLog is an high performance replicated log.
">

  <link rel="stylesheet" href="/styles/site.css">
  <link rel="stylesheet" href="/css/theme.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
  <script src="/js/bootstrap.min.js"></script>
  <link rel="canonical" href="http://distributedlog.incubator.apache.org/community/release-guide/" data-proofer-ignore>
  <link rel="alternate" type="application/rss+xml" title="Apache DistributedLog" href="http://distributedlog.incubator.apache.org/feed.xml">
  <script>
  (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-83870961-1', 'auto');
  ga('send', 'pageview');

  </script> 
  <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico">
</head>


  <body role="document">

    <nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    <div class="navbar-header">
      <a href="/" class="navbar-brand" >
        <img alt="Brand" style="height: 28px" src="/images/distributedlog_logo_navbar.png">
      </a>
      <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>
    </div>
    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
        <!-- Overview -->
        <li><a href="/docs/latest/basics/introduction">Overview</a></li>
        <!-- Downloads -->
        <li><a href="/docs/latest/start/download">Downloads</a></li>
        <!-- Quick Start -->
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Quick Start<span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="/docs/latest/start/quickstart">Setup & Run Example</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Tutorials</li>
            <li>
              <a href="/docs/latest/tutorials/main#id3">
              <small><span class="glyphicon glyphicon-pencil"></span></small>
              Basic
              </a>
            </li>
            <li>
              <a href="/docs/latest/tutorials/main#id4">
              <small><span class="glyphicon glyphicon-envelope"></span></small>
              Messaging
              </a>
            </li>
            <li>
              <a href="/docs/latest/tutorials/main#id6">
              <small><span class="glyphicon glyphicon-stats"></span></small>
              Analytics
              </a>
            </li>
          </ul>
        </li>
        <!-- Documentation -->
        <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 class="dropdown-header">Snapshot (Developement)</li>
            <li><a href="/docs/latest">0.6.0-SNAPSHOT</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Releases</li>
            <li><a href="/docs/0.5.0">0.5.0</a></li>
            <li><a href="/docs/0.4.0-incubating">0.4.0-incubating</a></li>
            <li role="separator" class="divider"></li>
            <li>
              <a href="https://cwiki.apache.org/confluence/display/DL/Project+Ideas">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Project Ideas
              </a>
            </li>
          </ul>
        </li>
        <!-- FAQ -->
        <li><a href="/faq">FAQ</a></li>
      </ul>
      <!-- Right Side -->
      <ul class="nav navbar-nav navbar-right">
        <!-- Blog -->
        <li><a href="/blog">Blog</a></li>
        <!-- Community -->
        <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 class="dropdown-header">Community</li>
            <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
            <li><a href="/community/#source-code">Source Code</a></li>
            <li><a href="/community/#issue-tracker">Issue Tracking</a></li>
            <li><a href="/community/team/">Team</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Contribute</li>
            <li><a href="https://cwiki.apache.org/confluence/display/DL/Developer+Setup">Developer Setup</a></li>
            <li><a href="https://cwiki.apache.org/confluence/display/DL/Contributing+to+DistributedLog">Contributing to DistributedLog</a></li>
            <li><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65867477">Coding Guide</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Guides</li>
            <li><a href="/community/release-guide">Release Guide</a></li>
          </ul>
        </li>
        <!-- Project -->
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Project<span class="caret"></span></a>
          <ul class="dropdown-menu">
			      <li class="dropdown-header">Project</li>
            <li><a href="/project/presentations/">Presentations</a></li>
            <li>
              <a href="https://twitter.com/distributedlog">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Twitter
              </a>
            </li>
            <li>
              <a href="https://github.com/apache/distributedlog">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Github
              </a>
            </li>
            <li>
              <a href="https://getdl-slack.herokuapp.com">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Slack
              </a>
            </li>
            <li>
              <a href="https://cwiki.apache.org/confluence/display/DL/Apache+DistributedLog+Home">
                <small><span class="glyphicon glyphicon-new-window"></span></small>
                Wiki
              </a>
            </li>
          </ul>
        </li>
      </ul>
    </div><!--/.nav-collapse -->
  </div>
</nav>


<link rel="stylesheet" href="">


    <div class="container" role="main">

      <div class="row">
        <h1 id="apache-distributedlog-release-guide">Apache DistributedLog Release Guide</h1>

<ul id="markdown-toc">
  <li><a href="#apache-distributedlog-release-guide" id="markdown-toc-apache-distributedlog-release-guide">Apache DistributedLog Release Guide</a>    <ul>
      <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li>
      <li><a href="#overview" id="markdown-toc-overview">Overview</a></li>
      <li><a href="#decide-to-release" id="markdown-toc-decide-to-release">Decide to release</a>        <ul>
          <li><a href="#checklist-to-proceed-to-the-next-step" id="markdown-toc-checklist-to-proceed-to-the-next-step">Checklist to proceed to the next step</a></li>
        </ul>
      </li>
      <li><a href="#prepare-for-the-release" id="markdown-toc-prepare-for-the-release">Prepare for the release</a>        <ul>
          <li><a href="#one-time-setup-instructions" id="markdown-toc-one-time-setup-instructions">One-time setup instructions</a>            <ul>
              <li><a href="#gpg-key" id="markdown-toc-gpg-key">GPG Key</a></li>
              <li><a href="#access-to-apache-nexus-repository" id="markdown-toc-access-to-apache-nexus-repository">Access to Apache Nexus repository</a></li>
              <li><a href="#website-development-setup" id="markdown-toc-website-development-setup">Website development setup</a></li>
            </ul>
          </li>
          <li><a href="#create-a-new-version-in-jira" id="markdown-toc-create-a-new-version-in-jira">Create a new version in JIRA</a></li>
          <li><a href="#triage-release-blocking-issues-in-jira" id="markdown-toc-triage-release-blocking-issues-in-jira">Triage release-blocking issues in JIRA</a></li>
          <li><a href="#review-release-notes-in-jira" id="markdown-toc-review-release-notes-in-jira">Review Release Notes in JIRA</a></li>
          <li><a href="#create-a-release-branch" id="markdown-toc-create-a-release-branch">Create a release branch</a></li>
          <li><a href="#checklist-to-proceed-to-the-next-step-1" id="markdown-toc-checklist-to-proceed-to-the-next-step-1">Checklist to proceed to the next step</a></li>
        </ul>
      </li>
      <li><a href="#build-a-release-candidate" id="markdown-toc-build-a-release-candidate">Build a release candidate</a>        <ul>
          <li><a href="#build-and-stage-java-artifacts-with-maven" id="markdown-toc-build-and-stage-java-artifacts-with-maven">Build and stage Java artifacts with Maven</a></li>
          <li><a href="#stage-source-release-on-distapacheorg" id="markdown-toc-stage-source-release-on-distapacheorg">Stage source release on dist.apache.org</a></li>
          <li><a href="#build-the-api-reference" id="markdown-toc-build-the-api-reference">Build the API reference</a></li>
          <li><a href="#propose-a-pull-request-for-website-updates" id="markdown-toc-propose-a-pull-request-for-website-updates">Propose a pull request for website updates</a></li>
          <li><a href="#checklist-to-proceed-to-the-next-step-2" id="markdown-toc-checklist-to-proceed-to-the-next-step-2">Checklist to proceed to the next step</a></li>
        </ul>
      </li>
      <li><a href="#vote-on-the-release-candidate" id="markdown-toc-vote-on-the-release-candidate">Vote on the release candidate</a>        <ul>
          <li><a href="#checklist-to-proceed-to-the-finalization-step" id="markdown-toc-checklist-to-proceed-to-the-finalization-step">Checklist to proceed to the finalization step</a></li>
        </ul>
      </li>
      <li><a href="#fix-any-issues" id="markdown-toc-fix-any-issues">Fix any issues</a>        <ul>
          <li><a href="#checklist-to-proceed-to-the-next-step-3" id="markdown-toc-checklist-to-proceed-to-the-next-step-3">Checklist to proceed to the next step</a></li>
        </ul>
      </li>
      <li><a href="#finalize-the-release" id="markdown-toc-finalize-the-release">Finalize the release</a>        <ul>
          <li><a href="#deploy-artifacts-to-maven-central-repository" id="markdown-toc-deploy-artifacts-to-maven-central-repository">Deploy artifacts to Maven Central Repository</a>            <ul>
              <li><a href="#deploy-source-release-to-distapacheorg" id="markdown-toc-deploy-source-release-to-distapacheorg">Deploy source release to dist.apache.org</a></li>
            </ul>
          </li>
          <li><a href="#git-tag" id="markdown-toc-git-tag">Git tag</a></li>
          <li><a href="#merge-website-pull-request" id="markdown-toc-merge-website-pull-request">Merge website pull request</a></li>
          <li><a href="#mark-the-version-as-released-in-jira" id="markdown-toc-mark-the-version-as-released-in-jira">Mark the version as released in JIRA</a></li>
          <li><a href="#checklist-to-proceed-to-the-next-step-4" id="markdown-toc-checklist-to-proceed-to-the-next-step-4">Checklist to proceed to the next step</a></li>
        </ul>
      </li>
      <li><a href="#promote-the-release" id="markdown-toc-promote-the-release">Promote the release</a>        <ul>
          <li><a href="#apache-mailing-lists" id="markdown-toc-apache-mailing-lists">Apache mailing lists</a></li>
          <li><a href="#asf-press-release" id="markdown-toc-asf-press-release">ASF press release</a></li>
          <li><a href="#distributedlog-blog" id="markdown-toc-distributedlog-blog">DistributedLog blog</a></li>
          <li><a href="#social-media" id="markdown-toc-social-media">Social media</a></li>
          <li><a href="#checklist-to-declare-the-process-completed" id="markdown-toc-checklist-to-declare-the-process-completed">Checklist to declare the process completed</a></li>
        </ul>
      </li>
      <li><a href="#improve-the-process" id="markdown-toc-improve-the-process">Improve the process</a></li>
    </ul>
  </li>
</ul>

<p>This page documents the procedure to make an Apache DistributedLog release. Credit to the <a href="http://beam.apache.org/contribute/release-guide/">Beam</a> project. We’ve borrow liberally from their documentation.</p>

<h2 id="introduction">Introduction</h2>

<p>The Apache DistributedLog project periodically declares and publishes releases. A release is one or more packages of the project artifact(s) that are approved for general public distribution and use. They may come with various degrees of caveat regarding their perceived quality and potential for change, such as “alpha”, “beta”, “incubating”, “stable”, etc.</p>

<p>The DistributedLog community treats releases with great importance. They are a public face of the project and most users interact with the project only through the releases. Releases are signed off by the entire DistributedLog community in a public vote.</p>

<p>Each release is executed by a <em>Release Manager</em>, who is selected among the <a href="/community/team">DistributedLog committers</a>. This document describes the process that the Release Manager follows to perform a release. Any changes to this process should be discussed and adopted on the <a href="/community/#mailing-lists">dev@ mailing list</a>.</p>

<p>Please remember that publishing software has legal consequences. This guide complements the foundation-wide <a href="http://www.apache.org/dev/release.html">Product Release Policy</a> and <a href="http://www.apache.org/dev/release-distribution">Release Distribution Policy</a>.</p>

<h2 id="overview">Overview</h2>

<p><img src="/images/release-guide-1.png" alt="Alt text" title="Release Process" width="100%" /></p>

<p>The release process consists of several steps:</p>

<ol>
  <li>Decide to release</li>
  <li>Prepare for the release</li>
  <li>Build a release candidate</li>
  <li>Vote on the release candidate</li>
  <li>If necessary, fix any issues and go back to step 3.</li>
  <li>Finalize the release</li>
  <li>Promote the release</li>
</ol>

<hr />

<h2 id="decide-to-release">Decide to release</h2>

<p>Deciding to release and selecting a Release Manager is the first step of the release process. This is a consensus-based decision of the entire community.</p>

<p>Anybody can propose a release on the dev@ mailing list, giving a solid argument and nominating a committer as the Release Manager (including themselves). There’s no formal process, no vote requirements, and no timing requirements. Any objections should be resolved by consensus before starting the release.</p>

<p>In general, the community prefers to have a rotating set of 3-5 Release Managers. Keeping a small core set of managers allows enough people to build expertise in this area and improve processes over time, without Release Managers needing to re-learn the processes for each release. That said, if you are a committer interested in serving the community in this way, please reach out to the community on the dev@ mailing list.</p>

<h3 id="checklist-to-proceed-to-the-next-step">Checklist to proceed to the next step</h3>

<ol>
  <li>Community agrees to release</li>
  <li>Community selects a Release Manager</li>
</ol>

<hr />

<h2 id="prepare-for-the-release">Prepare for the release</h2>

<p>Before your first release, you should perform one-time configuration steps. This will set up your security keys for signing the release and access to various release repositories.</p>

<p>To prepare for each release, you should audit the project status in the JIRA issue tracker, and do necessary bookkeeping. Finally, you should create a release branch from which individual release candidates will be built.</p>

<h3 id="one-time-setup-instructions">One-time setup instructions</h3>

<h4 id="gpg-key">GPG Key</h4>

<p>You need to have a GPG key to sign the release artifacts. Please be aware of the ASF-wide <a href="https://www.apache.org/dev/release-signing.html">release signing guidelines</a>. If you don’t have a GPG key associated with your Apache account, please create one according to the guidelines.</p>

<p>Determine your Apache GPG Key and Key ID, as follows:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gpg --list-keys
</code></pre></div></div>

<p>This will list your GPG keys. One of these should reflect your Apache account, for example:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>--------------------------------------------------
pub   2048R/845E6689 2016-02-23
uid                  Nomen Nescio &lt;anonymous@apache.org&gt;
sub   2048R/BA4D50BE 2016-02-23
</code></pre></div></div>

<p>Here, the key ID is the 8-digit hex string in the <code class="highlighter-rouge">pub</code> line: <code class="highlighter-rouge">845E6689</code>.</p>

<p>Now, add your Apache GPG key to the DistributedLog’s <code class="highlighter-rouge">KEYS</code> file both in <a href="https://dist.apache.org/repos/dist/dev/bookkeeper/distributedlog/KEYS"><code class="highlighter-rouge">dev</code></a> and <a href="﻿https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/KEYS"><code class="highlighter-rouge">release</code></a> repositories at <code class="highlighter-rouge">dist.apache.org</code>. Follow the instructions listed at the top of these files.</p>

<p>Configure <code class="highlighter-rouge">git</code> to use this key when signing code by giving it your key ID, as follows:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git config --global user.signingkey 845E6689
</code></pre></div></div>

<p>You may drop the <code class="highlighter-rouge">--global</code> option if you’d prefer to use this key for the current repository only.</p>

<p>You may wish to start <code class="highlighter-rouge">gpg-agent</code> to unlock your GPG key only once using your passphrase. Otherwise, you may need to enter this passphrase hundreds of times. The setup for <code class="highlighter-rouge">gpg-agent</code> varies based on operating system, but may be something like this:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>eval $(gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info)
export GPG_TTY=$(tty)
export GPG_AGENT_INFO
</code></pre></div></div>

<h4 id="access-to-apache-nexus-repository">Access to Apache Nexus repository</h4>

<p>Configure access to the <a href="http://repository.apache.org/">Apache Nexus repository</a>, which enables final deployment of releases to the Maven Central Repository.</p>

<ol>
  <li>You log in with your Apache account.</li>
  <li>Confirm you have appropriate access by finding <code class="highlighter-rouge">org.apache.distributedlog</code> under <code class="highlighter-rouge">Staging Profiles</code>.</li>
  <li>Navigate to your <code class="highlighter-rouge">Profile</code> (top right dropdown menu of the page).</li>
  <li>Choose <code class="highlighter-rouge">User Token</code> from the dropdown, then click <code class="highlighter-rouge">Access User Token</code>. Copy a snippet of the Maven XML configuration block.</li>
  <li>
    <p>Insert this snippet twice into your global Maven <code class="highlighter-rouge">settings.xml</code> file, typically <code class="highlighter-rouge">${HOME}/.m2/settings.xml</code>. The end result should look like this, where <code class="highlighter-rouge">TOKEN_NAME</code> and <code class="highlighter-rouge">TOKEN_PASSWORD</code> are your secret tokens:</p>

    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code> &lt;settings&gt;
   &lt;servers&gt;
     &lt;server&gt;
       &lt;id&gt;apache.releases.https&lt;/id&gt;
       &lt;username&gt;TOKEN_NAME&lt;/username&gt;
       &lt;password&gt;TOKEN_PASSWORD&lt;/password&gt;
     &lt;/server&gt;
     &lt;server&gt;
       &lt;id&gt;apache.snapshots.https&lt;/id&gt;
       &lt;username&gt;TOKEN_NAME&lt;/username&gt;
       &lt;password&gt;TOKEN_PASSWORD&lt;/password&gt;
     &lt;/server&gt;
   &lt;/servers&gt;
 &lt;/settings&gt;
</code></pre></div>    </div>
  </li>
</ol>

<h4 id="website-development-setup">Website development setup</h4>

<p>Get ready for updating the DistributedLog website by following the <a href="/contribute/contribution-guide/#website">website development instructions</a>.</p>

<h3 id="create-a-new-version-in-jira">Create a new version in JIRA</h3>

<p>When contributors resolve an issue in JIRA, they are tagging it with a release that will contain their changes. With the release currently underway, new issues should be resolved against a subsequent future release. Therefore, you should create a release item for this subsequent release, as follows:</p>

<ol>
  <li>In JIRA, navigate to the <a href="https://issues.apache.org/jira/plugins/servlet/project-config/DL/versions"><code class="highlighter-rouge">DistributedLog &gt; Administration &gt; Versions</code></a>.</li>
  <li>Add a new release: choose the next minor version number compared to the one currently underway, select today’s date as the <code class="highlighter-rouge">Start Date</code>, and choose <code class="highlighter-rouge">Add</code>.</li>
</ol>

<h3 id="triage-release-blocking-issues-in-jira">Triage release-blocking issues in JIRA</h3>

<p>There could be outstanding release-blocking issues, which should be triaged before proceeding to build a release candidate. We track them by assigning a specific <code class="highlighter-rouge">Fix version</code> field even before the issue resolved.</p>

<p>The list of release-blocking issues is available at the <a href="https://issues.apache.org/jira/browse/DL/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel">version status page</a>. Triage each unresolved issue with one of the following resolutions:</p>

<ul>
  <li>If the issue has been resolved and JIRA was not updated, resolve it accordingly.</li>
  <li>If the issue has not been resolved and it is acceptable to defer this until the next release, update the <code class="highlighter-rouge">Fix Version</code> field to the new version you just created. Please consider discussing this with stakeholders and the dev@ mailing list, as appropriate.</li>
  <li>If the issue has not been resolved and it is not acceptable to release until it is fixed, the release cannot proceed. Instead, work with the DistributedLog community to resolve the issue.</li>
</ul>

<h3 id="review-release-notes-in-jira">Review Release Notes in JIRA</h3>

<p>JIRA automatically generates Release Notes based on the <code class="highlighter-rouge">Fix Version</code> field applied to issues. Release Notes are intended for DistributedLog users (not DistributedLog committers/contributors). You should ensure that Release Notes are informative and useful.</p>

<p>Open the release notes from the <a href="https://issues.apache.org/jira/browse/DL/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel">version status page</a> by choosing the release underway and clicking Release Notes.</p>

<p>You should verify that the issues listed automatically by JIRA are appropriate to appear in the Release Notes. Specifically, issues should:</p>

<ul>
  <li>Be appropriately classified as <code class="highlighter-rouge">Bug</code>, <code class="highlighter-rouge">New Feature</code>, <code class="highlighter-rouge">Improvement</code>, etc.</li>
  <li>Represent noteworthy user-facing changes, such as new functionality, backward-incompatible API changes, or performance improvements.</li>
  <li>Have occurred since the previous release; an issue that was introduced and fixed between releases should not appear in the Release Notes.</li>
  <li>Have an issue title that makes sense when read on its own.</li>
</ul>

<p>Adjust any of the above properties to the improve clarity and presentation of the Release Notes.</p>

<h3 id="create-a-release-branch">Create a release branch</h3>

<p>Release candidates are built from a release branch. As a final step in preparation for the release, you should create the release branch, push it to the code repository, and update version information on the original branch.</p>

<p>Check out the version of the codebase from which you start the release. For a new minor or major release, this may be <code class="highlighter-rouge">HEAD</code> of the <code class="highlighter-rouge">master</code> branch. To build a hotfix/incremental release, instead of the <code class="highlighter-rouge">master</code> branch, use the release tag of the release being patched. (Please make sure your cloned repository is up-to-date before starting.)</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout &lt;master branch OR release tag&gt;
</code></pre></div></div>

<p>Set up a few environment variables to simplify Maven commands that follow. (We use <code class="highlighter-rouge">bash</code> Unix syntax in this guide.)</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>VERSION="0.4.0-incubating"
NEXT_VERSION="0.5.0"
BRANCH_NAME="release-${VERSION}"
DEVELOPMENT_VERSION="${NEXT_VERSION}-SNAPSHOT"
</code></pre></div></div>

<p>Version represents the release currently underway, while next version specifies the anticipated next version to be released from that branch. Normally, 0.4.0 is followed by 0.5.0, while 0.4.0 is followed by 0.4.1.</p>

<p>Use Maven release plugin to create the release branch and update the current branch to use the new development version. This command applies for the new major or minor version. (Warning: this command automatically pushes changes to the code repository.)</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mvn release:branch \
    -DbranchName=${BRANCH_NAME} \
    -DdevelopmentVersion=${DEVELOPMENT_VERSION}
</code></pre></div></div>

<p>However, if you are doing an incremental/hotfix release, please run the following command after checking out the release tag of the release being patched.</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mvn release:branch \
    -DbranchName=${BRANCH_NAME} \
    -DupdateWorkingCopyVersions=false \
    -DupdateBranchVersions=true \
    -DreleaseVersion="${VERSION}-SNAPSHOT"
</code></pre></div></div>

<p>Check out the release branch.</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout ${BRANCH_NAME}
</code></pre></div></div>

<p>The rest of this guide assumes that commands are run in the root of a repository on <code class="highlighter-rouge">${BRANCH_NAME}</code> with the above environment variables set.</p>

<h3 id="checklist-to-proceed-to-the-next-step-1">Checklist to proceed to the next step</h3>

<ol>
  <li>Release Manager’s GPG key is published to <code class="highlighter-rouge">dist.apache.org</code></li>
  <li>Release Manager’s GPG key is configured in <code class="highlighter-rouge">git</code> configuration</li>
  <li>Release Manager has <code class="highlighter-rouge">org.apache.distributedlog</code> listed under <code class="highlighter-rouge">Staging Profiles</code> in Nexus</li>
  <li>Release Manager’s Nexus User Token is configured in <code class="highlighter-rouge">settings.xml</code></li>
  <li>JIRA release item for the subsequent release has been created</li>
  <li>There are no release blocking JIRA issues</li>
  <li>Release Notes in JIRA have been audited and adjusted</li>
  <li>Release branch has been created</li>
  <li>Originating branch has the version information updated to the new version</li>
</ol>

<hr />

<h2 id="build-a-release-candidate">Build a release candidate</h2>

<p>The core of the release process is the build-vote-fix cycle. Each cycle produces one release candidate. The Release Manager repeats this cycle until the community approves one release candidate, which is then finalized.</p>

<h3 id="build-and-stage-java-artifacts-with-maven">Build and stage Java artifacts with Maven</h3>

<p>Set up a few environment variables to simplify Maven commands that follow. This identifies the release candidate being built. Start with <code class="highlighter-rouge">RC_NUM</code> equal to <code class="highlighter-rouge">1</code> and increment it for each candidate.</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RC_NUM="1"
TAG="v${VERSION}-RC${RC_NUM}"
</code></pre></div></div>

<p>Use Maven release plugin to build the release artifacts, as follows:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mvn release:prepare \
    -Dresume=false \
    -DreleaseVersion=${VERSION} \
    -Dtag=${TAG} \
    -DupdateWorkingCopyVersions=false
</code></pre></div></div>

<p>Use Maven release plugin to stage these artifacts on the Apache Nexus repository, as follows:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mvn release:perform
</code></pre></div></div>

<p>Review all staged artifacts. They should contain all relevant parts for each module, including <code class="highlighter-rouge">pom.xml</code>, jar, test jar, source, test source, javadoc, etc. Artifact names should follow <a href="https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.distributedlog%22">the existing format</a> in which artifact name mirrors directory structure, e.g., <code class="highlighter-rouge">distributedlog-core</code>. Carefully review any new artifacts.</p>

<p>Close the staging repository on Apache Nexus. When prompted for a description, enter “Apache DistributedLog, version X, release candidate Y”.</p>

<h3 id="stage-source-release-on-distapacheorg">Stage source release on dist.apache.org</h3>

<p>Copy the source release to the dev repository of <code class="highlighter-rouge">dist.apache.org</code>.</p>

<ol>
  <li>
    <p>If you have not already, check out the DistributedLog section of the <code class="highlighter-rouge">dev</code> repository on <code class="highlighter-rouge">dist.apache.org</code> via Subversion. In a fresh directory:</p>

    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code> svn co https://dist.apache.org/repos/dist/dev/bookkeeper/distributedlog
</code></pre></div>    </div>
  </li>
  <li>
    <p>Make a directory for the new release:</p>

    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code> mkdir distributedlog/${VERSION}
</code></pre></div>    </div>
  </li>
  <li>
    <p>Copy and rename the DistributedLog source distribution, hashes, and GPG signature:</p>

    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code> cp ${DL_ROOT}/target/distributedlog-${VERSION}-src.tar.gz distributedlog/${VERSION}/distributedlog-${VERSION}-src.tar.gz
 cp ${DL_ROOT}/target/distributedlog-${VERSION}-src.tar.gz.asc distributedlog/${VERSION}/distributedlog-${VERSION}-src.tar.gz.asc
 cp ${DL_ROOT}/target/distributedlog-${VERSION}-src.tar.gz.md5 distributedlog/${VERSION}/distributedlog-${VERSION}-src.tar.gz.md5
 cp ${DL_ROOT}/target/distributedlog-${VERSION}-src.tar.gz.sha1 distributedlog/${VERSION}/distributedlog-${VERSION}-src.tar.gz.sha1
 cp ${DL_ROOT}/distributedlog-benchmark/target/distributedlog-benchmark-${VERSION}-bin.tar.gz distributedlog/${VERSION}/distributedlog-benchmark-${VERSION}-bin.tar.gz
 cp ${DL_ROOT}/distributedlog-benchmark/target/distributedlog-benchmark-${VERSION}-bin.tar.gz.asc distributedlog/${VERSION}/distributedlog-benchmark-${VERSION}-bin.tar.gz.asc
 cp ${DL_ROOT}/distributedlog-benchmark/target/distributedlog-benchmark-${VERSION}-bin.tar.gz.md5 distributedlog/${VERSION}/distributedlog-benchmark-${VERSION}-bin.tar.gz.md5
 cp ${DL_ROOT}/distributedlog-benchmark/target/distributedlog-benchmark-${VERSION}-bin.tar.gz.sha1 distributedlog/${VERSION}/distributedlog-benchmark-${VERSION}-bin.tar.gz.sha1
 cp ${DL_ROOT}/distributedlog-service/target/distributedlog-service-${VERSION}-bin.tar.gz distributedlog/${VERSION}/distributedlog-service-${VERSION}-bin.tar.gz
 cp ${DL_ROOT}/distributedlog-service/target/distributedlog-service-${VERSION}-bin.tar.gz.asc distributedlog/${VERSION}/distributedlog-service-${VERSION}-bin.tar.gz.asc
 cp ${DL_ROOT}/distributedlog-service/target/distributedlog-service-${VERSION}-bin.tar.gz.md5 distributedlog/${VERSION}/distributedlog-service-${VERSION}-bin.tar.gz.md5
 cp ${DL_ROOT}/distributedlog-service/target/distributedlog-service-${VERSION}-bin.tar.gz.sha1 distributedlog/${VERSION}/distributedlog-service-${VERSION}-bin.tar.gz.sha1
</code></pre></div>    </div>
  </li>
  <li>
    <p>Add and commit all the files.</p>

    <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code> svn add distributedlog/${VERSION}
 svn commit
</code></pre></div>    </div>
  </li>
  <li>
    <p>Verify that files are <a href="https://dist.apache.org/repos/dist/dev/bookkeeper/distributedlog">present</a>.</p>
  </li>
</ol>

<h3 id="build-the-api-reference">Build the API reference</h3>

<p>DistributedLog publishes API reference manual for each release on the website. For Java SDK, that’s Javadoc.</p>

<p>Check out release candidate, as follows:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout ${TAG}
</code></pre></div></div>

<p>Use Maven Javadoc plugin to generate the new Java reference manual, as follows:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mvn -DskipTests clean package javadoc:aggregate \
    -Ddoctitle="Apache DistributedLog Library for Java, version ${VERSION}" \
    -Dwindowtitle="Apache DistributedLog Library for Java, version ${VERSION}" \
    -Dmaven.javadoc.failOnError=false
</code></pre></div></div>

<p>By default, the Javadoc will be generated in <code class="highlighter-rouge">target/site/apidocs/</code>. Let <code class="highlighter-rouge">${JAVADOC_ROOT}</code> be the absolute path to <code class="highlighter-rouge">apidocs</code>. (<a href="https://github.com/apache/distributedlog/pull/1015">Pull request #1015</a> will hopefully simplify this process.)</p>

<p>Please carefully review the generated Javadoc. Check for completeness and presence of all relevant packages and <code class="highlighter-rouge">package-info.java</code>; consider adding less relevant packages to the <code class="highlighter-rouge">excludePackageNames</code> configuration. The index page is generated at <code class="highlighter-rouge">${JAVADOC_ROOT}/index.html</code>.</p>

<p>Checkout the <code class="highlighter-rouge">asf-site</code> branch, as follows:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git checkout asf-site
</code></pre></div></div>

<p>Copy the generated javadoc files to the asf site, as follows:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>mkdir -p content/docs/${VERSION}/api/java 
cp -r target/site/apidocs/* content/docs/${VERSION}/api/java/
</code></pre></div></div>

<h3 id="propose-a-pull-request-for-website-updates">Propose a pull request for website updates</h3>

<p>The final step of building the candidate is to propose a website pull request.</p>

<p>Follow the <a href="https://github.com/apache/distributedlog/pull/109">example pull request</a> to make the modifications.</p>

<p>Finally, propose a pull request with these changes. (Don’t merge before finalizing the release.)</p>

<h3 id="checklist-to-proceed-to-the-next-step-2">Checklist to proceed to the next step</h3>

<ol>
  <li>Maven artifacts deployed to the staging repository of <a href="https://repository.apache.org/content/repositories/">repository.apache.org</a></li>
  <li>Source distribution deployed to the dev repository of <a href="https://dist.apache.org/repos/dist/dev/bookkeeper/distributedlog/">dist.apache.org</a></li>
  <li>Website pull request proposed to list the <a href="/use/releases/">release</a> and publish the <a href="/user/api/core/javadoc/">API reference manual</a></li>
</ol>

<hr />

<h2 id="vote-on-the-release-candidate">Vote on the release candidate</h2>

<p>Once you have built and individually reviewed the release candidate, please share it for the community-wide review. Please review foundation-wide <a href="http://www.apache.org/foundation/voting.html">voting guidelines</a> for more information.</p>

<p>Start the review-and-vote thread on the dev@ mailing list. Here’s an email template; please adjust as you see fit.</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>From: Release Manager
To: distributedlog-dev@bookkeeper.apache.org
Subject: [VOTE] Release 0.4.0, release candidate #0

Hi everyone,
Please review and vote on the release candidate #0 for the version 0.4.0, as follows:
[ ] +1, Approve the release
[ ] -1, Do not approve the release (please provide specific comments)


The complete staging area is available for your review, which includes:
* JIRA release notes [1],
* the official Apache source release to be deployed to dist.apache.org [2],
* all artifacts to be deployed to the Maven Central Repository [3],
* source code tag "v0.4.0-RC0" [4],
* website pull request listing the release and publishing the API reference manual [5].

The vote will be open for at least 72 hours. It is adopted by majority approval, with at least 3 PPMC affirmative votes.

Thanks,
Release Manager

[1] link
[2] link
[3] link
[4] link
[5] link
</code></pre></div></div>

<p>If there are any issues found in the release candidate, reply on the vote thread to cancel the vote. There’s no need to wait 72 hours. Proceed to the <code class="highlighter-rouge">Fix Issues</code> step below and address the problem. However, some issues don’t require cancellation. For example, if an issue is found in the website pull request, just correct it on the spot and the vote can continue as-is.</p>

<p>If there are no issues, reply on the vote thread to close the voting. Then, tally the votes in a separate email. Here’s an email template; please adjust as you see fit.</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>From: Release Manager
To: distributedlog-dev@bookkeeper.apache.org
Subject: [RESULT] [VOTE] Release 0.4.0, release candidate #0

I'm happy to announce that we have unanimously approved this release.

There are XXX approving votes, XXX of which are binding:
* approver 1
* approver 2
* approver 3
* approver 4

There are no disapproving votes.

Thanks everyone!
</code></pre></div></div>

<h3 id="checklist-to-proceed-to-the-finalization-step">Checklist to proceed to the finalization step</h3>

<ol>
  <li>Community votes to release the proposed candidate</li>
</ol>

<hr />

<h2 id="fix-any-issues">Fix any issues</h2>

<p>Any issues identified during the community review and vote should be fixed in this step.</p>

<p>Code changes should be proposed as standard pull requests to the <code class="highlighter-rouge">master</code> branch and reviewed using the normal contributing process. Then, relevant changes should be cherry-picked into the release branch. The cherry-pick commits should then be proposed as the pull requests against the release branch, again reviewed and merged using the normal contributing process.</p>

<p>Once all issues have been resolved, you should go back and build a new release candidate with these changes.</p>

<h3 id="checklist-to-proceed-to-the-next-step-3">Checklist to proceed to the next step</h3>

<ol>
  <li>Issues identified during vote have been resolved, with fixes committed to the release branch.</li>
</ol>

<hr />

<h2 id="finalize-the-release">Finalize the release</h2>

<p>Once the release candidate has been reviewed and approved by the community, the release should be finalized. This involves the final deployment of the release candidate to the release repositories, merging of the website changes, etc.</p>

<h3 id="deploy-artifacts-to-maven-central-repository">Deploy artifacts to Maven Central Repository</h3>

<p>Use the Apache Nexus repository to release the staged binary artifacts to the Maven Central repository. In the <code class="highlighter-rouge">Staging Repositories</code> section, find the relevant release candidate <code class="highlighter-rouge">orgapachedistributedlog-XXX</code> entry and click <code class="highlighter-rouge">Release</code>. Drop all other release candidates that are not being released.</p>

<h4 id="deploy-source-release-to-distapacheorg">Deploy source release to dist.apache.org</h4>

<p>Copy the source release from the <code class="highlighter-rouge">dev</code> repository to the <code class="highlighter-rouge">release</code> repository at <code class="highlighter-rouge">dist.apache.org</code> using Subversion.</p>

<h3 id="git-tag">Git tag</h3>

<p>Create a new Git tag for the released version by copying the tag for the final release candidate, as follows:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git tag -s “v${VERSION}” ${TAG}
</code></pre></div></div>

<h3 id="merge-website-pull-request">Merge website pull request</h3>

<p>Merge the website pull request to <a href="/use/releases/">list the release</a> and publish the <a href="/learn/sdks/javadoc/">API reference manual</a> created earlier.</p>

<h3 id="mark-the-version-as-released-in-jira">Mark the version as released in JIRA</h3>

<p>In JIRA, inside <a href="https://issues.apache.org/jira/plugins/servlet/project-config/DL/versions">version management</a>, hover over the current release and a settings menu will appear. Click <code class="highlighter-rouge">Release</code>, and select today’s date.</p>

<h3 id="checklist-to-proceed-to-the-next-step-4">Checklist to proceed to the next step</h3>

<ul>
  <li>Maven artifacts released and indexed in the <a href="https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.distributedlog%22">Maven Central Repository</a></li>
  <li>Source distribution available in the release repository of <a href="https://dist.apache.org/repos/dist/release/bookkeeper/distributedlog/">dist.apache.org</a></li>
  <li>Website pull request to <a href="/use/releases/">list the release</a> and publish the <a href="/learn/sdks/javadoc/">API reference manual</a> merged</li>
  <li>Release tagged in the source code repository</li>
  <li>Release version finalized in JIRA</li>
</ul>

<hr />

<h2 id="promote-the-release">Promote the release</h2>

<p>Once the release has been finalized, the last step of the process is to promote the release within the project and beyond.</p>

<h3 id="apache-mailing-lists">Apache mailing lists</h3>

<p>Announce on the dev@ mailing list that the release has been finished.</p>

<p>Announce on the release on the user@ mailing list, listing major improvements and contributions.</p>

<h3 id="asf-press-release">ASF press release</h3>

<p>Use reporter.apache.org to promote the release.</p>

<h3 id="distributedlog-blog">DistributedLog blog</h3>

<p>Major or otherwise important releases should have a blog post. Write one if needed for this particular release. Minor releases that don’t introduce new major functionality don’t necessarily need to be blogged.</p>

<h3 id="social-media">Social media</h3>

<p>Tweet, post on Facebook, LinkedIn, and other platforms. Ask other contributors to do the same.</p>

<h3 id="checklist-to-declare-the-process-completed">Checklist to declare the process completed</h3>

<ol>
  <li>Release announced on the user@ mailing list.</li>
  <li>Blog post published, if applicable.</li>
  <li>Apache Software Foundation press release published.</li>
  <li>Release announced on social media.</li>
  <li>Completion declared on the dev@ mailing list.</li>
</ol>

<hr />

<h2 id="improve-the-process">Improve the process</h2>

<p>It is important that we improve the release processes over time. Once you’ve finished the release, please take a step back and look what areas of this process and be improved. Perhaps some part of the process can be simplified. Perhaps parts of this guide can be clarified.</p>

<p>If we have specific ideas, please start a discussion on the dev@ mailing list and/or propose a pull request to update this guide. Thanks!</p>

      </div>


    <hr>
  <div class="row">
      <div class="col-xs-12">
          <footer>
              <p class="text-center">&copy; Copyright 2016
                  <a href="http://www.apache.org">The Apache Software Foundation.</a> All Rights Reserved.
              </p>
              <p class="text-center">
                  <a href="/feed.xml">RSS Feed</a>
              </p>
          </footer>
      </div>
  </div>
  <!-- container div end -->
</div>


  </body>

</html>
