directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r946195 - in /websites/staging/directory/trunk/content: ./ fortress/coding-standards.html fortress/developer-guide.html
Date Fri, 03 Apr 2015 14:49:47 GMT
Author: buildbot
Date: Fri Apr  3 14:49:46 2015
New Revision: 946195

Log:
Staging update by buildbot for directory

Added:
    websites/staging/directory/trunk/content/fortress/coding-standards.html
    websites/staging/directory/trunk/content/fortress/developer-guide.html
Modified:
    websites/staging/directory/trunk/content/   (props changed)

Propchange: websites/staging/directory/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Apr  3 14:49:46 2015
@@ -1 +1 @@
-1671005
+1671079

Added: websites/staging/directory/trunk/content/fortress/coding-standards.html
==============================================================================
--- websites/staging/directory/trunk/content/fortress/coding-standards.html (added)
+++ websites/staging/directory/trunk/content/fortress/coding-standards.html Fri Apr  3 14:49:46 2015
@@ -0,0 +1,292 @@
+<!DOCTYPE html>
+<!--
+    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.
+-->
+<html>
+	<head>
+		<title>Coding Standards &mdash; Apache Directory</title>
+		
+	    <link href="./../css/common.css" rel="stylesheet" type="text/css">
+	    <link href="./../css/turquoise.css" rel="stylesheet" type="text/css">
+    
+        
+        <link rel="shortcut icon" href="./../images/fortress-icon_16x16.png">
+    
+        <!-- Google Analytics -->
+        <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
+        <script type="text/javascript">
+            _uacct = "UA-1358462-1";
+            urchinTracker();
+        </script>
+	</head>
+	<body>
+	    <div id="container">
+            <div id="header">
+                <div id="subProjectsNavBar">
+                    <a href="./../">
+                        
+                        Main
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../apacheds">
+                        
+                        ApacheDS
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../studio">
+                        
+                        Studio
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../api">
+                        
+                        LDAP API
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../mavibot">
+                        
+                        Mavibot
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../escimo">
+                        
+                        eSCIMo
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../fortress">
+                        
+                        <STRONG>Fortress</STRONG>
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../kerby">
+                        
+                        Kerby
+                        
+                    </a>
+                </div><!-- subProjectsNavBar -->
+            </div><!-- header -->
+            <div id="content">
+                <div id="leftColumn">
+                    
+<div id="navigation">
+    
+    <!--ul>
+      <li>
+        <a href="http://bit.ly/1n9YlQT" target="_blank">
+          <img src="./../images/ApacheConBudapest.png" width="125" height="125" alt="I'm Speaking at ApacheCon Europe 2014! Join me!" title="I'm Speaking at ApacheCon Europe 2014! Join me!" border="0" style="margin-bottom:-3px;"/>
+        </a>
+      </li>
+    </ul-->
+    <h5>Fortress</h5>
+    <ul>
+        <li><a href="./../fortress/">Home</a></li>
+        <li><a href="./../fortress/">History</a></li>
+        <li><a href="./../fortress/news.html">News</a></li>
+    </ul>
+    <h5>Downloads</h5>
+    <ul>
+        <li>Coming soon...</li>
+	    <!--li><a href="./../fortress/downloads.html">Core 1.0.0-RC39</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+        <li><a href="./../fortress/downloads.html">EnMasse 1.0.0-RC39</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+        <li><a href="./../fortress/downloads.html">Commander 1.0.0-RC39</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+        <li><a href="./../fortress/downloads.html">Realm 1.0.0-RC39</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+        <li><a href="./../fortress/download-old-versions.html">Older versions</a></li-->
+    </ul>
+    <h5>Getting Started</h5>
+    <ul>
+        <li><a href="./../fortress/vision.html">Vision</a></li>
+        <li><a href="./../fortress/issues.html">Issues</a></li>
+    </ul>
+    <h5>Documentation</h5>
+    <ul>
+        <li><a href="./../fortress/overview.html">Overview</a></li>
+	    <li><a href="./../fortress/installation.html">Installation Guide</a></li>
+        <li><a href="./../fortress/user-guide.html">Users Guide</a></li>
+        <li><a href="./../fortress/gen-docs/latest/apidocs/">JavaDocs</a></li>
+        <li><a href="./../fortress/gen-docs/latest/xref/">Cross-Reference</a></li>
+        <!--li><a href="./../fortress/gen-docs/latest/">Generated Reports</a></li-->
+        <li><a href="./../fortress/developer-guide.html">Developer Guide</a></li>
+    </ul>
+    
+    
+    <h5>Support</h5>
+    <ul>
+        <li><a href="./../mailing-lists-and-irc.html">Mailing Lists &amp; IRC</a></li>
+        <li><a href="./../sources.html">Sources</a></li>
+        <li><a href="./../issue-tracking.html">Issue Tracking</a></li>
+        <li><a href="./../commercial-support.html">Commercial Support</a></li>
+    </ul>
+    <h5>Community</h5>
+    <ul>
+        <li><a href="./../contribute.html">How to Contribute</a></li>
+        <li><a href="./../team.html">Team</a></li>
+        <li><a href="./../original-project-proposal.html">Original Project Proposal</a></li>
+        <li><a href="./../special-thanks.html" class="external-link" rel="nofollow">Special Thanks</a></li>
+    </ul>
+    <h5>About Apache</h5>
+    <ul>
+        <li><a href="http://www.apache.org/">Apache</a></li>
+        <li><a href="http://www.apache.org/licenses/">License</a></li>
+        <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+        <li><a href="http://www.apache.org/security/">Security</a></li>
+    </ul>
+    
+</div><!-- navigation -->
+
+                </div><!-- leftColumn -->
+                <div id="rightColumn">
+
+
+
+<h1 id="coding-standards">Coding Standards</h1>
+<p>Welcome to you, developper ! You have been elected committer on the project, or you want to contribute some code or some patch? This is great news. However, in order to be able to share your 'vision' and your code, some rules must be followed.</p>
+<p>Hey, remember that those rules are not the best nor the worst, they are pretty much what they are for historical reasons, or for technical reasons, however, please, accept them as they are, and avoid religious war (please, oh please, no mail to say "WTF ? You are using spaces instead of tab ??? How stupid is this rule etc etc.) Rules are <em><em>alway</em>s</em> stupid, but smart people follow them ;)</p>
+<p><strong>eclipse IDE</strong></p>
+<p>Eclipse users can import those two files to enfore the code formating : <a href="http://svn.apache.org/repos/asf/directory/project/trunk/resources/formatting.xml">formatting.xml</a> and <a href="http://svn.apache.org/repos/asf/directory/project/trunk/resources/codetemplates.xml">codetemplates.xml</a></p>
+<p><strong>IDEA IDE</strong></p>
+<p>IDEA users can import <a href="settings.jar">this file</a> to enfore the code formating.</p>
+<h2 id="headers">Headers</h2>
+<p>First, you <strong>must</strong> (and this rule accept no exception) use this header in top of all source file, or each file in which you can have comments :</p>
+<div class="codehilite"><pre><span class="cm">/*</span>
+<span class="cm"> *  Licensed to the Apache Software Foundation (ASF) under one</span>
+<span class="cm"> *  or more contributor license agreements.  See the NOTICE file</span>
+<span class="cm"> *  distributed with this work for additional information</span>
+<span class="cm"> *  regarding copyright ownership.  The ASF licenses this file</span>
+<span class="cm"> *  to you under the Apache License, Version 2.0 (the</span>
+<span class="cm"> *  &quot;License&quot;); you may not use this file except in compliance</span>
+<span class="cm"> *  with the License.  You may obtain a copy of the License at</span>
+<span class="cm"> *</span>
+<span class="cm"> *    http://www.apache.org/licenses/LICENSE-2.0</span>
+<span class="cm"> *</span>
+<span class="cm"> *  Unless required by applicable law or agreed to in writing,</span>
+<span class="cm"> *  software distributed under the License is distributed on an</span>
+<span class="cm"> *  &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span>
+<span class="cm"> *  KIND, either express or implied.  See the License for the</span>
+<span class="cm"> *  specific language governing permissions and limitations</span>
+<span class="cm"> *  under the License.</span>
+<span class="cm"> *</span>
+<span class="cm"> */</span>
+</pre></div>
+
+
+<h3 id="classinterface-headers">Class/Interface headers</h3>
+<p>Each <strong>Class</strong> or <em>Interface</em> should have an header which must contains :</p>
+<ul>
+<li>A descrption of this class/interface</li>
+<li>
+<p>an <em>author</em> tag which should be :</p>
+<div class="codehilite"><pre><span class="nd">@author</span> <span class="o">&lt;</span><span class="n">a</span> <span class="n">href</span><span class="o">=</span><span class="s">&quot;mailto:dev@directory.apache.org&quot;</span><span class="o">&gt;</span><span class="n">Apache</span> <span class="n">Directory</span> <span class="n">Project</span><span class="o">&lt;/</span><span class="n">a</span><span class="o">&gt;</span>
+</pre></div>
+
+
+</li>
+</ul>
+<DIV class="note" markdown="1">
+Thanks to avoid to put your name. The code is not yours, and much more important, but putting ypur name and e-mail, you will intimidate other developper ("Oh, no, I won't mess with this code, it has been developped by XXXX \!") and second, you will receive mail in three years even if you have stopped all commitment on the project (and those who have sent you an e-mail will think that the project's memeber are not responsive...)
+</DIV>
+
+<p>If you use <strong>html</strong> tags, remember to escape '&lt;' and '&gt;' characters...</p>
+<h3 id="static-members-and-other-members">Static members and other members</h3>
+<p>Just add a single line javadoc comment like : <em>/*<em> blah ... </em>/</em> before each member</p>
+<h3 id="methods">Methods</h3>
+<p>Follow the standard <strong>javadoc</strong> rules : Description, <strong>@param</strong>, <strong>@exception</strong> and <strong>@return</strong>. It should be enough. Avoid <strong>@tags</strong>, <strong>@todo</strong> tags, etc...</p>
+<p>Escape <strong>html</strong> characters</p>
+<h2 id="comments">Comments</h2>
+<p>No special rules, except that you should avoid :</p>
+<ul>
+<li>Useless comments like : i++; /* Increment i */</li>
+<li>Overusing comments : if you have to heavily comment a peice of code, then this piece of code might be too complex ...</li>
+<li>Speading little comments all over a method : if possible, write blocs of comments. The method header could hgenerally contains a full description of the code, and if it's not the case, just consider your method might be too long !</li>
+<li>Dead code commented. If it's dead, then put it in a cuffin. We use SVN, the Ressuscitator !</li>
+</ul>
+<p>Basically, use your common sense :-)</p>
+<h2 id="naming">Naming</h2>
+<p>Naming ! Sounds like Blaming :-). Ok. We use <strong>Sun(tm/c/r)</strong> style :</p>
+<ul>
+<li>Constants are in UPPER CASE with accepted '_'</li>
+<li>Class starts with an uppercase and each starting word is upper cased. No '_', please !</li>
+<li>Methods starts with lower case and then follow the same rule than classes. No '_', please !</li>
+<li>Interfaces should not start with an 'I'</li>
+<li>Classes which implements an Interface must be followed by the postfix 'impl'</li>
+<li>Variables follow the method naming convention. No '_', please !</li>
+<li>Use meaningfull names.</li>
+<li>No double letter variables like ii, jj etc...</li>
+</ul>
+<p>If you browse the code, you will see that many classes does not respect those rules. That's life ! Don't fix it if you don't touch a class. If you are fixing a method in a class, then you can change the code to respect the rules. Little by little, we may reach a stable state where all the code respect the rules ;)</p>
+<p>Naming is really important for <strong>APIs</strong>. Be smart. If you are not sure, ask.</p>
+<h2 id="spaces-vs-tabs">Spaces vs tabs</h2>
+<DIV class="warning" markdown="1">
+**FOUR SPACES, NO TAB. Final.**
+</DIV>
+
+<p>No discussion. Using tabs break diffs. Modify your <strong>IDE</strong> to insert spaces when you use tabs, before it saves the file.</p>
+<h2 id="formatting">Formatting</h2>
+<p>Use the <strong>formatting.xml</strong> file which can be found in the <strong>resources</strong> directory in the root of the project. This is for <em>Eclipse</em>. If you don't use eclipse, then translate the formating to your favorite <strong>IDE</strong>.</p>
+<p>Use the <strong>codetemplates.xml</strong> file if you are using <em>Eclipse</em> too. You will find it at the same location. It brings you some standard headers for new classes, nex methods, etc.</p>
+<p>Use <strong>UTF-8</strong> as a default for your files (except for properties, thanks to <strong>java</strong>, which should be in <strong>ISO-8859-1</strong>). Forget about exotic encoding...</p>
+<DIV class="warning" markdown="1">
+**DO NOT USE AN AUTOMATIC FORMATER FOR COMMENTS!!!**
+</DIV>
+
+<p>People spend a lot of time making their comment looks like pretty, so if you just format them, you will have to recover the previous comments...</p>
+<p>Some general rules :</p>
+<ul>
+<li>Always use '{' and '}' even for a single instruction, or if you have an empty block (don't use ';' for empty blocks)</li>
+<li>No more than one instruction on a single line, the only exception is the '?' ':' operation</li>
+<li>Use <em>this</em> to address the class variable if there is a risk of confusion (for instanc eif you have a parameter with the same name.</li>
+<li>Don't add a 'a_', or 'the_' before a parameter's name to distinguish it from the class variable which has the same name. Use <strong>this</strong> instead.</li>
+<li>Don't add <strong>final</strong> everywhere. Even if <strong>final</strong> is a substitute for <strong>const</strong>, it's semantic is not clear enough that you use it everywhere.</li>
+<li>Add spaces in method calls after '(' and before ')'</li>
+<li>'{' and '}' must be on the same column</li>
+</ul>
+<p>This is a code example :</p>
+<div class="codehilite"><pre><span class="o">...</span>
+<span class="kt">int</span> <span class="n">result</span> <span class="o">=</span> <span class="n">myMethod</span><span class="o">(</span> <span class="n">param1</span><span class="o">,</span> <span class="n">param2</span> <span class="o">)</span>
+
+<span class="k">if</span> <span class="o">(</span> <span class="n">result</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="o">)</span>
+<span class="o">{</span>
+    <span class="c1">// do something</span>
+<span class="o">}</span>
+<span class="o">...</span>
+</pre></div>
+
+
+<h2 id="imports">Imports</h2>
+<p>Always declare all the classes you import, do not use <strong>x.y.*</strong></p>
+<h2 id="what-else">What else ?</h2>
+<p>Well, this was a very short introduction about coding rules. Use commen sense, look at what you see around you when adding some code, ask people about format, if you have a question.</p>
+<p>That's it ! (I wait your comments, guys :-)</p>
+
+
+
+                </div><!-- rightColumn -->
+                <div id="endContent"></div>
+            </div><!-- content -->
+            <div id="footer">&copy; 2003-2014, <a href="http://www.apache.org">The Apache Software Foundation</a> - <a href="./../privacy-policy.html">Privacy Policy</a><br />
+                Apache Directory, ApacheDS, Apache Directory Server, Apache Directory Studio, Apache LDAP API, Apache Triplesec, Triplesec, Apache Mavibot, Mavibot, Apache eSCIMo, eSCIMo, Fortress, Apache Fortress, EnMasse, Apache EnMasse, Apache Kerby, Kerby
+                Apache, the Apache feather logo, and the Apache Directory project logos are trademarks of The Apache Software Foundation.
+            </div>
+        </div><!-- container -->
+    </body>
+</html>

Added: websites/staging/directory/trunk/content/fortress/developer-guide.html
==============================================================================
--- websites/staging/directory/trunk/content/fortress/developer-guide.html (added)
+++ websites/staging/directory/trunk/content/fortress/developer-guide.html Fri Apr  3 14:49:46 2015
@@ -0,0 +1,758 @@
+<!DOCTYPE html>
+<!--
+    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.
+-->
+<html>
+	<head>
+		<title>Developer Guide &mdash; Apache Directory</title>
+		
+	    <link href="./../css/common.css" rel="stylesheet" type="text/css">
+	    <link href="./../css/turquoise.css" rel="stylesheet" type="text/css">
+    
+        
+        <link rel="shortcut icon" href="./../images/fortress-icon_16x16.png">
+    
+        <!-- Google Analytics -->
+        <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
+        <script type="text/javascript">
+            _uacct = "UA-1358462-1";
+            urchinTracker();
+        </script>
+	</head>
+	<body>
+	    <div id="container">
+            <div id="header">
+                <div id="subProjectsNavBar">
+                    <a href="./../">
+                        
+                        Main
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../apacheds">
+                        
+                        ApacheDS
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../studio">
+                        
+                        Studio
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../api">
+                        
+                        LDAP API
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../mavibot">
+                        
+                        Mavibot
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../escimo">
+                        
+                        eSCIMo
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../fortress">
+                        
+                        <STRONG>Fortress</STRONG>
+                        
+                    </a>
+                    &nbsp;|&nbsp;
+                    <a href="./../kerby">
+                        
+                        Kerby
+                        
+                    </a>
+                </div><!-- subProjectsNavBar -->
+            </div><!-- header -->
+            <div id="content">
+                <div id="leftColumn">
+                    
+<div id="navigation">
+    
+    <!--ul>
+      <li>
+        <a href="http://bit.ly/1n9YlQT" target="_blank">
+          <img src="./../images/ApacheConBudapest.png" width="125" height="125" alt="I'm Speaking at ApacheCon Europe 2014! Join me!" title="I'm Speaking at ApacheCon Europe 2014! Join me!" border="0" style="margin-bottom:-3px;"/>
+        </a>
+      </li>
+    </ul-->
+    <h5>Fortress</h5>
+    <ul>
+        <li><a href="./../fortress/">Home</a></li>
+        <li><a href="./../fortress/">History</a></li>
+        <li><a href="./../fortress/news.html">News</a></li>
+    </ul>
+    <h5>Downloads</h5>
+    <ul>
+        <li>Coming soon...</li>
+	    <!--li><a href="./../fortress/downloads.html">Core 1.0.0-RC39</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+        <li><a href="./../fortress/downloads.html">EnMasse 1.0.0-RC39</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+        <li><a href="./../fortress/downloads.html">Commander 1.0.0-RC39</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+        <li><a href="./../fortress/downloads.html">Realm 1.0.0-RC39</a>&nbsp;&nbsp;<IMG src="./../images/new_badge.gif" alt="" style="margin-bottom:-3px;" border="0"></li>
+        <li><a href="./../fortress/download-old-versions.html">Older versions</a></li-->
+    </ul>
+    <h5>Getting Started</h5>
+    <ul>
+        <li><a href="./../fortress/vision.html">Vision</a></li>
+        <li><a href="./../fortress/issues.html">Issues</a></li>
+    </ul>
+    <h5>Documentation</h5>
+    <ul>
+        <li><a href="./../fortress/overview.html">Overview</a></li>
+	    <li><a href="./../fortress/installation.html">Installation Guide</a></li>
+        <li><a href="./../fortress/user-guide.html">Users Guide</a></li>
+        <li><a href="./../fortress/gen-docs/latest/apidocs/">JavaDocs</a></li>
+        <li><a href="./../fortress/gen-docs/latest/xref/">Cross-Reference</a></li>
+        <!--li><a href="./../fortress/gen-docs/latest/">Generated Reports</a></li-->
+        <li><a href="./../fortress/developer-guide.html">Developer Guide</a></li>
+    </ul>
+    
+    
+    <h5>Support</h5>
+    <ul>
+        <li><a href="./../mailing-lists-and-irc.html">Mailing Lists &amp; IRC</a></li>
+        <li><a href="./../sources.html">Sources</a></li>
+        <li><a href="./../issue-tracking.html">Issue Tracking</a></li>
+        <li><a href="./../commercial-support.html">Commercial Support</a></li>
+    </ul>
+    <h5>Community</h5>
+    <ul>
+        <li><a href="./../contribute.html">How to Contribute</a></li>
+        <li><a href="./../team.html">Team</a></li>
+        <li><a href="./../original-project-proposal.html">Original Project Proposal</a></li>
+        <li><a href="./../special-thanks.html" class="external-link" rel="nofollow">Special Thanks</a></li>
+    </ul>
+    <h5>About Apache</h5>
+    <ul>
+        <li><a href="http://www.apache.org/">Apache</a></li>
+        <li><a href="http://www.apache.org/licenses/">License</a></li>
+        <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+        <li><a href="http://www.apache.org/security/">Security</a></li>
+    </ul>
+    
+</div><!-- navigation -->
+
+                </div><!-- leftColumn -->
+                <div id="rightColumn">
+
+
+
+<h1 id="building-fortress">Building FORTRESS</h1>
+<DIV class="note" markdown="1">
+    Please read <a href="http://www.apache.org/dev/" class="external-link" rel="nofollow">the Developer Infrastructure Information</a> if you haven't yet before you proceed.
+</DIV>
+
+<div class="toc">
+<ul>
+<li><a href="#building-fortress">Building FORTRESS</a></li>
+<li><a href="#checking-out-the-code">Checking out the code</a><ul>
+<li><a href="#fortress-core">Fortress-core</a></li>
+<li><a href="#fortress-realm">Fortress-realm</a></li>
+<li><a href="#fortress-enmasse">Fortress-enmasse</a></li>
+<li><a href="#fortress-commander">Fortress-commander</a></li>
+</ul>
+</li>
+<li><a href="#coding-convention">Coding Convention</a></li>
+<li><a href="#deploying-snapshots-commiters-only">Deploying Snapshots (Commiters Only)</a></li>
+<li><a href="#releasing-a-point-release-committers-only">Releasing a Point Release (Committers Only)</a><ul>
+<li><a href="#preparing-the-release-for-the-vote">Preparing the release for the vote</a><ul>
+<li><a href="#step-0-building-fortress-xxx">Step 0: Building Fortress-xxx</a></li>
+<li><a href="#step-1-tagging-and-deploying">Step 1: Tagging and Deploying</a></li>
+<li><a href="#step-2-processing-with-a-dry-run">step 2 : Processing with a dry run</a></li>
+<li><a href="#step-3-processing-with-the-real-release">Step 3 : Processing with the real release</a></li>
+<li><a href="#step-4-perform-the-release">Step 4 : perform the release</a></li>
+<li><a href="#step-5-closing-the-staging-release-on-nexus">Step 5 : closing the staging release on nexus</a></li>
+<li><a href="#step-6-build-the-site">Step 6 : Build the Site</a></li>
+<li><a href="#step-7-sign-the-packages">Step 7 : Sign the packages</a></li>
+<li><a href="#step-8-publish-source-and-binary-distribution-packages">Step 8 : Publish Source and Binary Distribution Packages</a></li>
+</ul>
+</li>
+<li><a href="#step-9-voting-a-release">Step 9 : Voting a release</a><ul>
+<li><a href="#step-11-close-the-vote">Step 11 : Close the vote</a></li>
+<li><a href="#step-12-deploy-web-reports-javadoc-and-jxr">Step 12: Deploy Web Reports (JavaDoc and JXR)</a></li>
+<li><a href="#step-13-wait-24-hours">Step 13: Wait 24 hours</a></li>
+<li><a href="#step-14-update-the-links-in-web-site">Step 14: Update the Links in Web Site</a></li>
+<li><a href="#step-15-wait-another-24-hours">Step 15: Wait another 24 hours</a></li>
+<li><a href="#step-16-announce-the-new-release">Step 16: Announce the New Release</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<h1 id="checking-out-the-code">Checking out the code</h1>
+<p>You need Git to check out the source code from our source code repository, and [Maven(http://maven.apache.org/) 3.0 to build the source code.  The following example shows how to get the Fortress projects.</p>
+<h2 id="fortress-core">Fortress-core</h2>
+<div class="codehilite"><pre>$ <span class="n">git</span> <span class="n">clone</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">git</span><span class="o">-</span><span class="n">wip</span><span class="o">-</span><span class="n">us</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">directory</span><span class="o">-</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="p">.</span><span class="n">git</span> <span class="n">fortress</span><span class="o">-</span><span class="n">core</span>
+$ <span class="n">cd</span> <span class="n">fortress</span><span class="o">-</span><span class="n">core</span>
+$ <span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span>             # <span class="n">Build</span> <span class="n">packages</span> <span class="p">(</span><span class="n">JARs</span><span class="p">)</span> <span class="k">for</span> <span class="n">the</span> <span class="n">Fortress</span> <span class="n">core</span> <span class="n">API</span> <span class="n">and</span> <span class="n">other</span> 
+                                # <span class="n">extensions</span> <span class="n">and</span> <span class="n">install</span> <span class="n">them</span> <span class="n">to</span> <span class="n">the</span> <span class="n">local</span> <span class="n">Maven</span> <span class="n">repository</span><span class="p">.</span>
+$ <span class="n">mvn</span> <span class="n">site</span>                      # <span class="n">Generate</span> <span class="n">reports</span> <span class="p">(</span><span class="n">JavaDoc</span> <span class="n">and</span> <span class="n">various</span> <span class="n">other</span> <span class="n">reports</span><span class="p">)</span>
+$ <span class="n">mvn</span> <span class="n">package</span>                   # <span class="n">Generate</span> <span class="n">a</span> <span class="n">tarball</span>
+</pre></div>
+
+
+<p>Eclipse users:
+Don't forget to declare a classpath variable named M2_REPO, pointing to <code>~/.m2/repository</code>, otherwise many links to existing jars will be broken.
+You can declare new variables in Eclipse in Windows -&gt; Preferences... and selecting Java -&gt; Build Path -&gt; Classpath Variables</p>
+<p>If you want to check out the source code of previous releases, you have to select the branch you want to work on :</p>
+<p>$ git clone http://git-wip-us.apache.org/repos/asf/directory-fortress-core.git fortress-core
+  $ git checkout <tag></p>
+<h2 id="fortress-realm">Fortress-realm</h2>
+<div class="codehilite"><pre>$ <span class="n">git</span> <span class="n">clone</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">git</span><span class="o">-</span><span class="n">wip</span><span class="o">-</span><span class="n">us</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">directory</span><span class="o">-</span><span class="n">fortress</span><span class="o">-</span><span class="n">realm</span><span class="p">.</span><span class="n">git</span> <span class="n">fortress</span><span class="o">-</span><span class="n">realm</span>
+$ <span class="n">cd</span> <span class="n">fortress</span><span class="o">-</span><span class="n">realm</span>
+$ <span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span>             # <span class="n">Build</span> <span class="n">packages</span> <span class="p">(</span><span class="n">JARs</span><span class="p">)</span> <span class="k">for</span> <span class="n">the</span> <span class="n">Fortress</span> <span class="n">realm</span> <span class="n">API</span> <span class="n">and</span> <span class="n">other</span> 
+                                # <span class="n">extensions</span> <span class="n">and</span> <span class="n">install</span> <span class="n">them</span> <span class="n">to</span> <span class="n">the</span> <span class="n">local</span> <span class="n">Maven</span> <span class="n">repository</span><span class="p">.</span>
+$ <span class="n">mvn</span> <span class="n">site</span>                      # <span class="n">Generate</span> <span class="n">reports</span> <span class="p">(</span><span class="n">JavaDoc</span> <span class="n">and</span> <span class="n">various</span> <span class="n">other</span> <span class="n">reports</span><span class="p">)</span>
+$ <span class="n">mvn</span> <span class="n">package</span>                   # <span class="n">Generate</span> <span class="n">a</span> <span class="n">tarball</span>
+</pre></div>
+
+
+<p>Eclipse users:
+Don't forget to declare a classpath variable named M2_REPO, pointing to <code>~/.m2/repository</code>, otherwise many links to existing jars will be broken.
+You can declare new variables in Eclipse in Windows -&gt; Preferences... and selecting Java -&gt; Build Path -&gt; Classpath Variables</p>
+<p>If you want to check out the source code of previous releases, you have to select the branch you want to work on :</p>
+<p>$ git clone http://git-wip-us.apache.org/repos/asf/directory-fortress-realm.git fortress-realm
+  $ git checkout <tag></p>
+<h2 id="fortress-enmasse">Fortress-enmasse</h2>
+<div class="codehilite"><pre>$ <span class="n">git</span> <span class="n">clone</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">git</span><span class="o">-</span><span class="n">wip</span><span class="o">-</span><span class="n">us</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">directory</span><span class="o">-</span><span class="n">fortress</span><span class="o">-</span><span class="n">enmasse</span><span class="p">.</span><span class="n">git</span> <span class="n">fortress</span><span class="o">-</span><span class="n">enmasse</span>
+$ <span class="n">cd</span> <span class="n">fortress</span><span class="o">-</span><span class="n">enmasse</span>
+$ <span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span>             # <span class="n">Build</span> <span class="n">packages</span> <span class="p">(</span><span class="n">JARs</span><span class="p">)</span> <span class="k">for</span> <span class="n">the</span> <span class="n">Fortress</span> <span class="n">enmasse</span> <span class="n">API</span> <span class="n">and</span> <span class="n">other</span> 
+                                # <span class="n">extensions</span> <span class="n">and</span> <span class="n">install</span> <span class="n">them</span> <span class="n">to</span> <span class="n">the</span> <span class="n">local</span> <span class="n">Maven</span> <span class="n">repository</span><span class="p">.</span>
+$ <span class="n">mvn</span> <span class="n">site</span>                      # <span class="n">Generate</span> <span class="n">reports</span> <span class="p">(</span><span class="n">JavaDoc</span> <span class="n">and</span> <span class="n">various</span> <span class="n">other</span> <span class="n">reports</span><span class="p">)</span>
+$ <span class="n">mvn</span> <span class="n">package</span>                   # <span class="n">Generate</span> <span class="n">a</span> <span class="n">tarball</span>
+</pre></div>
+
+
+<p>Eclipse users:
+Don't forget to declare a classpath variable named M2_REPO, pointing to <code>~/.m2/repository</code>, otherwise many links to existing jars will be broken.
+You can declare new variables in Eclipse in Windows -&gt; Preferences... and selecting Java -&gt; Build Path -&gt; Classpath Variables</p>
+<p>If you want to check out the source code of previous releases, you have to select the branch you want to work on :</p>
+<p>$ git clone http://git-wip-us.apache.org/repos/asf/directory-fortress-enmasse.git fortress-enmasse
+  $ git checkout <tag></p>
+<h2 id="fortress-commander">Fortress-commander</h2>
+<div class="codehilite"><pre>$ <span class="n">git</span> <span class="n">clone</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">git</span><span class="o">-</span><span class="n">wip</span><span class="o">-</span><span class="n">us</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">directory</span><span class="o">-</span><span class="n">fortress</span><span class="o">-</span><span class="n">commander</span><span class="p">.</span><span class="n">git</span> <span class="n">fortress</span><span class="o">-</span><span class="n">commander</span>
+$ <span class="n">cd</span> <span class="n">fortress</span><span class="o">-</span><span class="n">commander</span>
+$ <span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span>             # <span class="n">Build</span> <span class="n">packages</span> <span class="p">(</span><span class="n">JARs</span><span class="p">)</span> <span class="k">for</span> <span class="n">the</span> <span class="n">Fortress</span> <span class="n">commander</span> <span class="n">API</span> <span class="n">and</span> <span class="n">other</span> 
+                                # <span class="n">extensions</span> <span class="n">and</span> <span class="n">install</span> <span class="n">them</span> <span class="n">to</span> <span class="n">the</span> <span class="n">local</span> <span class="n">Maven</span> <span class="n">repository</span><span class="p">.</span>
+$ <span class="n">mvn</span> <span class="n">site</span>                      # <span class="n">Generate</span> <span class="n">reports</span> <span class="p">(</span><span class="n">JavaDoc</span> <span class="n">and</span> <span class="n">various</span> <span class="n">other</span> <span class="n">reports</span><span class="p">)</span>
+$ <span class="n">mvn</span> <span class="n">package</span>                   # <span class="n">Generate</span> <span class="n">a</span> <span class="n">tarball</span>
+</pre></div>
+
+
+<p>Eclipse users:
+Don't forget to declare a classpath variable named M2_REPO, pointing to <code>~/.m2/repository</code>, otherwise many links to existing jars will be broken.
+You can declare new variables in Eclipse in Windows -&gt; Preferences... and selecting Java -&gt; Build Path -&gt; Classpath Variables</p>
+<p>If you want to check out the source code of previous releases, you have to select the branch you want to work on :</p>
+<p>$ git clone http://git-wip-us.apache.org/repos/asf/directory-fortress-commander.git fortress-commander
+  $ git checkout <tag></p>
+<h1 id="coding-convention">Coding Convention</h1>
+<p>The applicable coding standards for Fortress are described in <a href="coding-standards.html">Coding Standards</a></p>
+<h1 id="deploying-snapshots-commiters-only">Deploying Snapshots (Commiters Only)</h1>
+<p>Before running Maven to deploy artifacts, <em>please make sure if your umask is configured correctly</em>.  Unless configured properly, other committers will experience annoying 'permission denied' errors.  If your default shell is <code>bash</code>, please update your umask setting in the <code>~/.bashrc</code> file (create one if it doesn't exist.) by adding the following line:</p>
+<div class="codehilite"><pre><span class="n">umask</span> 002
+</pre></div>
+
+
+<p>Please note that you have to edit the correct <code>shrc</code> file.  If you use <code>csh</code>, then you will have to edit <code>~/.cshrc</code> file.</p>
+<p>Now you are ready to deploy the artifacts if you configured your umask correctly.</p>
+<div class="codehilite"><pre>$ <span class="n">git</span> <span class="n">clone</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">git</span><span class="o">-</span><span class="n">wip</span><span class="o">-</span><span class="n">us</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">directory</span><span class="o">-</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="p">.</span><span class="n">git</span> <span class="n">fortress</span><span class="o">-</span><span class="n">core</span>
+$ <span class="n">cd</span> <span class="n">fortress</span><span class="o">-</span><span class="n">core</span>
+$ <span class="n">mvn</span> <span class="n">clean</span> <span class="n">deploy</span> <span class="n">site</span> <span class="n">site</span><span class="p">:</span><span class="n">deploy</span>    # <span class="n">Make</span> <span class="n">sure</span> <span class="n">to</span> <span class="n">run</span> <span class="s">&#39;clean&#39;</span> <span class="n">goal</span> <span class="n">first</span> <span class="n">to</span> <span class="n">prevent</span> <span class="n">side</span> <span class="n">effects</span> <span class="n">from</span> <span class="n">your</span> <span class="n">IDE</span><span class="p">.</span>
+</pre></div>
+
+
+<p>(do the same thing for the <em>enmasse, realm and commander</em> projects)</p>
+<p>Please double-check the mode (i.e. <code>0664</code> or <code>-rw-rw-r--</code>, a.k.a permission code) of the deployed artifacts, otherwise you can waste other people's time significantly.</p>
+<h1 id="releasing-a-point-release-committers-only">Releasing a Point Release (Committers Only)</h1>
+<h2 id="preparing-the-release-for-the-vote">Preparing the release for the vote</h2>
+<p>Before starting be sure to have the java and mvn command in your PATH.
+On linux you can check with the following commands :</p>
+<div class="codehilite"><pre>$ <span class="n">type</span> <span class="n">mvn</span>
+<span class="n">mvn</span> <span class="n">is</span> <span class="n">hashed</span> <span class="p">(</span><span class="o">/</span><span class="n">opt</span><span class="o">/</span><span class="n">apache</span><span class="o">-</span><span class="n">maven</span><span class="o">-</span>3<span class="p">.</span>2<span class="p">.</span>5<span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">mvn</span><span class="p">)</span>
+$ <span class="n">type</span> <span class="n">java</span>
+<span class="n">java</span> <span class="n">is</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">java</span>
+</pre></div>
+
+
+<h3 id="step-0-building-fortress-xxx">Step 0: Building Fortress-xxx</h3>
+<DIV class="note" markdown="1">
+Here, 'xxx' is one of the four fortress mdules : core, enmasse, realm or comander
+</DIV>
+
+<h3 id="step-1-tagging-and-deploying">Step 1: Tagging and Deploying</h3>
+<p>First you need to configure maven for using the good username for scp and operation.</p>
+<p>In the <code>~/.m2/settings.xml</code> you need the following lines :</p>
+<div class="codehilite"><pre><span class="nt">&lt;settings</span> <span class="na">xmlns=</span><span class="s">&quot;http://maven.apache.org/POM/4.0.0&quot;</span>
+  <span class="na">xmlns:xsi=</span><span class="s">&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span>
+  <span class="na">xsi:schemaLocation=</span><span class="s">&quot;http://maven.apache.org/POM/4.0.0</span>
+<span class="s">                      http://maven.apache.org/xsd/settings-1.0.0.xsd&quot;</span><span class="nt">&gt;</span>
+
+  <span class="c">&lt;!-- SERVER SETTINGS --&gt;</span>
+  <span class="nt">&lt;servers&gt;</span>
+    <span class="c">&lt;!-- To publish a snapshot of some part of Maven --&gt;</span>
+    <span class="nt">&lt;server&gt;</span>
+      <span class="nt">&lt;id&gt;</span>apache.snapshots.https<span class="nt">&lt;/id&gt;</span>
+      <span class="nt">&lt;username&gt;</span>elecharny<span class="nt">&lt;/username&gt;</span>
+      <span class="nt">&lt;password&gt;</span>-----Your password here-----<span class="nt">&lt;/password&gt;</span>
+    <span class="nt">&lt;/server&gt;</span>
+    <span class="c">&lt;!-- To publish a website of some part of Maven --&gt;</span>
+    <span class="nt">&lt;server&gt;</span>
+      <span class="nt">&lt;id&gt;</span>apache.websites<span class="nt">&lt;/id&gt;</span>
+      <span class="nt">&lt;username&gt;</span>elecharny<span class="nt">&lt;/username&gt;</span>
+      <span class="nt">&lt;filePermissions&gt;</span>664<span class="nt">&lt;/filePermissions&gt;</span>
+      <span class="nt">&lt;directoryPermissions&gt;</span>775<span class="nt">&lt;/directoryPermissions&gt;</span>
+    <span class="nt">&lt;/server&gt;</span>
+    <span class="c">&lt;!-- To stage a release of some part of Maven --&gt;</span>
+    <span class="nt">&lt;server&gt;</span>
+      <span class="nt">&lt;id&gt;</span>apache.releases.https<span class="nt">&lt;/id&gt;</span>
+      <span class="nt">&lt;username&gt;</span>elecharny<span class="nt">&lt;/username&gt;</span>
+      <span class="nt">&lt;password&gt;</span>-----Your password here-----<span class="nt">&lt;/password&gt;</span>
+    <span class="nt">&lt;/server&gt;</span>
+    <span class="c">&lt;!-- To stage a website of some part of Maven --&gt;</span>
+    <span class="nt">&lt;server&gt;</span>
+      <span class="nt">&lt;id&gt;</span>stagingSite<span class="nt">&lt;/id&gt;</span> <span class="c">&lt;!-- must match hard-coded repository identifier in site:stage-deploy --&gt;</span>
+      <span class="nt">&lt;username&gt;</span>elecharny<span class="nt">&lt;/username&gt;</span>
+      <span class="nt">&lt;filePermissions&gt;</span>664<span class="nt">&lt;/filePermissions&gt;</span>
+      <span class="nt">&lt;directoryPermissions&gt;</span>775<span class="nt">&lt;/directoryPermissions&gt;</span>
+    <span class="nt">&lt;/server&gt;</span>
+  <span class="nt">&lt;/servers&gt;</span>
+
+  <span class="c">&lt;!-- PROFILE SETTINGS --&gt;</span>
+  <span class="nt">&lt;profiles&gt;</span>
+    <span class="nt">&lt;profile&gt;</span>
+      <span class="nt">&lt;id&gt;</span>apache-release<span class="nt">&lt;/id&gt;</span>
+      <span class="nt">&lt;properties&gt;</span>
+        <span class="c">&lt;!-- Configuration for artifacts signature --&gt;</span>
+        <span class="nt">&lt;gpg.passphrase&gt;</span>-----Your passphrase here-----<span class="nt">&lt;/gpg.passphrase&gt;</span>
+      <span class="nt">&lt;/properties&gt;</span>
+    <span class="nt">&lt;/profile&gt;</span>
+  <span class="nt">&lt;/profiles&gt;</span>
+
+<span class="nt">&lt;/settings&gt;</span>
+</pre></div>
+
+
+<h3 id="step-2-processing-with-a-dry-run">step 2 : Processing with a dry run</h3>
+<p>After having checked out the trunk, and built it (see step 0), </p>
+<div class="codehilite"><pre>$ <span class="n">git</span> <span class="n">clone</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">git</span><span class="o">-</span><span class="n">wip</span><span class="o">-</span><span class="n">us</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">directory</span><span class="o">-</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="p">.</span><span class="n">git</span> <span class="n">directory</span><span class="o">-</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span>
+$ <span class="n">cd</span> <span class="n">directory</span><span class="o">-</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span>
+$ <span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span>
+</pre></div>
+
+
+<p>run the following commands :</p>
+<div class="codehilite"><pre>$ <span class="n">mvn</span> <span class="o">-</span><span class="n">Papache</span><span class="o">-</span><span class="n">release</span> <span class="o">-</span><span class="n">DdryRun</span><span class="p">=</span><span class="n">true</span> <span class="n">release</span><span class="p">:</span><span class="n">prepare</span>    # <span class="n">Dry</span><span class="o">-</span><span class="n">run</span> <span class="n">first</span><span class="p">.</span>
+</pre></div>
+
+
+<p>Answer to maven questions :</p>
+<div class="codehilite"><pre>&quot;<span class="n">What</span> <span class="n">is</span> <span class="n">the</span> <span class="n">release</span> <span class="n">version</span> <span class="k">for</span> &quot;<span class="n">Apache</span> <span class="n">Fortress</span> <span class="n">Core</span>&quot;? <span class="p">(</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">directory</span><span class="p">.</span><span class="n">project</span><span class="p">:</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="p">)</span> 1<span class="p">.</span>0<span class="o">-</span><span class="n">RC40</span><span class="p">:</span> <span class="p">:</span>&quot; 
+<span class="o">&lt;</span><span class="n">either</span> <span class="n">use</span> <span class="n">the</span> <span class="n">default</span> <span class="n">version</span> <span class="n">as</span> <span class="n">suggested</span><span class="p">,</span> <span class="n">or</span> <span class="n">type</span> <span class="n">in</span> <span class="n">the</span> <span class="n">version</span> <span class="n">you</span><span class="p">@</span><span class="n">qot</span><span class="p">;</span><span class="n">d</span> <span class="n">like</span> <span class="n">to</span> <span class="n">be</span> <span class="n">used</span><span class="o">&gt;</span>
+<span class="p">[..]</span>
+</pre></div>
+
+
+<p>Then some other questions will be asked, about the next version to use. The default values should be fine :</p>
+<div class="codehilite"><pre><span class="n">What</span> <span class="n">is</span> <span class="n">SCM</span> <span class="n">release</span> <span class="n">tag</span> <span class="n">or</span> <span class="n">label</span> <span class="k">for</span> &quot;<span class="n">Apache</span> <span class="n">Fortress</span> <span class="n">Core</span>&quot;? <span class="p">(</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">directory</span><span class="p">.</span><span class="n">project</span><span class="p">:</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="p">)</span> 1<span class="p">.</span>0<span class="o">-</span><span class="n">RC40</span><span class="p">:</span> <span class="p">:</span> 
+<span class="o">&lt;</span><span class="n">Same</span> <span class="n">here</span> <span class="p">:</span> <span class="n">keep</span> 1<span class="p">.</span>0<span class="o">-</span><span class="n">RC40</span><span class="p">,</span> <span class="n">or</span> <span class="n">change</span> <span class="n">it</span> <span class="k">if</span> <span class="n">needed</span><span class="o">&gt;</span>
+<span class="n">What</span> <span class="n">is</span> <span class="n">the</span> <span class="n">new</span> <span class="n">development</span> <span class="n">version</span> <span class="k">for</span> &quot;<span class="n">Apache</span> <span class="n">Fortress</span> <span class="n">Core</span>&quot;? <span class="p">(</span><span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">directory</span><span class="p">.</span><span class="n">project</span><span class="p">:</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="p">)</span> 1<span class="p">.</span>0<span class="o">-</span><span class="n">RC41</span><span class="o">-</span><span class="n">SNAPSHOT</span><span class="p">:</span> <span class="p">:</span> 
+<span class="o">&lt;</span><span class="n">Same</span> <span class="n">here</span><span class="p">...</span><span class="o">&gt;</span>
+</pre></div>
+
+
+<DIV class="info" markdown="1">
+**Be Careful**
+
+Make sure the change made by the release plugin is correct! (pom.xml, tags created)
+</DIV>
+
+<h3 id="step-3-processing-with-the-real-release">Step 3 : Processing with the real release</h3>
+<p>When the dry run is successful, then you can do in real with the following commands:</p>
+<div class="codehilite"><pre>$ <span class="n">mvn</span> <span class="o">-</span><span class="n">Papache</span><span class="o">-</span><span class="n">release</span> <span class="n">release</span><span class="p">:</span><span class="n">clean</span>      # <span class="n">Clean</span> <span class="n">up</span> <span class="n">the</span> <span class="n">temporary</span> <span class="n">files</span> <span class="n">created</span> <span class="n">by</span> <span class="n">the</span> <span class="n">dry</span><span class="o">-</span><span class="n">run</span><span class="p">.</span>
+$ <span class="n">mvn</span> <span class="o">-</span><span class="n">Papache</span><span class="o">-</span><span class="n">release</span> <span class="n">release</span><span class="p">:</span><span class="n">prepare</span>    # <span class="n">Copy</span> <span class="n">to</span> <span class="n">tags</span> <span class="n">directory</span><span class="p">.</span>
+</pre></div>
+
+
+<p>The first step will clean up the local sources, the second step will release for real. The same questions will be asked as those we had during the dry run step.</p>
+<p>At some point, it will ask for your passphrase (the one you used when you created your PGP key). Type it in.</p>
+<p>Three mails will be generated, and sent to commits@directory.apache.org :</p>
+<div class="codehilite"><pre><span class="n">git</span> <span class="n">commit</span><span class="p">:</span> <span class="p">[</span><span class="n">maven</span><span class="o">-</span><span class="n">release</span><span class="o">-</span><span class="n">plugin</span><span class="p">]</span> <span class="n">prepare</span> <span class="n">release</span> 2<span class="p">.</span>0<span class="p">.</span>9
+<span class="n">Git</span> <span class="n">Push</span> <span class="n">Summary</span>
+<span class="n">git</span> <span class="n">commit</span><span class="p">:</span> <span class="p">[</span><span class="n">maven</span><span class="o">-</span><span class="n">release</span><span class="o">-</span><span class="n">plugin</span><span class="p">]</span> <span class="n">prepare</span> <span class="k">for</span> <span class="n">next</span> <span class="n">development</span> <span class="n">iteration</span>
+</pre></div>
+
+
+<p>Repository: directory-fortress-core
+  Updated Branches:
+    refs/heads/master 7f1f90d2b -&gt; bb9137136</p>
+<p>[maven-release-plugin] prepare release 1.0-RC40</p>
+<p>Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
+  Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/bb913713
+  Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/bb913713
+  Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/bb913713</p>
+<p>Branch: refs/heads/master
+  Commit: bb9137136d58f334415825b15f58c3173c923de2
+  Parents: 7f1f90d
+  Author: Emmanuel Lecharny <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#101;&#108;&#101;&#99;&#104;&#97;&#114;&#110;&#121;&#64;&#115;&#121;&#109;&#97;&#115;&#46;&#99;&#111;&#109;">&#101;&#108;&#101;&#99;&#104;&#97;&#114;&#110;&#121;&#64;&#115;&#121;&#109;&#97;&#115;&#46;&#99;&#111;&#109;</a>
+  Authored: Fri Apr 3 15:35:20 2015 +0200
+  Committer: Emmanuel Lecharny <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#101;&#108;&#101;&#99;&#104;&#97;&#114;&#110;&#121;&#64;&#115;&#121;&#109;&#97;&#115;&#46;&#99;&#111;&#109;">&#101;&#108;&#101;&#99;&#104;&#97;&#114;&#110;&#121;&#64;&#115;&#121;&#109;&#97;&#115;&#46;&#99;&#111;&#109;</a>
+  Committed: Fri Apr 3 15:35:20 2015 +0200
+  ...</p>
+<p>The first mail tells you that the SNAPSHOT has been moved to the release version in trunk, the second mails tells you that this version has been tagged, and the last mail tells you that trunk has moved to the next version.</p>
+<h3 id="step-4-perform-the-release">Step 4 : perform the release</h3>
+<p>The last step before launching a vote is to push the potential release to Nexus so that every user can test the created packages. Perform the following actions</p>
+<div class="codehilite"><pre>$ <span class="n">mvn</span> <span class="o">-</span><span class="n">Papache</span><span class="o">-</span><span class="n">release</span> <span class="n">release</span><span class="p">:</span><span class="n">perform</span>
+<span class="p">...</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">------------------------------------------------------------------------</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">BUILD</span> <span class="n">SUCCESS</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">------------------------------------------------------------------------</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Total</span> <span class="n">time</span><span class="p">:</span> 01<span class="p">:</span>00 <span class="n">min</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Finished</span> <span class="n">at</span><span class="p">:</span> 2015<span class="o">-</span>04<span class="o">-</span>03<span class="n">T15</span><span class="p">:</span>41<span class="p">:</span>26<span class="o">+</span>02<span class="p">:</span>00
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Final</span> <span class="n">Memory</span><span class="p">:</span> 50<span class="n">M</span><span class="o">/</span>247<span class="n">M</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">------------------------------------------------------------------------</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Cleaning</span> <span class="n">up</span> <span class="n">after</span> <span class="n">release</span><span class="p">...</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">------------------------------------------------------------------------</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">BUILD</span> <span class="n">SUCCESS</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">------------------------------------------------------------------------</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Total</span> <span class="n">time</span><span class="p">:</span> 01<span class="p">:</span>16 <span class="n">min</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Finished</span> <span class="n">at</span><span class="p">:</span> 2015<span class="o">-</span>04<span class="o">-</span>03<span class="n">T15</span><span class="p">:</span>41<span class="p">:</span>26<span class="o">+</span>02<span class="p">:</span>00
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="n">Final</span> <span class="n">Memory</span><span class="p">:</span> 17<span class="n">M</span><span class="o">/</span>247<span class="n">M</span>
+<span class="p">[</span><span class="n">INFO</span><span class="p">]</span> <span class="o">------------------------------------------------------------------------</span>
+</pre></div>
+
+
+<p>Done !</p>
+<h3 id="step-5-closing-the-staging-release-on-nexus">Step 5 : closing the staging release on nexus</h3>
+<p>Now, you have to close the staged project on nexus. In order to do that you <em>must</em> have exported your PGP key to a PGP public server <a href="http://www.apache.org/dev/openpgp.html">see</a></p>
+<p>Connect to the <a href="https://repository.apache.org">Nexus server</a>, login, and select the MINA staging repository you just created, then click on the 'close' button. You are home...</p>
+<h3 id="step-6-build-the-site">Step 6 : Build the Site</h3>
+<div class="codehilite"><pre>$ <span class="n">cd</span> <span class="n">target</span><span class="o">/</span><span class="n">checkout</span>
+$ <span class="n">mvn</span> <span class="n">site</span>
+</pre></div>
+
+
+<p>This creates the site.</p>
+<h3 id="step-7-sign-the-packages">Step 7 : Sign the packages</h3>
+<p>Now, you have to sign the binary packages which are in target/checkout/target.</p>
+<DIV class="note" markdown="1">
+Use your PGP key ID (the pub key, 4096R/[XXXXXXX] where [XXXXXXX] is the key ID)
+</DIV>
+
+<p>You can get the keys by typing :</p>
+<div class="codehilite"><pre><span class="n">gpg</span> <span class="o">--</span><span class="n">list</span><span class="o">-</span><span class="n">keys</span>
+</pre></div>
+
+
+<p>You'll get something like :</p>
+<p>$ gpg --list-keys
+  /Users/elecharny/.gnupg/pubring.gpg</p>
+<hr />
+<p>pub   2048D/xxxxxxxx 2009-12-03
+  uid                  Emmanuel Lecharny <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#101;&#108;&#101;&#99;&#104;&#97;&#114;&#110;&#121;&#64;&#110;&#101;&#120;&#116;&#117;&#114;&#121;&#46;&#99;&#111;&#109;">&#101;&#108;&#101;&#99;&#104;&#97;&#114;&#110;&#121;&#64;&#110;&#101;&#120;&#116;&#117;&#114;&#121;&#46;&#99;&#111;&#109;</a>
+  sub   2048g/yyyyyyyy 2009-12-03</p>
+<p>pub   4096R/zzzzzzzz 2010-09-13
+  uid                  Emmanuel Lecharny (CODE SIGNING KEY) <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#101;&#108;&#101;&#99;&#104;&#97;&#114;&#110;&#121;&#64;&#97;&#112;&#97;&#99;&#104;&#101;&#46;&#111;&#114;&#103;">&#101;&#108;&#101;&#99;&#104;&#97;&#114;&#110;&#121;&#64;&#97;&#112;&#97;&#99;&#104;&#101;&#46;&#111;&#114;&#103;</a>
+  sub   4096R/tttttttt 2010-09-13
+  ...</p>
+<p>Take the <zzzzzzzz> part of your 4096 bit key.</p>
+<p>Use a shell script to sign the packages which are stored in target/checkout/target. You will first have to delete the created .asc files :</p>
+<p>$ cd target/checkout/target
+  $ rm *.asc
+  $ ~/sign.sh 
+  PGP Key ID: 
+  <your PGP key>
+  PGP Key Password: 
+  <Your PGP passphrase></p>
+<p>-n Signing: ./fortress-core-1.0-RC40-javadoc.jar ... 
+    - Generated './fortress-core-1.0-RC40-javadoc.jar.md5'
+    - Generated './fortress-core-1.0-RC40-javadoc.jar.sha1'
+    - Generated './fortress-core-1.0-RC40-javadoc.jar.asc'
+  -n Signing: ./fortress-core-1.0-RC40-source-release.zip ... 
+    - Generated './fortress-core-1.0-RC40-source-release.zip.md5'
+    - Generated './fortress-core-1.0-RC40-source-release.zip.sha1'
+    - Generated './fortress-core-1.0-RC40-source-release.zip.asc'
+  -n Signing: ./fortress-core-1.0-RC40-sources.jar ... 
+    - Generated './fortress-core-1.0-RC40-sources.jar.md5'
+    - Generated './fortress-core-1.0-RC40-sources.jar.sha1'
+    - Generated './fortress-core-1.0-RC40-sources.jar.asc'
+  -n Signing: ./fortress-core-1.0-RC40.jar ... 
+    - Generated './fortress-core-1.0-RC40.jar.md5'
+    - Generated './fortress-core-1.0-RC40.jar.sha1'
+    - Generated './fortress-core-1.0-RC40.jar.asc'
+  ...</p>
+<p>Here is the sign.sh script you can use :</p>
+<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
+ 2
+ 3
+ 4
+ 5
+ 6
+ 7
+ 8
+ 9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46</pre></div></td><td class="code"><div class="codehilite"><pre><span class="c">#!/bin/sh</span>
+
+<span class="nb">echo</span> <span class="s2">&quot;PGP Key ID: &quot;</span>
+<span class="nb">read </span>DEFAULT_KEY
+
+<span class="nb">echo</span> <span class="s2">&quot;PGP Key Password: &quot;</span>
+stty -echo
+<span class="nb">read </span>PASSWORD
+stty <span class="nb">echo</span>
+<span class="nb">echo</span> <span class="s2">&quot;&quot;</span>
+
+<span class="k">for </span>FILE in <span class="k">$(</span>find . -maxdepth 1 -not <span class="s1">&#39;(&#39;</span> -name <span class="s2">&quot;sign.sh&quot;</span> -or -name <span class="s2">&quot;.*&quot;</span> -or -name <span class="s2">&quot;*.md5&quot;</span> -or -name <span class="s2">&quot;*.sha1&quot;</span> -or -name <span class="s2">&quot;*.asc&quot;</span> <span class="s1">&#39;)&#39;</span> -and -type f<span class="k">)</span> ; <span class="k">do</span>
+<span class="k">    if</span> <span class="o">[</span> -f <span class="s2">&quot;$FILE.asc&quot;</span> <span class="o">]</span>; <span class="k">then</span>
+<span class="k">        </span><span class="nb">echo</span> <span class="s2">&quot;Skipping: $FILE&quot;</span>
+        <span class="k">continue</span>
+<span class="k">    fi</span>
+
+<span class="k">    </span><span class="nb">echo</span> -n <span class="s2">&quot;Signing: $FILE ... &quot;</span>
+
+    <span class="c"># MD5</span>
+    <span class="k">if</span> <span class="o">[</span> ! -f <span class="s2">&quot;$FILE.md5&quot;</span> <span class="o">]</span>;
+    <span class="k">then</span>
+<span class="k">        </span>openssl md5 &lt; <span class="s2">&quot;$FILE&quot;</span> | cut <span class="s2">&quot;-d &quot;</span> -f2 &gt; <span class="s2">&quot;$FILE.md5&quot;</span>
+        <span class="nb">echo</span> <span class="s2">&quot;  - Generated &#39;$FILE.md5&#39;&quot;</span>
+    <span class="k">else</span>
+<span class="k">        </span><span class="nb">echo</span> <span class="s2">&quot;  - Skipped &#39;$FILE.md5&#39; (file already existing)&quot;</span>
+    <span class="k">fi</span>
+
+    <span class="c"># SHA1</span>
+    <span class="k">if</span> <span class="o">[</span> ! -f <span class="s2">&quot;$FILE.sha1&quot;</span> <span class="o">]</span>;
+    <span class="k">then</span>
+<span class="k">        </span>gpg -v --default-key <span class="s2">&quot;$DEFAULT_KEY&quot;</span> --print-md SHA1 <span class="s2">&quot;$FILE&quot;</span> &gt; <span class="s2">&quot;$FILE&quot;</span>.sha1
+        <span class="nb">echo</span> <span class="s2">&quot;  - Generated &#39;$FILE.sha1&#39;&quot;</span>
+    <span class="k">else</span>
+<span class="k">        </span><span class="nb">echo</span> <span class="s2">&quot;  - Skipped &#39;$FILE.sha1&#39; (file already existing)&quot;</span>
+    <span class="k">fi</span>
+
+    <span class="c"># ASC</span>
+    <span class="k">if</span> <span class="o">[</span> ! -f <span class="s2">&quot;$FILE.asc&quot;</span> <span class="o">]</span>;
+    <span class="k">then</span>
+<span class="k">        </span><span class="nb">echo</span> <span class="s2">&quot;$PASSWORD&quot;</span> | gpg --default-key <span class="s2">&quot;$DEFAULT_KEY&quot;</span> --detach-sign --armor --no-tty --yes --passphrase-fd 0 <span class="s2">&quot;$FILE&quot;</span>
+        <span class="nb">echo</span> <span class="s2">&quot;  - Generated &#39;$FILE.asc&#39;&quot;</span>
+    <span class="k">else</span>
+<span class="k">        </span><span class="nb">echo</span> <span class="s2">&quot;  - Skipped &#39;$FILE.asc&#39; (file already existing)&quot;</span>
+    <span class="k">fi</span>
+<span class="k">done</span>
+</pre></div>
+</td></tr></table>
+
+<h3 id="step-8-publish-source-and-binary-distribution-packages">Step 8 : Publish Source and Binary Distribution Packages</h3>
+<p>First of all, create a new directory on people.apache.org/public_html to store the pacckages :</p>
+<div class="codehilite"><pre>$ <span class="n">ssh</span> <span class="n">people</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span>
+$ <span class="n">mkdir</span> <span class="n">public_html</span><span class="o">/</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="o">-&lt;</span><span class="n">version</span><span class="o">&gt;</span>
+$ <span class="n">exit</span>
+</pre></div>
+
+
+<p>Then copy the packages :</p>
+<div class="codehilite"><pre>$ <span class="n">cd</span> <span class="n">target</span><span class="o">/</span><span class="n">checkout</span><span class="o">/</span><span class="n">target</span>
+$ <span class="n">scp</span> <span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="o">-&lt;</span><span class="n">version</span><span class="o">&gt;-</span><span class="n">source</span><span class="o">-</span><span class="n">release</span><span class="p">.</span><span class="n">zip</span><span class="o">*</span> <span class="n">people</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="p">:</span><span class="n">public_html</span><span class="o">/</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="o">-&lt;</span><span class="n">version</span><span class="o">&gt;/</span>
+</pre></div>
+
+
+<p>Update your index.html file on people.apach.org/public_html to make the packages visible. Here is an example of possible content :</p>
+<p><h2>Last Fortress core 1.0.0-RC40 arballs</h2>
+    <h3>Sources</h3></p>
+<div class="codehilite"><pre>  <span class="nt">&lt;img</span> <span class="na">src=</span><span class="s">&quot;/icons/compressed.gif&quot;</span> <span class="na">alt=</span><span class="s">&quot;[   ]&quot;</span><span class="nt">&gt;&lt;a</span> <span class="na">href=</span><span class="s">&quot;fortress-core-1.0-RC40/fortress-core-1.0-RC40-source-release.zip&quot;</span><span class="nt">&gt;</span>fortress-core-1.0-RC40-source-release.zip<span class="nt">&lt;/a&gt;&lt;br/&gt;</span>
+  <span class="nt">&lt;img</span> <span class="na">src=</span><span class="s">&quot;/icons/compressed.gif&quot;</span> <span class="na">alt=</span><span class="s">&quot;[   ]&quot;</span><span class="nt">&gt;&lt;a</span> <span class="na">href=</span><span class="s">&quot;fortress-core-1.0-RC40/fortress-core-1.0-RC40-source-release.zip.asc&quot;</span><span class="nt">&gt;</span>fortress-core-1.0-RC40-source-release.zip.asc<span class="nt">&lt;/a&gt;&lt;br/&gt;</span>
+  <span class="nt">&lt;img</span> <span class="na">src=</span><span class="s">&quot;/icons/compressed.gif&quot;</span> <span class="na">alt=</span><span class="s">&quot;[   ]&quot;</span><span class="nt">&gt;&lt;a</span> <span class="na">href=</span><span class="s">&quot;fortress-core-1.0-RC40/fortress-core-1.0-RC40-source-release.zip.md5&quot;</span><span class="nt">&gt;</span>fortress-core-1.0-RC40-source-release.zip.md5<span class="nt">&lt;/a&gt;&lt;br/&gt;</span>
+  <span class="nt">&lt;img</span> <span class="na">src=</span><span class="s">&quot;/icons/compressed.gif&quot;</span> <span class="na">alt=</span><span class="s">&quot;[   ]&quot;</span><span class="nt">&gt;&lt;a</span> <span class="na">href=</span><span class="s">&quot;fortress-core-1.0-RC40/fortress-core-1.0-RC40-source-release.zip.sha1&quot;</span><span class="nt">&gt;</span>fortress-core-1.0-RC40-source-release.zip.sha1<span class="nt">&lt;/a&gt;&lt;br/&gt;</span>
+</pre></div>
+
+
+<h2 id="step-9-voting-a-release">Step 9 : Voting a release</h2>
+<p>Once the tarballs have been created, and the binaries available in Nexus, a vote can be launched. Simply send a mail on the dev@directory.apache.org mailing list describing the new release.</p>
+<p>Here is how you  send a [VOTE] mail on the dev mailing list :</p>
+<div class="codehilite"><pre><span class="n">Hi</span><span class="p">,</span>
+
+<span class="o">&lt;</span><span class="n">blah</span> <span class="n">blah</span> <span class="n">blah</span><span class="o">&gt;</span>
+
+<span class="n">Here</span> <span class="n">is</span> <span class="n">the</span> <span class="n">list</span> <span class="n">of</span> <span class="n">fixed</span> <span class="n">issues</span> <span class="p">:</span>
+
+
+   <span class="o">*</span> <span class="p">[</span><span class="n">FC</span><span class="o">-</span>83 <span class="o">&lt;</span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">issues</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">jira</span><span class="o">/</span><span class="n">browse</span><span class="o">/</span><span class="n">FC</span><span class="o">-</span>83<span class="o">&gt;</span><span class="p">]</span> <span class="n">Cleanup</span> <span class="n">core</span> <span class="n">test</span> <span class="n">processing</span>
+   <span class="o">*</span> <span class="p">...</span>
+
+
+<span class="n">Here</span><span class="o">&#39;</span><span class="n">s</span> <span class="n">the</span> <span class="n">Jira</span> <span class="n">link</span> <span class="k">for</span> <span class="n">this</span> <span class="n">version</span> <span class="k">if</span> <span class="n">you</span><span class="o">&#39;</span><span class="n">d</span> <span class="n">like</span> <span class="n">to</span> <span class="n">review</span> <span class="n">issues</span> <span class="n">in</span> <span class="n">more</span> <span class="n">details</span><span class="p">:</span>
+
+<span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">issues</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">jira</span><span class="o">/</span><span class="n">secure</span><span class="o">/</span><span class="n">ReleaseNote</span><span class="p">.</span><span class="n">jspa</span>?<span class="n">projectId</span><span class="p">=</span>10670<span class="o">&amp;</span><span class="n">styleName</span><span class="p">=</span><span class="n">Html</span><span class="o">&amp;</span><span class="n">version</span><span class="p">=</span>12313702
+
+<span class="n">A</span> <span class="n">temporary</span> <span class="n">tag</span> <span class="n">has</span> <span class="n">been</span> <span class="n">created</span> <span class="p">(</span><span class="n">it</span> <span class="n">can</span> <span class="n">be</span> <span class="n">removed</span> <span class="k">if</span> <span class="n">the</span> <span class="n">vote</span> <span class="n">is</span> <span class="n">not</span> <span class="n">approved</span><span class="p">)</span>
+
+<span class="n">The</span> <span class="n">newly</span> <span class="n">approved</span> <span class="n">Nexus</span> <span class="n">has</span> <span class="n">been</span> <span class="n">used</span> <span class="k">for</span> <span class="n">the</span> <span class="n">preparation</span> <span class="n">of</span> <span class="n">this</span> <span class="n">release</span> <span class="n">and</span> <span class="n">all</span> <span class="n">final</span> <span class="n">artifacts</span> <span class="n">are</span> <span class="n">stored</span> 
+<span class="n">in</span> <span class="n">a</span> <span class="n">staging</span> <span class="n">repository</span><span class="p">:</span>
+<span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">repository</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">content</span><span class="o">/</span><span class="n">repositories</span><span class="o">/</span><span class="n">orgapachedirectory</span><span class="o">-</span>1028
+
+
+<span class="n">The</span> <span class="n">distributions</span> <span class="n">are</span> <span class="n">available</span> <span class="k">for</span> <span class="n">download</span> <span class="n">on</span> <span class="p">:</span>
+<span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">repository</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">content</span><span class="o">/</span><span class="n">repositories</span><span class="o">/</span><span class="n">orgapachedirectory</span><span class="o">-</span>1028<span class="o">/</span><span class="n">org</span><span class="o">/</span><span class="n">apache</span><span class="o">/</span><span class="n">directory</span><span class="o">/</span><span class="n">project</span><span class="o">/</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="o">/</span>1<span class="p">.</span>0<span class="o">-</span><span class="n">RC40</span><span class="o">/</span>
+
+<span class="n">Let</span> <span class="n">us</span> <span class="n">vote</span> <span class="p">:</span>
+<span class="p">[</span> <span class="p">]</span> <span class="o">+</span>1 <span class="o">|</span> <span class="n">Release</span> <span class="n">Fortress</span><span class="o">-</span><span class="n">core</span> 1<span class="p">.</span>0<span class="o">-</span><span class="n">RC40</span>
+<span class="p">[</span> <span class="p">]</span> <span class="o">+/-</span> <span class="o">|</span> <span class="n">Abstain</span>
+<span class="p">[</span> <span class="p">]</span> <span class="o">-</span>1 <span class="o">|</span> <span class="n">Do</span> <span class="o">*</span><span class="n">NOT</span><span class="o">*</span> <span class="n">Fortress</span><span class="o">-</span><span class="n">core</span> 1<span class="p">.</span>0<span class="o">-</span><span class="n">RC40</span>
+
+<span class="n">Thanks</span> !
+</pre></div>
+
+
+<p>The vote will be open for 72 hours. Once the delay is over, collect the votes, and count the binding +1/-1. If the vote is positive, then we can release.</p>
+<h3 id="step-11-close-the-vote">Step 11 : Close the vote</h3>
+<p>You can officially close the vote now. There are some more steps to fulfill :</p>
+<ul>
+<li>Release the project on https://repository.apache.org</li>
+<li>Copy the tarballs and heir signature in people.apache.org /www/www.apache.org/dist/fortress</li>
+</ul>
+<p>This can be done on people.apache.org :</p>
+<div class="codehilite"><pre>$ <span class="n">ssh</span> <span class="n">people</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span>
+# <span class="n">svn</span> <span class="n">co</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">dist</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">dist</span><span class="o">/</span><span class="n">release</span><span class="o">/</span><span class="n">directory</span><span class="o">/</span><span class="n">fortress</span><span class="o">/</span> <span class="n">fortress</span><span class="o">-</span><span class="n">dist</span>
+# <span class="n">cd</span> <span class="n">fortress</span><span class="o">-</span><span class="n">dist</span>
+# <span class="n">mkdir</span> <span class="o">&lt;</span><span class="n">version</span><span class="o">&gt;</span>
+# <span class="n">cp</span> <span class="p">.</span><span class="o">./</span><span class="n">public_html</span><span class="o">/</span><span class="n">fortress</span><span class="o">-</span><span class="n">core</span><span class="o">-&lt;</span><span class="n">version</span><span class="o">&gt;/*</span> <span class="o">&lt;</span><span class="n">version</span><span class="o">&gt;</span>
+# <span class="n">svn</span> <span class="n">add</span> <span class="o">&lt;</span><span class="n">version</span><span class="o">&gt;</span>
+# <span class="n">svn</span> <span class="n">ci</span> <span class="o">&lt;</span><span class="n">version</span><span class="o">&gt;</span>
+<span class="p">...</span>
+# <span class="n">exit</span>
+$
+</pre></div>
+
+
+<h3 id="step-12-deploy-web-reports-javadoc-and-jxr">Step 12: Deploy Web Reports (JavaDoc and JXR)</h3>
+<p>The javadoc and xref files have been generated in step 6, it's now time to push them into the production site. They are generated in the following directory :</p>
+<div class="codehilite"><pre><span class="n">target</span><span class="o">/</span><span class="n">checkout</span><span class="o">/</span><span class="n">target</span><span class="o">/</span><span class="n">site</span>
+</pre></div>
+
+
+<p>We will copy two directories :</p>
+<div class="codehilite"><pre><span class="n">apidocs</span>
+<span class="n">xref</span>
+</pre></div>
+
+
+<p>Staging or Production?</p>
+<DIV class="info" markdown="1">
+Those files will be stored on the production server only !!! And some extra caution ust be taken not to delete them when we will publish the staging site too...
+</DIV>
+
+<p>First of all, you must checkout the two CMS store for the site : staging and production.</p>
+<div class="codehilite"><pre>$ <span class="n">svn</span> <span class="n">co</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">svn</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">infra</span><span class="o">/</span><span class="n">websites</span><span class="o">/</span><span class="n">staging</span><span class="o">/</span><span class="n">mina</span><span class="o">/</span><span class="n">trunk</span> <span class="n">staging</span>
+<span class="p">...</span>
+$ <span class="n">svn</span> <span class="n">co</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">svn</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">infra</span><span class="o">/</span><span class="n">websites</span><span class="o">/</span><span class="n">production</span><span class="o">/</span><span class="n">mina</span> <span class="n">production</span>
+<span class="p">...</span>
+</pre></div>
+
+
+<p>Then copy the generated docs :</p>
+<div class="codehilite"><pre>$ <span class="n">cp</span> <span class="o">-</span><span class="n">r</span> <span class="o">~/</span><span class="n">mina</span><span class="o">/</span><span class="n">target</span><span class="o">/</span><span class="n">checkout</span><span class="o">/</span><span class="n">target</span><span class="o">/</span><span class="n">site</span><span class="o">/</span><span class="n">apidocs</span> <span class="n">production</span><span class="o">/</span><span class="n">content</span><span class="o">/</span><span class="n">mina</span><span class="o">/</span><span class="n">mina</span><span class="o">-</span><span class="n">project</span><span class="o">/</span>
+$ <span class="n">cp</span> <span class="o">-</span><span class="n">r</span> <span class="o">~/</span><span class="n">mina</span><span class="o">/</span><span class="n">target</span><span class="o">/</span><span class="n">checkout</span><span class="o">/</span><span class="n">target</span><span class="o">/</span><span class="n">site</span><span class="o">/</span><span class="n">xref</span> <span class="n">production</span><span class="o">/</span><span class="n">content</span><span class="o">/</span><span class="n">mina</span><span class="o">/</span><span class="n">mina</span><span class="o">-</span><span class="n">project</span><span class="o">/</span>
+$
+</pre></div>
+
+
+<p>You have to check in those directories :</p>
+<div class="codehilite"><pre>$ <span class="n">svn</span> <span class="n">add</span> <span class="n">apidocs</span>
+$ <span class="n">svn</span> <span class="n">add</span> <span class="n">xref</span>
+$ <span class="n">svn</span> <span class="n">ci</span> <span class="n">apidocs</span> <span class="n">xref</span> <span class="o">-</span><span class="n">m</span> &quot;<span class="n">Injected</span> <span class="n">MINA</span> <span class="o">&lt;</span><span class="n">version</span><span class="o">&gt;</span> <span class="n">javadocs</span>&quot;
+</pre></div>
+
+
+<p>Now, you have to update the staging site <em>extpaths.txt</em></p>
+<p>This file list the file on the production site that will not be overriden by the publication of the staging site. It has to be updated</p>
+<div class="codehilite"><pre>$ <span class="n">cd</span> <span class="o">~/</span><span class="n">apacheds</span><span class="o">/</span><span class="n">staging</span><span class="o">/</span><span class="n">content</span><span class="o">/</span>
+$ <span class="n">vi</span> <span class="n">extpaths</span><span class="p">.</span><span class="n">txt</span>
+</pre></div>
+
+
+<p>The following lines should be present. If not, add them and commit the file :</p>
+<div class="codehilite"><pre><span class="n">mina</span><span class="o">-</span><span class="n">project</span><span class="o">/</span><span class="n">apidocs</span>
+<span class="n">mina</span><span class="o">-</span><span class="n">project</span><span class="o">/</span><span class="n">testapidocs</span>
+<span class="n">mina</span><span class="o">-</span><span class="n">project</span><span class="o">/</span><span class="n">xref</span>
+<span class="n">mina</span><span class="o">-</span><span class="n">project</span><span class="o">/</span><span class="n">xref</span><span class="o">-</span><span class="n">test</span>
+<span class="p">...</span>
+</pre></div>
+
+
+<h3 id="step-13-wait-24-hours">Step 13: Wait 24 hours</h3>
+<p>We have to wait at least 24 hours for all mirrors to retrieve the uploaded files before making any announcement.  I'd recommend you to wait for 48 hours because some mirrors might lag due to various issues.</p>
+<h3 id="step-14-update-the-links-in-web-site">Step 14: Update the Links in Web Site</h3>
+<p>Update the links to new distributions in [Downloads] page.</p>
+<h3 id="step-15-wait-another-24-hours">Step 15: Wait another 24 hours</h3>
+<p>We need to wait until any changes made in the web site and metadata file(s) go live.</p>
+<h3 id="step-16-announce-the-new-release">Step 16: Announce the New Release</h3>
+<p>An announcement message can be sent to [mailto:announce@apache.org], [mailto:announce@apachenews.org], [mailto:users@mina.apache.org] and [mailto:dev@mina.apache.org].  Please note that announcement messages are rejected unless your from-address ends with <code>@apache.org</code>.  Plus, you shouldn't forget to post a news to the MINA site main page.</p>
+
+
+
+                </div><!-- rightColumn -->
+                <div id="endContent"></div>
+            </div><!-- content -->
+            <div id="footer">&copy; 2003-2014, <a href="http://www.apache.org">The Apache Software Foundation</a> - <a href="./../privacy-policy.html">Privacy Policy</a><br />
+                Apache Directory, ApacheDS, Apache Directory Server, Apache Directory Studio, Apache LDAP API, Apache Triplesec, Triplesec, Apache Mavibot, Mavibot, Apache eSCIMo, eSCIMo, Fortress, Apache Fortress, EnMasse, Apache EnMasse, Apache Kerby, Kerby
+                Apache, the Apache feather logo, and the Apache Directory project logos are trademarks of The Apache Software Foundation.
+            </div>
+        </div><!-- container -->
+    </body>
+</html>



Mime
View raw message