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 Thu, 01 Apr 2010 07:38: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>

<h3><a name="Geronimo2.1.5ReleaseTips-1.UseGenesis2.0asaparentpom"></a>1.
Use Genesis 2.0 as a parent pom</h3>
<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>


<h3><a name="Geronimo2.1.5ReleaseTips-2.UseMaven2.2.1%28nottryif2.0.10or2.0.11canrun%29"></a>2.
Use Maven 2.2.1 (not try if 2.0.10 or 2.0.11 can run)</h3>

<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>

<h3><a name="Geronimo2.1.5ReleaseTips-3.SetupPGPKeys%28fortheoneswhobethereleasemanagerthefirsttime%2Crefer%3A"></a>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>)</h3>

<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>

<h3><a name="Geronimo2.1.5ReleaseTips-1.Add%22allsubprojects%22profile%28SimilarwithwhatDavidJencksdidfor2.2%29"></a>1.
Add "all-subprojects" profile(Similar with what David Jencks did for 2.2)</h3>

<p>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>
<p>btw, I refactored the names of above 4 itest to make them the same with 2.2, i.e.</p>
	<ul>
		<li>j2ee-system &#45;&gt; j2ee-system-it1</li>
		<li>j2ee-system-2 &#45;&gt; j2ee-system-it2</li>
		<li>metadatageneration &#45;&gt; metadatageneration-it3</li>
		<li>metadatageneration-2 &#45;&gt; metadatageneration-it4</li>
	</ul>
	</li>
	<li>/plugins/pom.xml (and some others do not need to add "all-subprojects" profile)<br/>
Not all the pom.xml must have an "all-subprojects" in file. If there is no special projects
as above, you can just leave the pom 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>In above command *&#45;Dtest=false seems not take effect?? So, currently I add</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
<span class="code-tag">&lt;properties&gt;</span>
  <span class="code-tag">&lt;maven.test.skip&gt;</span>true<span class="code-tag">&lt;/maven.test.skip&gt;</span>
<span class="code-tag">&lt;/properties&gt;</span>
</pre>
</div></div>
<p>in root pom's all-subprojects profile.</p>
	<ul>
		<li>Check if all pom.xml files have a pom.xml.tag generated<br/>
Compare the quantity of the 2 files</li>
		<li>and if the versions in pom.xml.tag are updated correctly,<br/>
The only things that should be different between these files are the &lt;version&gt;
 and &lt;scm&gt; elements.</li>
		<li>and if there is no "SNAPSHOT" in pom.xml.tag files.<br/>
Just find in files..</li>
	</ul>
	</li>
</ul>


<h3><a name="Geronimo2.1.5ReleaseTips-2.Don%27tdeploythetestartifactstomavenrepo"></a>2.
Don't deploy the test artifacts to maven repo</h3>

<p>Because there are a lot of sub-projects that not need to be released, such as integration
tests and testsuites, we need filter them out when do maven deploy:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
    <span class="code-tag">&lt;plugin&gt;</span>
        <span class="code-tag">&lt;groupId&gt;</span>org.apache.maven.plugins<span
class="code-tag">&lt;/groupId&gt;</span>
        <span class="code-tag">&lt;artifactId&gt;</span>maven-deploy-plugin<span
class="code-tag">&lt;/artifactId&gt;</span>
        <span class="code-tag">&lt;configuration&gt;</span>
            <span class="code-tag">&lt;skip&gt;</span>true<span class="code-tag">&lt;/skip&gt;</span>
        <span class="code-tag">&lt;/configuration&gt;</span>
    <span class="code-tag">&lt;/plugin&gt;</span>
</pre>
</div></div>
<ul>
	<li>/framework/configs/geronimo-gbean-deployer/src/it/j2ee-system-it1/pom.xml</li>
	<li>/framework/configs/geronimo-gbean-deployer/src/it/j2ee-system-it2/pom.xml</li>
	<li>/framework/configs/geronimo-gbean-deployer/src/it/metadatageneration-it3/pom.xml</li>
	<li>/framework/configs/geronimo-gbean-deployer/src/it/metadatageneration-it4/pom.xml</li>
	<li>/testsuite/pom.xml</li>
</ul>


<h3><a name="Geronimo2.1.5ReleaseTips-3.Otherchanges"></a>3. Other changes</h3>

<ul>
	<li>Remove <b>tools-maven-plugin</b> and use the <b>ianal-maven-plugin</b>(defined
in genesis-default-flava-2.0.pom) to verify-legal-files
	<ul>
		<li>Add following in testsuite/pom.xml
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
            <span class="code-tag">&lt;plugin&gt;</span>
                <span class="code-tag">&lt;groupId&gt;</span>org.codehaus.mojo<span
class="code-tag">&lt;/groupId&gt;</span>
                <span class="code-tag">&lt;artifactId&gt;</span>ianal-maven-plugin<span
class="code-tag">&lt;/artifactId&gt;</span>
                <span class="code-tag">&lt;configuration&gt;</span>
                    <span class="code-tag"><span class="code-comment">&lt;!--
Don't bother checking legal file here, we never publish them. --&gt;</span></span>
                    <span class="code-tag">&lt;skip&gt;</span>true<span
class="code-tag">&lt;/skip&gt;</span>
                <span class="code-tag">&lt;/configuration&gt;</span>
            <span class="code-tag">&lt;/plugin&gt;</span>
</pre>
</div></div></li>
	</ul>
	</li>
	<li>Remove a bunch of maven plugins definition in server root pom</li>
	<li>Update xmlbeans-maven-plugin to 2.3.3 and remove all the following hacked codes:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-xml">
            &lt;!--
            HACK: Copy XmlBeans generated schemas.
            --&gt;
            <span class="code-tag">&lt;plugin&gt;</span>
                <span class="code-tag">&lt;groupId&gt;</span>org.apache.geronimo.buildsupport<span
class="code-tag">&lt;/groupId&gt;</span>
                <span class="code-tag">&lt;artifactId&gt;</span>buildsupport-maven-plugin<span
class="code-tag">&lt;/artifactId&gt;</span>
                <span class="code-tag">&lt;executions&gt;</span>
                    <span class="code-tag">&lt;execution&gt;</span>
                        <span class="code-tag">&lt;goals&gt;</span>
                            <span class="code-tag">&lt;goal&gt;</span>copy-xmlbeans-schemas<span
class="code-tag">&lt;/goal&gt;</span>
                        <span class="code-tag">&lt;/goals&gt;</span>
                    <span class="code-tag">&lt;/execution&gt;</span>
                <span class="code-tag">&lt;/executions&gt;</span>
            <span class="code-tag">&lt;/plugin&gt;</span>
</pre>
</div></div></li>
</ul>


<h2><a name="Geronimo2.1.5ReleaseTips-Releasememo"></a>Release memo</h2>


<h3><a name="Geronimo2.1.5ReleaseTips-1.NOTICE.txtfiles"></a>1. NOTICE.txt
files</h3>

<ul>
	<li>Check the "Year" of copyright in all NOTICE.txt file.</li>
</ul>


<h3><a name="Geronimo2.1.5ReleaseTips-2.Beforerelease%28Don%27tcheckin%5C%21%5C%21%29"></a>2.
Before release(<b>Don't checkin&#33;&#33;</b>)</h3>

<ul>
	<li>Update the <b>VERSION</b> in README.txt / RELEASE_NOTES-2.1.5-SNAPSHOT.txt</li>
	<li>Update &lt;version&gt; properties from <b>2.1.5-SNAPSHOT</b>
to <b>2.1.5</b> in root pom.xml</li>
	<li>Update versions in "assemblies\geronimo-boilerplate-minimal\src\main\underlay\etc\gsh-classworlds.conf"
from <b>2.1.5-SNAPSHOT</b> to <b>2.1.5</b></li>
</ul>


<h3><a name="Geronimo2.1.5ReleaseTips-3.Afterrelease%3A"></a>3. After release:</h3>

<ul>
	<li>update <b>artifact-alias</b></li>
	<li>Update &lt;version&gt; properties from <b>2.1.5-SNAPSHOT</b>
to <b>2.1.6-SNAPSHOT</b> in root pom.xml</li>
	<li>Update versions in "assemblies\geronimo-boilerplate-minimal\src\main\underlay\etc\gsh-classworlds.conf"
from <b>2.1.5-SNAPSHOT</b> to <b>2.1.6-SNAPSHOT</b></li>
</ul>

     </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=11&originalVersion=10">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