<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
  <meta http-equiv="Content-Language" content="en"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>Building Struts Master</title>

  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <link href="/css/main.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">
  <link href="/highlighter/github-theme.css" rel="stylesheet">

  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
  <script type="text/javascript" src="/js/community.js"></script>
</head>
<body>

<a href="http://github.com/apache/struts" class="github-ribbon">
  <img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
</a>

<header>
  <nav>
    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
            Menu
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
        </div>
        <div id="struts-menu" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Home<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/index.html">Welcome</a></li>
                <li><a href="/download.cgi">Download</a></li>
                <li><a href="/releases.html">Releases</a></li>
                <li><a href="/announce-2021.html">Announcements</a></li>
                <li><a href="http://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Support<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/mail.html">User Mailing List</a></li>
                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
                <li><a href="/security.html">Reporting Security Issues</a></li>
                <li class="divider"></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
                <li class="divider"></li>
                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Documentation<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/birdseye.html">Birds Eye</a></li>
                <li><a href="/primer.html">Key Technologies</a></li>
                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
                <li class="divider"></li>
                <li><a href="/getting-started/">Getting Started</a></li>
                <li><a href="/security/">Security Guide</a></li>
                <li><a href="/core-developers/">Core Developers Guide</a></li>
                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
                <li><a href="/plugins/">Plugins</a></li>
                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Contributing<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/youatstruts.html">You at Struts</a></li>
                <li><a href="/helping.html">How to Help FAQ</a></li>
                <li><a href="/dev-mail.html">Development Lists</a></li>
                <li><a href="/contributors/">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/submitting-patches.html">Submitting patches</a></li>
                <li><a href="/builds.html">Source Code and Builds</a></li>
                <li><a href="/coding-standards.html">Coding standards</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Contributors+Guide">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
                <li><a href="/bylaws.html">PMC Charter</a></li>
                <li><a href="/volunteers.html">Volunteers</a></li>
                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
                <li><a href="/updating-website.html">Updating the website</a></li>
              </ul>
            </li>
            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
</header>


<article class="container">
  <section class="col-md-12">
    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/contributors/building-struts-master.md" title="Edit this page on GitHub">Edit on GitHub</a>
    
    <a href="creating-and-signing-a-distribution" title="back to Creating and Signing a Distribution"><< back to Creating and Signing a Distribution</a>
    
    <h1 class="no_toc" id="building-struts-master">Building Struts Master</h1>

<ul id="markdown-toc">
  <li><a href="#building-steps-struts" id="markdown-toc-building-steps-struts">Building Steps (Struts)</a>    <ul>
      <li><a href="#obtain-a-fresh-checkout" id="markdown-toc-obtain-a-fresh-checkout">Obtain a fresh checkout</a></li>
      <li><a href="#change-site-target" id="markdown-toc-change-site-target">Change site target</a></li>
      <li><a href="#prepare-release" id="markdown-toc-prepare-release">Prepare release</a></li>
      <li><a href="#perform-the-release" id="markdown-toc-perform-the-release">Perform the release</a></li>
      <li><a href="#announce-availability" id="markdown-toc-announce-availability">Announce availability</a></li>
      <li><a href="#vote-on-it" id="markdown-toc-vote-on-it">Vote on it</a></li>
      <li><a href="#promote-release" id="markdown-toc-promote-release">Promote release</a></li>
      <li><a href="#wait-for-rsync" id="markdown-toc-wait-for-rsync">Wait for rsync</a></li>
      <li><a href="#post-announcements" id="markdown-toc-post-announcements">Post announcements</a></li>
    </ul>
  </li>
</ul>

<h2 id="building-steps-struts">Building Steps (Struts)</h2>

<h3 id="obtain-a-fresh-checkout">Obtain a fresh checkout</h3>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://gitbox.apache.org/repos/asf/struts-master.git
</code></pre></div></div>

<h3 id="change-site-target">Change site target</h3>

<p>Apply needed changes, in most cases it will be upgrade to the latest Apache Parent POM, eg. from 9 to 10,
commit the change.</p>

<h3 id="prepare-release">Prepare release</h3>

<p>Tag the release by using the “release:prepare” goal of Maven:</p>

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

<p>For a <a href="http://maven.apache.org/plugins/maven-release-plugin/usage.html">dry run</a>, add <code class="highlighter-rouge">-DdryRun=true</code>. If you do a dry run,
use <code class="highlighter-rouge">mvn release:clean</code> to clean up after you have looked at the output.</p>

<p>When prompted for the SCM tag name, follow this pattern: <code class="highlighter-rouge">STRUTS_MASTER_[PATCH_VERSION]</code></p>

<p>If for some reason, the release plugin might fail to tag the release, if it fails, run:</p>

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

<p>This step will (<a href="http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html">more information</a>):</p>

<ul>
  <li>Check that there are no uncommitted changes in the sources</li>
  <li>Check that there are no SNAPSHOT dependencies</li>
  <li>Change the version in the poms from x-SNAPSHOT to a new version (you will be prompted for the versions to use)</li>
  <li>Transform the SCM information in the POM to include the final destination of the tag</li>
  <li>Run the project tests against the modified POMs to confirm everything is in working order</li>
  <li>Commit the modified POMs</li>
  <li>Tag the code in the SCM with a version name (this will be prompted for)</li>
  <li>Bump the version in the POMs to a new value y-SNAPSHOT (these values will also be prompted for)</li>
  <li>Commit the modified POMs</li>
</ul>

<h3 id="perform-the-release">Perform the release</h3>

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

<p>This step will (<a href="http://maven.apache.org/plugins/maven-release-plugin/examples/perform-release.html">more information</a>):</p>

<ul>
  <li>Checkout from an SCM URL with optional tag</li>
  <li>Run the predefined Maven goals to release the project (by default, deploy site-deploy)</li>
</ul>

<p>After this step the artifacts will be hosted by <a href="http://repository.apache.org/">Nexus</a></p>

<p>If you need to run perform again, (or in a different box), do:</p>

<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git co tags/$VERSION
mvn deploy site-deploy --no-plugin-updates -DperformRelease=true 
</code></pre></div></div>

<p>Next, log in to <a href="http://repository.apache.org/">Nexus</a> and <strong>close</strong> staging repository.</p>

<h3 id="announce-availability">Announce availability</h3>

<p>Send a short e-mail to <code class="highlighter-rouge">dev@struts.a.o</code> informing about the new packages and to give people enough time to test 
the distribution (actual bits). Wait around a week before posting Vote. If no show-stoppers reported, start a vote 
thread for build quality designation.</p>

<p>The new build is available from staging repository: <code class="highlighter-rouge">https://repository.apache.org/content/groups/staging/org/apache/struts/struts-master/[PATCH_VERSION]/</code></p>

<h3 id="vote-on-it">Vote on it</h3>

<p>Post a release/quality vote to the dev list (and <strong>only</strong> the dev list). The example mail is on <a href="sample-announcements">Sample Announcements</a> page.</p>

<p>If the vote result is for an ASF release (i.e. not test build), update site, announce. If the vote result is for GA, push to central.</p>

<h3 id="promote-release">Promote release</h3>

<p>Log in again to <a href="http://repository.apache.org/">Nexus</a> and <strong>release</strong> the repository, it will be automatically replicated across Maven Repositories</p>

<p>See <a href="http://maven.apache.org/developers/release/apache-release.html">Releasing a Maven-based project</a> for further details.</p>

<h3 id="wait-for-rsync">Wait for rsync</h3>

<p>Wait 2-6 hours before proceeding.</p>

<h3 id="post-announcements">Post announcements</h3>

<p>We leave this as the last step, once the artifacts have had time to sync up on the mirrors. Target it to:</p>

<ul>
  <li>user@struts.a.o</li>
  <li>announcements@struts.a.o</li>
</ul>

<p>samples are available at <a href="sample-announcements">Sample announcements</a> page.</p>

  </section>
</article>


<footer class="container">
  <div class="col-md-12">
    Copyright &copy; 2000-2018 <a href="http://www.apache.org/">The Apache Software Foundation </a>.
    All Rights Reserved.
  </div>
  <div class="col-md-12">
    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
    trademarks of The Apache Software Foundation.
  </div>
  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>

<script>!function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);
  }
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>

<div id="fb-root"></div>

<script>(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


</body>
</html>
