<!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="/distributedlog/styles/site.css">
  <link rel="stylesheet" href="/distributedlog/css/theme.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
  <script src="/distributedlog/js/bootstrap.min.js"></script>
  <link rel="canonical" href="http://bookkeeper.apache.org/distributedlog/community/release-guide/" data-proofer-ignore>
  <link rel="alternate" type="application/rss+xml" title="Apache DistributedLog" href="http://bookkeeper.apache.org/distributedlog/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="/distributedlog" class="navbar-brand" >
        <img alt="Brand" style="height: 28px" src="/distributedlog/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="/distributedlog/docs/latest/basics/introduction">Overview</a></li>
        <!-- Downloads -->
        <li><a href="/distributedlog/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="/distributedlog/docs/latest/start/quickstart">Setup & Run Example</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Tutorials</li>
            <li>
              <a href="/distributedlog/docs/latest/tutorials/main#id3">
              <small><span class="glyphicon glyphicon-pencil"></span></small>
              Basic
              </a>
            </li>
            <li>
              <a href="/distributedlog/docs/latest/tutorials/main#id4">
              <small><span class="glyphicon glyphicon-envelope"></span></small>
              Messaging
              </a>
            </li>
            <li>
              <a href="/distributedlog/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="/distributedlog/docs/latest">0.6.0-SNAPSHOT</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Releases</li>
            <li><a href="/distributedlog/docs/0.5.0">0.5.0</a></li>
            <li><a href="/distributedlog/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="/distributedlog/faq">FAQ</a></li>
      </ul>
      <!-- Right Side -->
      <ul class="nav navbar-nav navbar-right">
        <!-- Blog -->
        <li><a href="/distributedlog/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="/distributedlog/community/#mailing-lists">Mailing Lists</a></li>
            <li><a href="/distributedlog/community/#source-code">Source Code</a></li>
            <li><a href="/distributedlog/community/#issue-tracker">Issue Tracking</a></li>
            <li><a href="/distributedlog/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="/distributedlog/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="/distributedlog/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="/distributedlog/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="/distributedlog/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="/distributedlog/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"><pre class="highlight"><code>gpg --list-keys
</code></pre>
</div>

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

<div class="highlighter-rouge"><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>

<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"><pre class="highlight"><code>git config --global user.signingkey 845E6689
</code></pre>
</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"><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>

<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"><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>
  </li>
</ol>

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

<p>Get ready for updating the DistributedLog website by following the <a href="/distributedlog/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"><pre class="highlight"><code>git checkout &lt;master branch OR release tag&gt;
</code></pre>
</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"><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>

<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"><pre class="highlight"><code>mvn release:branch \
    -DbranchName=${BRANCH_NAME} \
    -DdevelopmentVersion=${DEVELOPMENT_VERSION}
</code></pre>
</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"><pre class="highlight"><code>mvn release:branch \
    -DbranchName=${BRANCH_NAME} \
    -DupdateWorkingCopyVersions=false \
    -DupdateBranchVersions=true \
    -DreleaseVersion="${VERSION}-SNAPSHOT"
</code></pre>
</div>

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

<div class="highlighter-rouge"><pre class="highlight"><code>git checkout ${BRANCH_NAME}
</code></pre>
</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"><pre class="highlight"><code>RC_NUM="1"
TAG="v${VERSION}-RC${RC_NUM}"
</code></pre>
</div>

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

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

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

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

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

    <div class="highlighter-rouge"><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>
  </li>
  <li>
    <p>Add and commit all the files.</p>

    <div class="highlighter-rouge"><pre class="highlight"><code> svn add distributedlog/${VERSION}
 svn commit
</code></pre>
    </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"><pre class="highlight"><code>git checkout ${TAG}
</code></pre>
</div>

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

<div class="highlighter-rouge"><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>

<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"><pre class="highlight"><code>git checkout asf-site
</code></pre>
</div>

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

<div class="highlighter-rouge"><pre class="highlight"><code>mkdir -p content/docs/${VERSION}/api/java 
cp -r target/site/apidocs/* content/docs/${VERSION}/api/java/
</code></pre>
</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="/distributedlog/use/releases/">release</a> and publish the <a href="/distributedlog/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"><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>

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

<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"><pre class="highlight"><code>git tag -s “v${VERSION}” ${TAG}
</code></pre>
</div>

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

<p>Merge the website pull request to <a href="/distributedlog/use/releases/">list the release</a> and publish the <a href="/distributedlog/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="/distributedlog/use/releases/">list the release</a> and publish the <a href="/distributedlog/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="/distributedlog/feed.xml">RSS Feed</a>
              </p>
          </footer>
      </div>
  </div>
  <!-- container div end -->
</div>


  </body>

</html>
