<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 at 2022-07-14 
 | Rendered using Apache Maven Fluido Skin 1.6
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="Date-Revision-yyyymmdd" content="20220714" />
    <meta http-equiv="Content-Language" content="en" />
    <title>Apache Axis2 &#x2013; Release Process</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.6.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
      <script type="text/javascript" src="./js/apache-maven-fluido-1.6.min.js"></script>
      </head>
    <body class="topBarDisabled">
      <div class="container-fluid">
      <div id="banner">
        <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf_logo_wide.png"  alt="Apache Axis2"/></a></div>
        <div class="pull-right"><a href="./" id="bannerRight"><img src="images/axis.jpg" /></a></div>
        <div class="clear"><hr/></div>
      </div>

      <div id="breadcrumbs">
        <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2022-07-14<span class="divider">|</span>
</li>
          <li id="projectVersion">Version: 1.8.2<span class="divider">|</span></li>
        <li class=""><a href="http://www.apache.org" class="externalLink" title="Apache">Apache</a><span class="divider">/</span></li>
      <li class=""><a href="index.html" title="Axis2/Java">Axis2/Java</a><span class="divider">/</span></li>
    <li class="active ">Release Process</li>
        </ul>
      </div>
      <div class="row-fluid">
        <div id="leftColumn" class="span2">
          <div class="well sidebar-nav">
<ul class="nav nav-list">
          <li class="nav-header">Axis2/Java</li>
    <li><a href="index.html" title="Home"><span class="none"></span>Home</a>  </li>
    <li><a href="download.html" title="Downloads"><span class="none"></span>Downloads</a>  </li>
    <li><a href="javascript:void(0)" title="Release Notes"><span class="icon-chevron-down"></span>Release Notes</a>
      <ul class="nav nav-list">
    <li><a href="release-notes/1.6.1.html" title="1.6.1"><span class="none"></span>1.6.1</a>  </li>
    <li><a href="release-notes/1.6.2.html" title="1.6.2"><span class="none"></span>1.6.2</a>  </li>
    <li><a href="release-notes/1.6.3.html" title="1.6.3"><span class="none"></span>1.6.3</a>  </li>
    <li><a href="release-notes/1.6.4.html" title="1.6.4"><span class="none"></span>1.6.4</a>  </li>
    <li><a href="release-notes/1.7.0.html" title="1.7.0"><span class="none"></span>1.7.0</a>  </li>
    <li><a href="release-notes/1.7.1.html" title="1.7.1"><span class="none"></span>1.7.1</a>  </li>
    <li><a href="release-notes/1.7.2.html" title="1.7.2"><span class="none"></span>1.7.2</a>  </li>
    <li><a href="release-notes/1.7.3.html" title="1.7.3"><span class="none"></span>1.7.3</a>  </li>
    <li><a href="release-notes/1.7.4.html" title="1.7.4"><span class="none"></span>1.7.4</a>  </li>
    <li><a href="release-notes/1.7.5.html" title="1.7.5"><span class="none"></span>1.7.5</a>  </li>
    <li><a href="release-notes/1.7.6.html" title="1.7.6"><span class="none"></span>1.7.6</a>  </li>
    <li><a href="release-notes/1.7.7.html" title="1.7.7"><span class="none"></span>1.7.7</a>  </li>
    <li><a href="release-notes/1.7.8.html" title="1.7.8"><span class="none"></span>1.7.8</a>  </li>
    <li><a href="release-notes/1.7.9.html" title="1.7.9"><span class="none"></span>1.7.9</a>  </li>
    <li><a href="release-notes/1.8.0.html" title="1.8.0"><span class="none"></span>1.8.0</a>  </li>
    <li><a href="release-notes/1.8.1.html" title="1.8.1"><span class="none"></span>1.8.1</a>  </li>
    <li><a href="release-notes/1.8.2.html" title="1.8.2"><span class="none"></span>1.8.2</a>  </li>
      </ul>
  </li>
    <li><a href="modules/index.html" title="Modules"><span class="none"></span>Modules</a>  </li>
    <li><a href="tools/index.html" title="Tools"><span class="none"></span>Tools</a>  </li>
          <li class="nav-header">Documentation</li>
    <li><a href="docs/toc.html" title="Table of Contents"><span class="none"></span>Table of Contents</a>  </li>
    <li><a href="docs/installationguide.html" title="Installation Guide"><span class="none"></span>Installation Guide</a>  </li>
    <li><a href="docs/quickstartguide.html" title="QuickStart Guide"><span class="none"></span>QuickStart Guide</a>  </li>
    <li><a href="docs/userguide.html" title="User Guide"><span class="none"></span>User Guide</a>  </li>
    <li><a href="docs/jaxws-guide.html" title="JAXWS Guide"><span class="none"></span>JAXWS Guide</a>  </li>
    <li><a href="docs/pojoguide.html" title="POJO Guide"><span class="none"></span>POJO Guide</a>  </li>
    <li><a href="docs/spring.html" title="Spring Guide"><span class="none"></span>Spring Guide</a>  </li>
    <li><a href="docs/webadminguide.html" title="Web Administrator's Guide"><span class="none"></span>Web Administrator's Guide</a>  </li>
    <li><a href="docs/migration.html" title="Migration Guide (from Axis1)"><span class="none"></span>Migration Guide (from Axis1)</a>  </li>
          <li class="nav-header">Resources</li>
    <li><a href="faq.html" title="FAQ"><span class="none"></span>FAQ</a>  </li>
    <li><a href="articles.html" title="Articles"><span class="none"></span>Articles</a>  </li>
    <li><a href="http://wiki.apache.org/ws/FrontPage/Axis2/" class="externalLink" title="Wiki"><span class="none"></span>Wiki</a>  </li>
    <li><a href="refLib.html" title="Reference Library"><span class="none"></span>Reference Library</a>  </li>
    <li><a href="apidocs/index.html" title="Online Java Docs"><span class="none"></span>Online Java Docs</a>  </li>
          <li class="nav-header">Get Involved</li>
    <li><a href="overview.html" title="Overview"><span class="none"></span>Overview</a>  </li>
    <li><a href="git.html" title="Checkout the Source"><span class="none"></span>Checkout the Source</a>  </li>
    <li><a href="mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a>  </li>
    <li class="active"><a href="#"><span class="none"></span>Release Process</a>
  </li>
    <li><a href="guidelines.html" title="Developer Guidelines"><span class="none"></span>Developer Guidelines</a>  </li>
    <li><a href="siteHowTo.html" title="Build the Site"><span class="none"></span>Build the Site</a>  </li>
          <li class="nav-header">Project Information</li>
    <li><a href="team-list.html" title="Project Team"><span class="none"></span>Project Team</a>  </li>
    <li><a href="issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a>  </li>
    <li><a href="http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/" class="externalLink" title="Source Code"><span class="none"></span>Source Code</a>  </li>
    <li><a href="thanks.html" title="Acknowledgements"><span class="none"></span>Acknowledgements</a>  </li>
          <li class="nav-header">Apache</li>
    <li><a href="http://www.apache.org/licenses/LICENSE-2.0.html" class="externalLink" title="License"><span class="none"></span>License</a>  </li>
    <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a>  </li>
    <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a>  </li>
    <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a>  </li>
  </ul>
          <hr />
          <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
  <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
              </div>
          </div>
        </div>
        <div id="bodyColumn"  class="span10" >
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->
<h1>Release Process</h1><section>
<h2><a name="Release_process_overview"></a>Release process overview</h2><section>
<h3><a name="Cutting_a_branch"></a>Cutting a branch</h3>
<ul>

<li>

<p>When a release is ready to go, release manager (RM) puts
forward a release plan as per standard Apache process, including
dates. This gets VOTEd on by the committers. During this period the
trunk is still the only relevant source base.</p>
</li>
<li>

<p>As soon as a release is approved (or even before), RM should
add the new version into JIRA as a target.</p>
</li>
<li>

<p>At the point where we would normally do the &#x201c;code freeze&#x201d; for a
release, the RM cuts a branch named for the release. This branch is
where the release candidates and releases will happen.</p>
</li>
<li>

<p>Ideally a release branch is only around for a week or maybe two
before the release happens.</p>
</li>
<li>

<p>The only things that should EVER get checked into the release
branch are - 1) bug fixes targeted at the release, 2)
release-specific updates (documentation, SNAPSHOT removal, etc). In
particular new functionality does not go here unless it is a
solution to a JIRA report targeted at the release.</p>
</li>
<li>

<p>Normal development continues on the trunk.</p>
</li>
</ul></section><section>
<h3><a name="Dependencies_and_branches"></a>Dependencies and branches</h3>
<ul>

<li>

<p>The trunk should always be &#x201c;cutting edge&#x201d; and as such should
usually be pointing at SNAPSHOT versions of all dependencies. This
allows for continuous integration with our partner projects.</p>
</li>
<li>

<p>Soon after a release branch is cut, the RM is responsible for
removing ALL dependencies on SNAPSHOT versions and replacing them
with officially released versions. This change happens only on the
release branch.</p>
</li>
</ul></section><section>
<h3><a name="Managing_change_and_issue_resolution_with_a_release_branch"></a>Managing change and issue resolution with a release branch</h3>
<ul>

<li>

<p>The RM goes through JIRA issues and sets &#x201c;fix for&#x201d; to point to
both &#x201c;NIGHTLY&#x201d; and the new branched release number for the fixes
that are targeted for the release after the branch is cut.</p>
</li>
<li>

<p>In general, the assignee/coder fixes JIRA issues or makes other
changes <i>on the trunk</i>. If the JIRA issue is targeted at the
release, or upon coder's discretion, they then merge the fix over
to the release branch.</p>
</li>
<li>

<p>This way the trunk is ALWAYS up-to-date, and we don't have to
worry about losing fixes that have only been made on the release
branch.</p>
</li>
<li>

<p>When the assignee resolves an issue, they confirm it's been
fixed in both branches, if appropriate.</p>
</li>
</ul></section><section>
<h3><a name="Checking_changes_into_the_branch"></a>Checking changes into the branch</h3>
<ul>

<li>

<p>If bug fixes are needed later for a release which has long
since happened (to fix user issues, etc), those fixes generally
should also happen on the trunk first assuming the problem still
exists on the trunk.</p>
</li>
<li>

<p>There are only two cases where we would ever check anything
into the branch without first checking it into the trunk. 1)
Release specific items (release number references, release notes,
removal of SNAPSHOTs), and 2) if the trunk has moved on in some
incompatible way.</p>
</li>
</ul></section></section><section>
<h2><a name="Performing_a_release"></a>Performing a release</h2><section>
<h3><a name="Preparation"></a>Preparation</h3>
<p>Verify that the code meets the basic requirements for being releasable:</p>
<ol style="list-style-type: decimal">

<li>

<p>Check that the set of legal (<code>legal/*.LICENSE</code>) files corresponds to the set of third party
JARs included in the binary distribution.</p>
</li>
<li>

<p>Check that the <code>apache-release</code> profile works correctly and produces the required distributions.
The profile can be executed as follows:</p>

<div class="source"><pre class="prettyprint"><code>mvn clean install -Papache-release
</code></pre></div>
</li>
<li>

<p>Check that the source distribution is buildable.</p>
</li>
<li>

<p>Check that the source tree is buildable with an empty local Maven repository.</p>
</li>
</ol>
<p>If any problems are detected, they should be fixed on the trunk (except for issues specific to the
release branch) and then merged to the release branch.</p>
<p>Next update the release note found under <code>src/site/markdown/release-notes</code>. To avoid extra work for
the RM doing the next major release, these changes should be done on the trunk first and then merged
to the release branch.</p></section><section>
<h3><a name="Pre-requisites"></a>Pre-requisites</h3>
<p>The following things are required to perform the actual release:</p>
<ul>

<li>

<p>A PGP key that conforms to the <a class="externalLink" href="http://www.apache.org/dev/release-signing.html">requirements for Apache release signing</a>.
To make the release process easier, the passphrase for the code signing key should
be configured in <code>${user.home}/.m2/settings.xml</code>:</p>

<div class="source"><pre class="prettyprint"><code>&lt;settings&gt;
  ...
  &lt;profiles&gt;
    &lt;profile&gt;
      &lt;id&gt;apache-release&lt;/id&gt;
      &lt;properties&gt;
        &lt;gpg.passphrase&gt;&lt;!-- key passphrase --&gt;&lt;/gpg.passphrase&gt;
      &lt;/properties&gt;
    &lt;/profile&gt;
  &lt;/profiles&gt;
  ...
&lt;/settings&gt;
</code></pre></div>
</li>
<li>

<p>The release process uses a Nexus staging repository. Every committer should have access to the corresponding
staging profile in Nexus. To validate this, login to <a class="externalLink" href="https://repository.apache.org">repository.apache.org</a>
and check that you can see the <code>org.apache.axis2</code> staging profile. The credentials used to deploy to Nexus
should be added to <code>settings.xml</code>:</p>

<div class="source"><pre class="prettyprint"><code>&lt;servers&gt;
  ...
  &lt;server&gt;
    &lt;id&gt;apache.releases.https&lt;/id&gt;
    &lt;username&gt;&lt;!-- ASF username --&gt;&lt;/username&gt;
    &lt;password&gt;&lt;!-- ASF LDAP password --&gt;&lt;/password&gt;
  &lt;/server&gt;
  ...
&lt;/servers&gt;
</code></pre></div>
</li>
</ul></section><section>
<h3><a name="Release"></a>Release</h3>
<p>In order to prepare the release artifacts for vote, execute the following steps:</p>
<ol style="list-style-type: decimal">

<li>

<p>Start the release process using the following command:</p>

<div class="source"><pre class="prettyprint"><code>mvn release:prepare
</code></pre></div>
<p>When asked for a tag name, accept the default value (in the following format: <code>vX.Y.Z</code>).
The execution of the <code>release:prepare</code> goal may occasionally fail because <code>svn.apache.org</code>
resolves to one of the geolocated SVN mirrors and there is a propagation delay between
the master and these mirrors. If this happens,
wait for a minute (so that the mirrors can catch up with the master) and simply rerun the command.
It will continue where the error occurred.</p>
</li>
<li>

<p>Perform the release using the following command:</p>

<div class="source"><pre class="prettyprint"><code>mvn release:perform
</code></pre></div>
</li>
<li>

<p>Login to Nexus and close the staging repository. For more details about this step, see
<a class="externalLink" href="https://docs.sonatype.org/display/Repository/Closing+a+Staging+Repository">here</a>.</p>
</li>
<li>

<p>Execute the <code>target/checkout/etc/dist.py</code> script to upload the distributions.</p>
</li>
<li>

<p>Create a staging area for the Maven site:</p>

<div class="source"><pre class="prettyprint"><code>git clone https://gitbox.apache.org/repos/asf/axis-site.git
cd axis-site
cp -r axis2/java/core/ axis2/java/core-staging
git add  axis2/java/core-staging
git commit -am &quot;core-staging&quot;
git push
</code></pre></div>
</li>
<li>

<p>Change to the <code>target/checkout</code> directory and prepare the site using the following commands:</p>

<div class="source"><pre class="prettyprint"><code>mvn site-deploy
mvn scm-publish:publish-scm -Dscmpublish.skipCheckin=true
</code></pre></div>
<p>Now go to the <code>target/scmpublish-checkout</code> directory (relative to <code>target/checkout</code>) and check that there
are no unexpected changes to the site. Then commit the changes.</p>
</li>
<li>

<p>Start the release vote by sending a mail to <code>java-dev@axis.apache.org</code>.
The mail should mention the following things:</p>
<ul>

<li>A link to the Nexus staging repository.</li>
<li>A link to the directory containing the distributions
(<a class="externalLink" href="https://dist.apache.org/repos/dist/dev/axis/axis2/java/core/x.y.x/">https://dist.apache.org/repos/dist/dev/axis/axis2/java/core/x.y.x/</a>).</li>
<li>A link to the preview of the Maven site (<a class="externalLink" href="http://axis.apache.org/axis2/java/core-staging/">http://axis.apache.org/axis2/java/core-staging/</a>).</li>
</ul>
</li>
</ol>
<p>If the vote passes, execute the following steps:</p>
<ol style="list-style-type: decimal">

<li>

<p>Promote the artifacts in the staging repository. See
<a class="externalLink" href="https://maven.apache.org/developers/release/maven-project-release-procedure.html">here</a>
for detailed instructions for this step.</p>
</li>
<li>

<p>Publish the distributions:</p>

<div class="source"><pre class="prettyprint"><code>svn mv https://dist.apache.org/repos/dist/dev/axis/axis2/java/core/x.y.z \
       https://dist.apache.org/repos/dist/release/axis/axis2/java/core/
</code></pre></div>
</li>
<li>

<p>Publish the site:</p>

<div class="source"><pre class="prettyprint"><code>git clone https://gitbox.apache.org/repos/asf/axis-site.git
git rm -r core
git mv core-staging core
git commit -am &quot;Axis2 X.Y.Z site&quot;
git push
</code></pre></div>
</li>
</ol>
<p>It may take several hours before everything has been synchronized. Before proceeding, check that</p>
<ul>

<li>the Maven artifacts for the release are available from the Maven central repository;</li>
<li>the Maven site has been synchronized;</li>
<li>the distributions can be downloaded from the mirror sites.</li>
</ul>
<p>Once everything is in place, send announcements to <code>java-user@axis.apache.org</code> (with copy to
<code>java-dev@axis.apache.org</code>) and <code>announce@apache.org</code>. Since the two lists have different conventions,
audiences and moderation policies, it is recommended to send the announcement separately to the two lists.
Note that mail to <code>announce@apache.org</code> must be sent from an <code>apache.org</code> address and will
always be moderated. The announcement sent to <code>announce@apache.org</code> also should include a general description
of Axis2, because not everybody subscribed to that list knows about the project.</p></section><section>
<h3><a name="Post-release_actions"></a>Post-release actions</h3>
<ol style="list-style-type: decimal">

<li>

<p>Update the DOAP file (<code>etc/doap_Axis2.rdf</code>) and add a new entry for the release.</p>
</li>
<li>

<p>Update the status of the release version in JIRA.</p>
</li>
<li>

<p>Remove old (archived) releases from <a class="externalLink" href="https://dist.apache.org/repos/dist/release/axis/axis2/java/core/">https://dist.apache.org/repos/dist/release/axis/axis2/java/core/</a>.</p>
</li>
<li>

<p>Create an empty release note for the next release under <code>src/site/markdown/release-notes</code>.</p>
</li>
</ol></section></section>
        </div>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
            <p>Copyright &copy;2004&#x2013;2022
<a href="https://www.apache.org/">The Apache Software Foundation</a>.
All rights reserved.</p>
        </div>
        </div>
    </footer>
    </body>
</html>
