| <!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 – 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> |
| </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 “code freeze” 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 “cutting edge” 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 “fix for” to point to |
| both “NIGHTLY” 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><settings> |
| ... |
| <profiles> |
| <profile> |
| <id>apache-release</id> |
| <properties> |
| <gpg.passphrase><!-- key passphrase --></gpg.passphrase> |
| </properties> |
| </profile> |
| </profiles> |
| ... |
| </settings> |
| </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><servers> |
| ... |
| <server> |
| <id>apache.releases.https</id> |
| <username><!-- ASF username --></username> |
| <password><!-- ASF LDAP password --></password> |
| </server> |
| ... |
| </servers> |
| </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 "core-staging" |
| 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 "Axis2 X.Y.Z site" |
| 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 ©2004–2022 |
| <a href="https://www.apache.org/">The Apache Software Foundation</a>. |
| All rights reserved.</p> |
| </div> |
| </div> |
| </footer> |
| </body> |
| </html> |