<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">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="Apex is an enterprise grade native YARN big data-in-motion platform that unifies stream processing as well as batch processing.">
    <meta name="author" content="Apache Software Foundation">
    <link rel="icon" href="favicon.ico">

    <title>Apache Apex</title>

    <!-- Main Stylesheet -->
    <link href="css/main.css" rel="stylesheet">

    <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-85540278-1', 'auto');
      ga('send', 'pageview');
    </script>
    
  </head>

  <body>
    <nav class="navbar navbar-default navbar-static-top" id="main-nav">
      <div class="container">

      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="/">
          <img src="images/apex-logo.svg" class="logo" alt="Apache Apex Logo">
          Apache Apex<span class="trademark">&trade;</span>
        </a>
      </div>

      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-right navbar-nav">
          <li class="nav-item">
            <a class="nav-link " href="/">Home</a>
          </li>
          <li class="nav-item">
            <a class="nav-link " href="/docs.html">Documentation</a>
          </li>
          <li class="nav-item">
            <a class="nav-link " href="/powered-by-apex.html">Powered By Apex</a>
          </li>
          <li class="nav-item">
            <a class="nav-link " href="/roadmap.html">Roadmap</a>
          </li>

            <li class="nav-item nav-mouseover">
              <ul class="dropdown-menu">
                <li class=""><a href="/community.html#mailing-lists">Mailing Lists</a></li>
                <li class=""><a href="/community.html#issue-tracking">Issue Tracking</a></li>
                <li class=""><a href="http://stackoverflow.com/questions/tagged/apache-apex">Stack Overflow</a></li>
                <li class=""><a href="/community.html#events">Events</a></li>
                <li class=""><a href="/community.html#contributing">Contributing</a></li>
                <li class=""><a href="http://www.apache.org/foundation/how-it-works.html">Apache Foundation</a></li>
              </ul>
              <a href="/community.html" class="nav-link">Community</a>
            </li>
          

            <li class="nav-item nav-mouseover">
              <ul class="dropdown-menu">
                <li class=""><a href="https://github.com/apache/apex-core">Apex Core</a></li>
                <li class=""><a href="https://github.com/apache/apex-malhar">Apex Malhar</a></li>
                <li class=""><a href="https://github.com/apache/apex-site">Apex Site</a></li>
              </ul>
              <a href="https://github.com/apache/apex-core" class="nav-link">Github</a>
            </li>
          
          <li class="nav-item">
            <a class="nav-link btn btn-success btn-download" href="/downloads.html">Download</a>
          </li>
        </ul>
        
      </div>
    </nav>

<div class="container">
  
  <h1 id="how-to-release-apache-apex">How to release Apache Apex</h1>
<p>For general information on ASF releases, see: <a href="http://www.apache.org/dev/release.html">http://www.apache.org/dev/release.html</a></p>
<h2 id="creating-release-branch">Creating Release Branch</h2>
<p>If this is a minor release (X.Y.0), start with creating a new branch. Example for 3.4.0:</p>
<pre><code class="lang-bash">git checkout master &amp;&amp; git pull
git checkout -b release-3.4 master
git push apache release-3.4
</code></pre>
<p>Replace version in master branch:</p>
<pre><code>git checkout master
git grep -l &quot;3.4.0-SNAPSHOT&quot;
</code></pre><p>For informational purpose, this should yield the list of files that needs the version number replaced to X.(Y+1).0 next version. Note that the replacement step is different between the repositories due to an open issue. See:</p>
<p><a href="https://issues.apache.org/jira/browse/APEXCORE-34">https://issues.apache.org/jira/browse/APEXCORE-34</a></p>
<p>For -core:</p>
<pre><code class="lang-bash">dv=3.4.0-SNAPSHOT
rv=3.5.0-SNAPSHOT
for a in `git grep -l &quot;${dv}&quot;`; do echo $a; sed -i &#39;s/&#39;&quot;${dv}&quot;&#39;/&#39;&quot;${rv}&quot;&#39;/g&#39; $a; done
</code></pre>
<p>For -malhar:</p>
<pre><code>mvn versions:set -DnewVersion=${rv} -Pall-modules
</code></pre><p>Commit and push the change:</p>
<pre><code>git commit --author &quot;Apex Dev &lt;dev@apex.apache.org&gt;&quot; -am &quot;Preparing for 3.5.0 development&quot;
git push apache master
</code></pre><h2 id="preparing-release-candidate">Preparing Release Candidate</h2>
<pre><code>git checkout release-3.4
</code></pre><h3 id="add-missing-since-tags">Add missing @since tags</h3>
<p>For Java classes added since the last release, the @since tags need to be added. The javadoc plugin inserts missing tags, but does not play well with the license header when no class level documentation block is present. This is tracked as</p>
<p><a href="https://issues.apache.org/jira/browse/APEXCORE-183">https://issues.apache.org/jira/browse/APEXCORE-183</a></p>
<p>It also removes the custom @tags doclet tag when the existing JavaDoc is malformed, <strong>do not use this to make changes in Malhar</strong>. Until these problems are resolved, use the following Ruby script to do the replacement: <a href="https://issues.apache.org/jira/secure/attachment/12781158/add-since.rb">https://issues.apache.org/jira/secure/attachment/12781158/add-since.rb</a></p>
<pre><code>ruby ~/add-since.rb `pwd` -s 3.4.0
</code></pre><h3 id="update-changelog-from-jira">Update CHANGELOG from JIRA</h3>
<p>Navigate to the unreleased version, example:</p>
<p><a href="https://issues.apache.org/jira/browse/APEXMALHAR/fixforversion/12334589">https://issues.apache.org/jira/browse/APEXMALHAR/fixforversion/12334589</a></p>
<p>Obtain the release notes (text mode):</p>
<p><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12334589&amp;styleName=Text&amp;projectId=12318824">https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12334589&amp;styleName=Text&amp;projectId=12318824</a></p>
<p>Shorten any wrapping and overly long titles to fit width.  Copy the report and insert new release section into <code>CHANGELOG.md</code> with the release date set to 72 hours ahead to reflect the time for the vote.</p>
<p>Create shortlink for the JIRA release notes on <a href="http://s.apache.org/">http://s.apache.org/</a> for use in the VOTE thread. 
Example: <a href="http://s.apache.org/8uT">http://s.apache.org/8uT</a></p>
<p>Commit tags and change log:</p>
<pre><code>git commit --author &quot;Apex Dev &lt;dev@apex.apache.org&gt;&quot; -am &quot;Add @since tags and update change log for release 3.4.0&quot;
</code></pre><h3 id="update-version-number-for-rc">Update version number for RC</h3>
<pre><code>dv=3.4.0-SNAPSHOT
rv=3.4.0
</code></pre><p>As mentioned earlier, use the following for -core releases:</p>
<pre><code>for a in `git grep -l &quot;${dv}&quot;`; do echo $a; sed -i &#39;s/&#39;&quot;${dv}&quot;&#39;/&#39;&quot;${rv}&quot;&#39;/g&#39; $a; done
</code></pre><p>And this for -malhar releases:</p>
<pre><code>mvn versions:set -Pall-modules -DnewVersion=${rv}
</code></pre><p>Commit version change:</p>
<pre><code>git commit --author &quot;Apex Dev &lt;dev@apex.apache.org&gt;&quot; -am &quot;Preparing to release ${rv}-RC1&quot;
git tag -a &quot;v${rv}-RC1&quot; -m &quot;Release ${rv}-RC1&quot;
</code></pre><p>Push to fork (as temporary branch), open pull request, wait for Travis CI build to succeed. Then push the tag.</p>
<pre><code>git push apache &quot;v${rv}-RC1&quot;
</code></pre><p>The only difference between release branch and tag are this final version number change and the change log commit. The branch stays at <code>-SNAPSHOT</code> version.</p>
<h2 id="build-and-deploy-release-candidate">Build and Deploy Release Candidate</h2>
<p>Prerequisites:</p>
<ul>
<li>GPG key needs to be in <a href="https://dist.apache.org/repos/dist/release/apex/KEYS">https://dist.apache.org/repos/dist/release/apex/KEYS</a></li>
<li>Credentials for <code>apache.staging.https</code> server distribution management in <code>~/.m2/settings.xml</code></li>
<li>Tag pushed to ASF git</li>
<li>The correct version of the JDK is installed and maven is using the right java version</li>
</ul>
<p>Build and deploy release candidate from RC tag:</p>
<pre><code>git checkout &quot;v${rv}-RC1&quot;
git clean -d -f
mvn clean apache-rat:check deploy -Papache-release -Pall-modules -DskipTests
</code></pre><p>Some recent versions of the GPG might result in the following error message when the above maven deploy command is invoked.</p>
<pre><code>gpg: signing failed: Inappropriate ioctl for device
</code></pre><p>Setting the GPG terminal fixes this. GPG terminal can be set using </p>
<pre><code>GPG_TTY=$(tty)
export GPG_TTY
</code></pre><p>Confirm no archives are included in source release (rat:check reports them in target/rat.txt but does not fail the build):</p>
<pre><code>unzip -l target/*-source-release.zip | grep -e &quot;.zip\|.jar&quot;
</code></pre><p>Log on to <a href="https://repository.apache.org">https://repository.apache.org</a> and look for Staging Repositories. &quot;Close&quot; the newly created orgapacheapex-xxxx staging repository to obtain the temporary URL, note it down for the VOTE thread.</p>
<p>Example URL: <a href="https://repository.apache.org/content/repositories/orgapacheapex-1000/">https://repository.apache.org/content/repositories/orgapacheapex-1000/</a></p>
<p>Copy files to distribution dir and create signatures and checksums. 
(Note this is per policy to stage these files outside of the Maven repository, otherwise everything below would happen automatically as defined in the parent POM.)</p>
<p>For -core releases:</p>
<pre><code>RNAME=apache-apex-core-${rv}
</code></pre><p>For -malhar releases:</p>
<pre><code>RNAME=apache-apex-malhar-${rv}
</code></pre><pre><code class="lang-bash">cd target
md5sum ${RNAME}-source-release.tar.gz &gt; ${RNAME}-source-release.tar.gz.md5
md5sum ${RNAME}-source-release.zip &gt; ${RNAME}-source-release.zip.md5
shasum -a 512 ${RNAME}-source-release.tar.gz &gt; ${RNAME}-source-release.tar.gz.sha512
shasum -a 512 ${RNAME}-source-release.zip &gt; ${RNAME}-source-release.zip.sha512
gpg --yes --armor --output ${RNAME}-source-release.tar.gz.asc --detach-sig ${RNAME}-source-release.tar.gz
gpg --yes --armor --output ${RNAME}-source-release.zip.asc --detach-sig ${RNAME}-source-release.zip
</code></pre>
<p>Check files into the dist staging area:</p>
<pre><code class="lang-bash">mkdir svn-dist &amp;&amp; cp *-source-* svn-dist/
svn import svn-dist https://dist.apache.org/repos/dist/dev/apex/${RNAME}-RC1 -m &quot;Apache Apex v${rv}-RC1&quot;
</code></pre>
<h2 id="build-and-deploy-documentation">Build and Deploy Documentation</h2>
<h3 id="javadoc">Javadoc</h3>
<p>Javadoc will be automatically deployed for registered branches. For minor releases, add the new branch to the buildbot configuration:</p>
<p><a href="https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects/apex.conf">https://svn.apache.org/repos/infra/infrastructure/buildbot/aegis/buildmaster/master1/projects/apex.conf</a></p>
<p>This essentially means that the file above needs to be edited for the release number in the array of releases. Ensure that you verify the success of the build in the build bot <a href="https://ci.apache.org/builders">url</a>
Also note that the build bot is a nightly trigger. Wait for atleast the next build trigger to kick in before raising a ticket with the infra team if you see that the javadoc is not appearing as expected.</p>
<h3 id="user-documentation">User Documentation</h3>
<p>The documentation will be generated as static HTML files into the <code>apex-site</code> repository, <a href="https://github.com/apache/apex-site/tree/asf-site/docs">separated by version (X.Y)</a>.</p>
<p><strong>Note</strong> You need Python 2.7+ and <a href="http://www.mkdocs.org/">mkdocs</a> with patch for issue <a href="https://github.com/mkdocs/mkdocs/issues/859">mkdocs #859</a> on top of the currently available version 0.15.3. After installing mkdocs with pip, run the following to obtain this build:</p>
<pre><code>sudo pip install --upgrade git+https://github.com/sashadt/mkdocs.git
</code></pre><p>Do the following setup steps before building and deploying the documentation. </p>
<ol>
<li><p>Clone the apex-site repository into a folder called <code>apex-site</code> at the same level as the current repository. </p>
</li>
<li><p>Set the following environment variables.</p>
<p> For -core releases:</p>
<pre><code> REPO_NAME=apex-core
 DOC_NAME=apex
</code></pre><p> For -malhar releases:</p>
<pre><code> REPO_NAME=apex-malhar
 DOC_NAME=malhar
</code></pre><p> The <code>REPO_NAME</code> variable above should match the folder name of the cloned apex module being built.</p>
</li>
</ol>
<p>Build and deploy the documentation in the release directory:</p>
<pre><code class="lang-bash"># build docs in ${REPO_NAME}, they will be generated in a site sub-folder
mkdocs build --clean

# Calculate the major.minor version
docv=`echo ${rv} | sed &#39;s/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1\.\2/&#39;`

# copy docs from site folder into target folder on apex-site
cd ../apex-site
git checkout asf-site
rm -rf docs/${DOC_NAME}-${docv}
cp -r ../${REPO_NAME}/site docs/${DOC_NAME}-${docv}
git add -A
git commit --author &quot;Apex Dev &lt;dev@apex.apache.org&gt;&quot; -m &quot;Adding ${DOC_NAME}-${rv} documentation&quot;
git push
</code></pre>
<p>After <a href="https://github.com/apache/apex-site/tree/master#contributing">publishing the site</a> the new documentation will be available at <code>https://apex.apache.org/docs/${DOC_NAME}-${docv}/</code></p>
<h2 id="voting">Voting</h2>
<p>Vote call sample:
<a href="https://lists.apache.org/thread.html/bee03103dfdd94ffeb9dafdd2e0e468609948f59649534db2d99b464@%3Cdev.apex.apache.org%3E">https://lists.apache.org/thread.html/bee03103dfdd94ffeb9dafdd2e0e468609948f59649534db2d99b464@%3Cdev.apex.apache.org%3E</a></p>
<p>Vote result:
<a href="https://lists.apache.org/thread.html/2887965dba350e181d06aa02af19d8d47c82eb6f0b47eef8dce14fe8@%3Cdev.apex.apache.org%3E">https://lists.apache.org/thread.html/2887965dba350e181d06aa02af19d8d47c82eb6f0b47eef8dce14fe8@%3Cdev.apex.apache.org%3E</a></p>
<p>Note that the vote result email should have the subject prefixed with <code>[RESULT]</code>.</p>
<p>If the vote is not successful, a new RC needs to be built and new vote called. Once the PMC vote passes, proceed with promoting and announcing the release.</p>
<h2 id="promote-release">Promote Release</h2>
<p>Release Nexus staging repository: <a href="http://central.sonatype.org/pages/releasing-the-deployment.html#close-and-drop-or-release-your-staging-repository">http://central.sonatype.org/pages/releasing-the-deployment.html#close-and-drop-or-release-your-staging-repository</a></p>
<p>Move source release from dist staging to release folder (to be done by PMC member):</p>
<pre><code>rv=3.4.0
RNAME=apache-apex-core-${rv}
svn mv https://dist.apache.org/repos/dist/dev/apex/${RNAME}-RC1 https://dist.apache.org/repos/dist/release/apex/${RNAME} -m &quot;Release ${RNAME}&quot;
</code></pre><h3 id="jira-to-be-done-by-a-pmc-member-">JIRA (To be done by a PMC member)</h3>
<p>The closing of the JIRA item has to be done by a PMC member as the turn off notification for bulk changes in JIRA is an option available only for the PMC members.
Request a PMC member to close release and all associated tickets (using bulk change workflow transition and <strong>turn off notification</strong> at bottom of page to not flood the mailing list). 
Create version number X.Y.Z+1 for next release (also to be done by PMC member).</p>
<h3 id="git">git</h3>
<p>Create final release tag:</p>
<p>Note that the value of RC2 in the example below assumes that the second release candidate RC2 is the final release tag. Change this value accordingly.</p>
<pre><code class="lang-bash">rv=3.4.0
git tag -a &quot;v${rv}&quot; -m &quot;Release ${rv}&quot; &quot;v${rv}-RC2&quot;
git push apache &quot;v${rv}&quot;
</code></pre>
<p>Cherry-pick <code>@since</code> tag and change log commit from release tag and bump patch version number in release branch (X.Y.Z+1 - otherwise same as when creating new release branch):</p>
<pre><code class="lang-bash">git checkout release-3.4
dv=3.4.0-SNAPSHOT
rv=3.4.1-SNAPSHOT
for a in `git grep -l &quot;${dv}&quot;`; do echo $a; sed -i &#39;s/&#39;&quot;${dv}&quot;&#39;/&#39;&quot;${rv}&quot;&#39;/g&#39; $a; done
</code></pre>
<p>If there are new artifacts published to Maven repositories consider enabling semantic versioning check for the newly
published libraries.</p>
<p>Commit all changes and push them to the remote git repository:</p>
<pre><code class="lang-bash">git commit --author &quot;Apex Dev &lt;dev@apex.apache.org&gt;&quot; -am &quot;Preparing for 3.4.1 development&quot;
git push apache
</code></pre>
<p>Cherry-pick <code>@since</code> tag and change log changes from release tag to <code>master</code>.
Push the changes to apache</p>
<h3 id="documentation">Documentation</h3>
<p>If this is a minor or a major release, link the release documentation as latest on the web site. Otherwise it is a patch release and this step can be skipped (documentation is already reflected in the website).</p>
<p>Under the <code>apex-site</code> folder (<code>asf-site</code> branch):</p>
<pre><code class="lang-bash"># docv major.minor version calculated in the build step
cd docs
# Set the release version to be the latest available version
ln -nsf ${DOC_NAME}-${docv} ${DOC_NAME}
git add -A
git commit --author &quot;Apex Dev &lt;dev@apex.apache.org&gt;&quot; -m &quot;Promoting ${DOC_NAME}-${docv} documentation&quot;
git push
</code></pre>
<h3 id="update-web-site">Update Web Site</h3>
<p>Update the download page to reflect the new release: <a href="https://github.com/apache/apex-site#updating-downloads-page">https://github.com/apache/apex-site#updating-downloads-page</a></p>
<p>Publish the web site, see <a href="https://github.com/apache/apex-site#contributing">apex-site repository</a> for instructions.</p>
<p>Publishing the site involves running the build.sh script from the master branch and performing a git push from the asf-site branch. The local repo is automatically switched to the asf-site branch when the build.sh script is invoked from the master.</p>
<h2 id="announce-release">Announce Release</h2>
<p>Send the announcement email, example:
<a href="http://mail-archives.apache.org/mod_mbox/www-announce/201605.mbox/%3CCA%2B5xAo1ZYso6azUBJOkpVtJqM%3DAnJFr_RtjKk9_VusBwgYNS8A%40mail.gmail.com%3E">http://mail-archives.apache.org/mod_mbox/www-announce/201605.mbox/%3CCA%2B5xAo1ZYso6azUBJOkpVtJqM%3DAnJFr_RtjKk9_VusBwgYNS8A%40mail.gmail.com%3E</a></p>
<p>Please include the announce@apache.org as one of the recipients. Also make sure that the email is being sent from the youremail@apache.org email id. Note that the email to announce@apache.org will bounce back if youremail@apache.org email is not configured for the alias address from which you are sending this email.
The release email must be visible under <a href="https://lists.apache.org/list.html?announce@apache.org">announce mailing list</a></p>
<h2 id="anouncements-page">Anouncements page</h2>
<p>Edit the announcements page to publish the feed about the new release by editing the markup file announcements-latest.md under the source tree. Consider removing one or multiple old announcements at the same time.</p>
<h2 id="removing-old-releases">Removing old Releases</h2>
<p>As part of publishing new releases, please determine whether old releases should be deleted. See <a href="http://www.apache.org/dev/release.html#when-to-archive">release archiving policy</a> for details why. </p>
<p>With a new patch release, the previous patch release can be removed. For example, once 3.4.1 patch is released, we no longer need to have 3.4.0 on the download page. </p>
<p>Once a release branch is no longer supported, we can also remove the last release in that line. For example once <code>release-3.4</code> branch is EOL, releases 3.4.1 (or whatever the latest patch was) can be removed from downloads. </p>

</div>

  <hr>
  <div class="container">
    <footer id="main-footer">
      <p>
        Copyright &copy; <span id="copyright-year">2015</span> <a href="http://apache.org">The Apache Software Foundation</a>,
        Licensed under the Apache License, Version 2.0<br>
        Apache and the Apache feather logo are trademarks of The Apache Software Foundation. | <a href="/privacy.html">Privacy Policy</a><br>
        <a class="footer-link-img" href="http://apache.org"><img src="/images/asf_logo.svg" alt="The Apache Software Foundation"></a>
      </p>
    </footer>
  </div> <!-- /container -->

  <!-- Placed at the end of the document so the pages load faster -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
  <script src="/js/bootstrap.min.js"></script>
  <script src="js/docs.js"></script>

  <script>
    $('#copyright-year').text((new Date()).getFullYear());

    $('.btn-download').click(function(e){
      ga('send', {
        hitType: 'event',
        eventCategory: 'Download Button',
        eventAction: 'Button Click',
        eventLabel: 'Page Header'
      });
    });

  </script>

</body>
</html>
