geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Geronimo Project Management > Geronimo 2.1.5 Release Tips
Date Mon, 29 Mar 2010 07:52:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=GMOxPMGT&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background-color: white" bgcolor="white">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
     <h2><a href="http://cwiki.apache.org/confluence/display/GMOxPMGT/Geronimo+2.1.5+Release+Tips">Geronimo
2.1.5 Release Tips</a></h2>
     <h4>Page <b>edited</b> by             <a href="http://cwiki.apache.org/confluence/display/~rwonly">Rex
Wang</a>
    </h4>
     
          <br/>
     <div class="notificationGreySide">
         <h2><a name="Geronimo2.1.5ReleaseTips-Prerequisite"></a>Prerequisite</h2>


<p>1. Use Genesis 2.0 as a parent pom</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;parent&gt;</span>
    <span class="code-tag">&lt;groupId&gt;</span>org.apache.geronimo.genesis<span
class="code-tag">&lt;/groupId&gt;</span>
    <span class="code-tag">&lt;artifactId&gt;</span>genesis-java5-flava<span
class="code-tag">&lt;/artifactId&gt;</span>
    <span class="code-tag">&lt;version&gt;</span>2.0<span class="code-tag">&lt;/version&gt;</span>
<span class="code-tag">&lt;/parent&gt;</span>
</pre>
</div></div>

<ul>
	<li>genesis-java5-flava-2.0.pom
	<ul>
		<li>genesis-default-flava-2.0.pom
		<ul>
			<li>genesis-2.0.pom
			<ul>
				<li>apache-6.pom</li>
			</ul>
			</li>
		</ul>
		</li>
	</ul>
	</li>
</ul>


<p>2. Use Maven 2.2.1 (not try if 2.0.10 or 2.0.11 can run)</p>
<ul>
	<li>Enable Apache Servers (refer: <a href="http://maven.apache.org/developers/committer-settings.html"
rel="nofollow">http://maven.apache.org/developers/committer-settings.html</a>)</li>
</ul>


<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;settings&gt;</span>
...
  <span class="code-tag">&lt;servers&gt;</span>
    <span class="code-tag"><span class="code-comment">&lt;!-- To publish a
snapshot of some part of Maven --&gt;</span></span>
    <span class="code-tag">&lt;server&gt;</span>
      <span class="code-tag">&lt;id&gt;</span>apache.snapshots.https<span
class="code-tag">&lt;/id&gt;</span>
      <span class="code-tag">&lt;username&gt;</span> <span class="code-tag"><span
class="code-comment">&lt;!-- YOUR APACHE LDAP USERNAME --&gt;</span></span>
<span class="code-tag">&lt;/username&gt;</span>
      <span class="code-tag">&lt;password&gt;</span> <span class="code-tag"><span
class="code-comment">&lt;!-- YOUR APACHE LDAP PASSWORD --&gt;</span></span>
<span class="code-tag">&lt;/password&gt;</span>
    <span class="code-tag">&lt;/server&gt;</span>
    <span class="code-tag"><span class="code-comment">&lt;!-- To publish a
website of some part of Maven --&gt;</span></span>
    <span class="code-tag">&lt;server&gt;</span>
      <span class="code-tag">&lt;id&gt;</span>apache.website<span class="code-tag">&lt;/id&gt;</span>
      <span class="code-tag">&lt;username&gt;</span> <span class="code-tag"><span
class="code-comment">&lt;!-- YOUR APACHE LDAP USERNAME --&gt;</span></span>
<span class="code-tag">&lt;/username&gt;</span>
      <span class="code-tag">&lt;filePermissions&gt;</span>664<span
class="code-tag">&lt;/filePermissions&gt;</span>
      <span class="code-tag">&lt;directoryPermissions&gt;</span>775<span
class="code-tag">&lt;/directoryPermissions&gt;</span>
    <span class="code-tag">&lt;/server&gt;</span>
    <span class="code-tag"><span class="code-comment">&lt;!-- To stage a release
of some part of Maven --&gt;</span></span>
    <span class="code-tag">&lt;server&gt;</span>
      <span class="code-tag">&lt;id&gt;</span>apache.releases.https<span
class="code-tag">&lt;/id&gt;</span>
      <span class="code-tag">&lt;username&gt;</span> <span class="code-tag"><span
class="code-comment">&lt;!-- YOUR APACHE LDAP USERNAME --&gt;</span></span>
<span class="code-tag">&lt;/username&gt;</span>
      <span class="code-tag">&lt;password&gt;</span> <span class="code-tag"><span
class="code-comment">&lt;!-- YOUR APACHE LDAP PASSWORD --&gt;</span></span>
<span class="code-tag">&lt;/password&gt;</span>
    <span class="code-tag">&lt;/server&gt;</span>
    <span class="code-tag"><span class="code-comment">&lt;!-- To stage a website
of some part of Maven --&gt;</span></span>
    <span class="code-tag">&lt;server&gt;</span>
      <span class="code-tag">&lt;id&gt;</span>stagingSite<span class="code-tag">&lt;/id&gt;</span>
<span class="code-tag"><span class="code-comment">&lt;!-- must match hard-coded
repository identifier in site:stage-deploy --&gt;</span></span>
      <span class="code-tag">&lt;username&gt;</span> <span class="code-tag"><span
class="code-comment">&lt;!-- YOUR APACHE LDAP USERNAME --&gt;</span></span>
<span class="code-tag">&lt;/username&gt;</span>
      <span class="code-tag">&lt;filePermissions&gt;</span>664<span
class="code-tag">&lt;/filePermissions&gt;</span>
      <span class="code-tag">&lt;directoryPermissions&gt;</span>775<span
class="code-tag">&lt;/directoryPermissions&gt;</span>
    <span class="code-tag">&lt;/server&gt;</span>
    ...
  <span class="code-tag">&lt;/servers&gt;</span>
<span class="code-tag">&lt;/settings&gt;</span>
</pre>
</div></div>

<p>3. Setup PGP Keys (for the ones who be the release manager the first time, refer:
<a href="http://maven.apache.org/developers/release/pmc-gpg-keys.html" rel="nofollow">http://maven.apache.org/developers/release/pmc-gpg-keys.html</a>)</p>
<ul>
	<li>Download pnugp2</li>
	<li>Generate your PGP Key (refer: <a href="http://www.apache.org/dev/openpgp.html"
rel="nofollow">http://www.apache.org/dev/openpgp.html</a>)
	<ul>
		<li>How To Avoid SHA-1</li>
		<li>How To Generate a Strong Key</li>
	</ul>
	</li>
	<li>Append your key to <a href="https://svn.apache.org/repos/asf/geronimo/KEYS"
rel="nofollow">https://svn.apache.org/repos/asf/geronimo/KEYS</a></li>
	<li>Update Maven's settings.xml with following:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;settings&gt;</span>
  ...
  <span class="code-tag">&lt;profiles&gt;</span>
    <span class="code-tag">&lt;profile&gt;</span>
      <span class="code-tag">&lt;id&gt;</span>apache-release<span class="code-tag">&lt;/id&gt;</span>
      <span class="code-tag">&lt;properties&gt;</span>
        <span class="code-tag">&lt;gpg.passphrase&gt;</span> <span
class="code-tag"><span class="code-comment">&lt;!-- YOUR KEY PASSPHRASE --&gt;</span></span>
<span class="code-tag">&lt;/gpg.passphrase&gt;</span>
      <span class="code-tag">&lt;/properties&gt;</span>
    <span class="code-tag">&lt;/profile&gt;</span>
  <span class="code-tag">&lt;/profiles&gt;</span>
  ...
<span class="code-tag">&lt;/settings&gt;</span>
</pre>
</div></div></li>
</ul>


<h2><a name="Geronimo2.1.5ReleaseTips-Specialchangesforreleasingtheserver2.1.5"></a>Special
changes for releasing the server 2.1.5</h2>

<p>1. Add "all-subprojects" profile(As done for 2.2 by David Jencks)<br/>
By default, maven-release-plugin will use the default profile to search all the pom.xml files
and auto-update the version numbers. But integration tests are often run from non-pom packaging
projects, so We also need include them during the release plugin running. Hence we create
a new "all-subprojects" profile:</p>
<ul>
	<li>/pom.xml<br/>
This profile is just the same as default profile.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
        <span class="code-tag">&lt;profile&gt;</span>
            <span class="code-tag">&lt;id&gt;</span>all-subprojects<span
class="code-tag">&lt;/id&gt;</span>
            <span class="code-tag">&lt;modules&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>repository<span
class="code-tag">&lt;/module&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>buildsupport<span
class="code-tag">&lt;/module&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>testsupport<span
class="code-tag">&lt;/module&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>framework<span
class="code-tag">&lt;/module&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>plugins<span
class="code-tag">&lt;/module&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>assemblies<span
class="code-tag">&lt;/module&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>testsuite<span
class="code-tag">&lt;/module&gt;</span>
            <span class="code-tag">&lt;/modules&gt;</span>
        <span class="code-tag">&lt;/profile&gt;</span>
</pre>
</div></div></li>
	<li>/framework/configs/pom.xml<br/>
The config modules are all included by default, but the 4 integration test are not. So if
we want this 4 projects' pom can be updated by maven-release-profile, we need explicitly point
out.
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
        <span class="code-tag">&lt;profile&gt;</span>
            <span class="code-tag">&lt;id&gt;</span>all-subprojects<span
class="code-tag">&lt;/id&gt;</span>
            <span class="code-tag">&lt;modules&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>geronimo-gbean-deployer/src/it/j2ee-system-it1<span
class="code-tag">&lt;/module&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>geronimo-gbean-deployer/src/it/j2ee-system-it2<span
class="code-tag">&lt;/module&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>geronimo-gbean-deployer/src/it/metadatageneration-it3<span
class="code-tag">&lt;/module&gt;</span>
                <span class="code-tag">&lt;module&gt;</span>geronimo-gbean-deployer/src/it/metadatageneration-it4<span
class="code-tag">&lt;/module&gt;</span>
            <span class="code-tag">&lt;/modules&gt;</span>
        <span class="code-tag">&lt;/profile&gt;</span>
</pre>
</div></div></li>
	<li>/plugins/pom.xml<br/>
Not all the pom.xml must have an "all-subprojects" in file. If there is no some special projects
as above, you can just leave it as is (take /plugins/pom.xml as example).</li>
	<li>/testsuite/pom.xml and its childern<br/>
A lot of efforts ware put on testsuite. When run with "all-subprojects" profile to do a release,
we don't need really run and pass the tests. Remember the goal of this profile is just to
find all the sub-projects' pom files so that release-plugin can auto update their versions.</li>
	<li>prepare the release:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
mvn release:prepare -DdryRun=true -Pall-subprojects -Papache-release -Dtest=false
</pre>
</div></div>
<p>Check if all pom.xml files have a pom.xml.tag generated, and if the versions in pom.xml.tag
are updated correctly, and if there is no "SNAPSHOT" in pom.xml.tag files.</p></li>
</ul>


<p>because there are a lot of server bits that not need to be released, such as integration
tests and testsuite</p>
     </div>
     <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
       </div>

       <a href="http://cwiki.apache.org/confluence/display/GMOxPMGT/Geronimo+2.1.5+Release+Tips">View
Online</a>
       |
       <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=14814157&revisedVersion=2&originalVersion=1">View
Change</a>
              |
       <a href="http://cwiki.apache.org/confluence/display/GMOxPMGT/Geronimo+2.1.5+Release+Tips?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message