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 3.0.x Release Process
Date Mon, 23 Jul 2012 02:04:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/1/_/styles/combined.css?spaceKey=GMOxPMGT&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/GMOxPMGT/Geronimo+3.0.x+Release+Process">Geronimo
3.0.x Release Process</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~xiaming">Forrest
Xia</a>
    </h4>
        <br/>
                         <h4>Changes (1)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >* Upload artifacts to [http://www.apache.org/dist/geronimo/]
<br>** Copy [https://svn.apache.org/repos/asf/geronimo/KEYS] to people.apache.org:/www/www.apache.org/dist/geronimo/KEYS
if your public key is not in it (one time) <br></td></tr>
            <tr><td class="diff-changed-lines" >** Upload the artifacts and their
<span class="diff-changed-words">checksums<span class="diff-added-chars"style="background-color:
#dfd;">(*.tar.gz.md5, *.zip.md5, *.tar.gz.sha1, *.zip.sha1, *.asc)</span></span>
to people.apache.org:/www/www.apache.org/dist/geronimo/3.0.0 <br></td></tr>
            <tr><td class="diff-unchanged" >** Ensure distribution directories
have 0775 dir permission and a 0664 file permission set on them <br>*** Try [fetch_checksum|https://svn.apache.org/repos/asf/geronimo/site/trunk/bin/fetch_checksum]
and [upload_dist|https://svn.apache.org/repos/asf/geronimo/site/trunk/bin/upload_dist] scripts
to free you out of tedious manual work :) <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="Geronimo3.0.xReleaseProcess-Geronimo3.0.xReleaseProcess"></a>Geronimo
3.0.x Release Process</h1>

<p>Reference <a href="http://www.apache.org/dev/publishing-maven-artifacts.html"
class="external-link" rel="nofollow">http://www.apache.org/dev/publishing-maven-artifacts.html</a></p>

<p>Have 3.0.0 release as an example.</p>


<h2><a name="Geronimo3.0.xReleaseProcess-ReleaseChecklist"></a>Release Checklist</h2>

<h3><a name="Geronimo3.0.xReleaseProcess-1.BettertouseanonWindowssystemtocreatethereleasecandidate"></a>1.
Better to use a non-Windows system to create the release candidate</h3>

<ul>
	<li>Dos line endings makes all unix shell scripts unexecutable
	<ul>
		<li><a href="https://issues.apache.org/jira/browse/GERONIMO-5440" class="external-link"
rel="nofollow">https://issues.apache.org/jira/browse/GERONIMO-5440</a></li>
	</ul>
	</li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-2.mvnrat%3Acheck"></a>2. mvn rat:check</h3>

<ul>
	<li>Refer to the same section in <a href="/confluence/display/GMOxPMGT/Geronimo+2.1.x+Release+Process"
title="Geronimo 2.1.x Release Process">Geronimo 2.1.x Release Process</a></li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-3.Manuallyupdatesomefiles%3A"></a>3.
Manually update some files:</h3>

<ul>
	<li>Updates all pom.xml files to search "SNAPSHOT" to ensure there is no snapshot dependencies</li>
	<li>Updates plugin-list url in $SRC\framework\configs\plugin\pom.xml</li>
	<li>Updates ##VERSION## in README.txt and RELEASE_NOTES.txt in source code root folder
and $SRC\framework\configs\karaf-framework</li>
	<li>Updates JIRAs in RELEASE_NOTES.txt (bugs, improvement, new features, known issues,
and limitations)</li>
	<li>Updates the copyright year number in NOTICE files</li>
	<li>Commit them</li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-4.mvnrelease%3Aprepare%5CDdryRun%3Dtrue%5CPallsubprojects"></a>4.
mvn release:prepare &#45;DdryRun=true &#45;Pall-subprojects</h3>


<h3><a name="Geronimo3.0.xReleaseProcess-5.ReleasePrepare"></a>5. Release
Prepare</h3>

<ul>
	<li>Before doing release prepare, clean up you local repository to avoid the bad staging
release artifacts to be included in the geronimo release. see <a href="http://apache-geronimo.328035.n3.nabble.com/Bad-2-2-1-release-td2194498.html"
class="external-link" rel="nofollow">reference</a>.</li>
	<li>This will update the versions in branch 3.0 and create the release tag
	<ul>
		<li>Manually remove all *.log files in the source code root folder, otherwise those
might be packed into the source code zip files.</li>
		<li>mvn release:clean &#45;Pall-subprojects</li>
		<li>mvn release:prepare &#45;Pall-subprojects
		<ul>
			<li>you need "mvn clean install &#45;Dstage=bootstrap" in midway</li>
		</ul>
		</li>
	</ul>
	</li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-6.ReleasePerform"></a>6. Release
Perform</h3>

<ul>
	<li>This will stage the release artifacts,
	<ul>
		<li>mvn release:perform &#45;Pall-subprojects</li>
	</ul>
	</li>
	<li>In Apache nexus repository, click "close" <a href="https://repository.apache.org/index.html#welcome"
class="external-link" rel="nofollow">https://repository.apache.org/index.html#welcome</a></li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-7.Vote"></a>7. Vote</h3>

<ul>
	<li>Vote in mailing list, meanwhile wait TCK results.  Sample release vote email as
following:</li>
</ul>


<div class="code panel" style="border-style: solid;border-width: 1px;"><div class="codeHeader
panelHeader" style="border-bottom-width: 1px;border-bottom-style: solid;"><b><a
href="/confluence/pages/createpage.action?spaceKey=GMOxPMGT&amp;title=VOTE&amp;linkCreation=true&amp;fromPageId=27851236"
class="createlink">VOTE</a> Release Geronimo 3.0.0</b></div><div class="codeContent
panelContent">
<pre class="code-java">
Hi Devs,

With correction of legal files, here we have a <span class="code-keyword">new</span>
release candidate <span class="code-keyword">for</span> vote. Please help vote
at your earliest convenient time.

The server code up <span class="code-keyword">for</span> vote is:
https:<span class="code-comment">//repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/geronimo/3.0.0/geronimo-3.0.0-source-release.tar.gz
</span>https:<span class="code-comment">//repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/geronimo/3.0.0/geronimo-3.0.0-source-release.zip
</span>
The binary code up <span class="code-keyword">for</span> vote is:
Java EE 6 Full Profile Tomcat Assemblies:
https:<span class="code-comment">//repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-javaee6/3.0.0/geronimo-tomcat7-javaee6-3.0.0-bin.tar.gz
</span>https:<span class="code-comment">//repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-javaee6/3.0.0/geronimo-tomcat7-javaee6-3.0.0-bin.zip
</span>
Java EE 6 Web Profile Tomcat Assemblies:
https:<span class="code-comment">//repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-javaee6-web/3.0.0/geronimo-tomcat7-javaee6-web-3.0.0-bin.tar.gz
</span>https:<span class="code-comment">//repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-javaee6-web/3.0.0/geronimo-tomcat7-javaee6-web-3.0.0-bin.zip
</span>
Little-G Tomcat Assemblies:
https:<span class="code-comment">//repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-minimal/3.0.0/geronimo-tomcat7-minimal-3.0.0-bin.tar.gz
</span>https:<span class="code-comment">//repository.apache.org/content/repositories/orgapachegeronimo-013/org/apache/geronimo/assemblies/geronimo-tomcat7-minimal/3.0.0/geronimo-tomcat7-minimal-3.0.0-bin.zip
</span>
Staging repo is:
https:<span class="code-comment">//repository.apache.org/content/repositories/orgapachegeronimo-013
</span>
The tag has created at:
http:<span class="code-comment">//svn.apache.org/repos/asf/geronimo/server/tags/geronimo-3.0.0
</span>
Java EE 6 TCKs all passed!

Vote will be at least open <span class="code-keyword">for</span> 72 hours.
[ ] +1  approve
[ ] +0  no opinion
[ ] -1  disapprove (and reason why)
</pre>
</div></div> 

<ul>
	<li>Post "<a href="/confluence/pages/createpage.action?spaceKey=GMOxPMGT&amp;title=VOTE+PASS&amp;linkCreation=true&amp;fromPageId=27851236"
class="createlink">VOTE PASS</a>xxx" in the subject, and summarize the vote status
in the body when vote close.</li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-8.Releaseartifacts"></a>8. Release
artifacts</h3>

<ul>
	<li>In Apache nexus, click "release"
	<ul>
		<li>the artifacts will be synchronized to maven central repository in some time.</li>
	</ul>
	</li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-9.Updategeronimoplugins.xml"></a>9.
Update geronimo-plugins.xml</h3>

<ul>
	<li>delete your local &#126;/.m2/repository/geronimo-plugins.xml</li>
	<li>build tag 3.0.0, which will generate a new geronimo-plugins.xml in &#126;/.m2/repository/</li>
	<li>do the actions as described here &#8211; <a href="https://cwiki.apache.org/GMOxPMGT/geronimo-server-release-process.html"
class="external-link" rel="nofollow">https://cwiki.apache.org/GMOxPMGT/geronimo-server-release-process.html</a>
&#8211; in step 12.</li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-10.Uploadartifactstodist"></a>10.
Upload artifacts to dist</h3>

<ul>
	<li>Upload artifacts to <a href="http://www.apache.org/dist/geronimo/" class="external-link"
rel="nofollow">http://www.apache.org/dist/geronimo/</a>
	<ul>
		<li>Copy <a href="https://svn.apache.org/repos/asf/geronimo/KEYS" class="external-link"
rel="nofollow">https://svn.apache.org/repos/asf/geronimo/KEYS</a> to people.apache.org:/www/www.apache.org/dist/geronimo/KEYS
if your public key is not in it (one time)</li>
		<li>Upload the artifacts and their checksums(*.tar.gz.md5, *.zip.md5, *.tar.gz.sha1,
*.zip.sha1, *.asc) to people.apache.org:/www/www.apache.org/dist/geronimo/3.0.0</li>
		<li>Ensure distribution directories have 0775 dir permission and a 0664 file permission
set on them
		<ul>
			<li>Try <a href="https://svn.apache.org/repos/asf/geronimo/site/trunk/bin/fetch_checksum"
class="external-link" rel="nofollow">fetch_checksum</a> and <a href="https://svn.apache.org/repos/asf/geronimo/site/trunk/bin/upload_dist"
class="external-link" rel="nofollow">upload_dist</a> scripts to free you out of tedious
manual work <img class="emoticon" src="/confluence/images/icons/emoticons/smile.gif" height="20"
width="20" align="absmiddle" alt="" border="0"/></li>
		</ul>
		</li>
		<li>ps: the changes in people.apache.org:/www/www.apache.org/dist/geronimo need take
some time to get sync in <a href="http://www.apache.org/dist/geronimo/" class="external-link"
rel="nofollow">http://www.apache.org/dist/geronimo/</a></li>
	</ul>
	</li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-11.AnnounceinMailinglistandPostnewsinhomepage"></a>11.
Announce in Mailing list and Post news in homepage</h3>

<ul>
	<li>Modify <a href="http://geronimo.apache.org/downloads.html" class="external-link"
rel="nofollow">http://geronimo.apache.org/downloads.html</a>.</li>
	<li>Add a new page list the artifacts that can be downloaded.</li>
	<li>Modify frontpage and add a news.</li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-12.Updatethesecurityadvisorypage"></a>12.
Update the security advisory page</h3>

<ul>
	<li>Add a section to the new release at <a href="https://cwiki.apache.org/confluence/display/GMOxSITE/3.0.x+Security+Report"
class="external-link" rel="nofollow">https://cwiki.apache.org/confluence/display/GMOxSITE/3.0.x+Security+Report</a></li>
	<li>If there are outstanding advisories for vulnerabilities fixed by this release,
move the vulnerability descriptions to the new release section.</li>
</ul>


<h3><a name="Geronimo3.0.xReleaseProcess-13.Manauallyupdatefilesinthe3.0branchafterrelease"></a>13.
Manaually update files in the 3.0 branch after release</h3>

<ul>
	<li>update 3.0.1-SNAPSHOT to ##VERSION## in README.txt and RELEASE_NOTES.txt</li>
	<li>remove the JIRA list in RELEASE_NOTES.txt (bugs, improvement, new features, limitations)</li>
	<li>search "3.0.0" and change them to "3.0.1-SNAPSHOT"</li>
	<li>Update artifact-alias, add version 3.0.0 in artifact-alias after 3.0.0 release
	<ul>
		<li>/framework/configs/pom.xml</li>
		<li>/plugins/client/pom.xml</li>
		<li>/plugins/corba/client-corba-yoko/pom.xml</li>
		<li>/plugins/pom.xml</li>
	</ul>
	</li>
	<li>commit them</li>
</ul>





<hr />
<h2><a name="Geronimo3.0.xReleaseProcess-Prerequisite"></a>Prerequisite</h2>

<h3><a name="Geronimo3.0.xReleaseProcess-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="Geronimo3.0.xReleaseProcess-2.UseMaven2.2.1"></a>2. Use Maven
2.2.1</h3>

<ul>
	<li>Enable Apache Servers (refer: <a href="http://maven.apache.org/developers/committer-settings.html"
class="external-link" 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>reference:<br/>
It is highly recommended to use Maven's password encryption capabilities for your passwords.<a
href="http://maven.apache.org/guides/mini/guide-encryption.html" class="external-link" rel="nofollow">http://maven.apache.org/guides/mini/guide-encryption.html</a></p>



<h3><a name="Geronimo3.0.xReleaseProcess-3.SetupPGPKeys%28fortheoneswhobethereleasemanagerthefirsttime%29"></a>3.
Setup PGP Keys (for the ones who be the release manager the first time)</h3>

<ul>
	<li>Download gnupg2</li>
	<li>Generate your PGP Key (refer: <a href="http://www.apache.org/dev/openpgp.html"
class="external-link" rel="nofollow">http://www.apache.org/dev/openpgp.html</a>)
so that maven-release-plugin can sign your built artifacts when do release:perform
	<ul>
		<li>How To Avoid SHA-1</li>
		<li>How To Generate a Strong Key</li>
	</ul>
	</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>
	<li>Meanwhile, append your public key to <a href="https://svn.apache.org/repos/asf/geronimo/KEYS"
class="external-link" rel="nofollow">https://svn.apache.org/repos/asf/geronimo/KEYS</a>
and people.apache.org:/www/www.apache.org/dist/geronimo/KEYS so that user can verify the artifacts
you released.
	<ul>
		<li>gpg &#45;-gen-key
		<ul>
			<li>RSA and RSA (default), 4096</li>
		</ul>
		</li>
		<li>gpg &#45;-list-sigs "xxxxxx" &amp;&amp; gpg &#45;-armor &#45;-export
"xxxxxx" &gt; xxxxxx.key
		<ul>
			<li>"cat" your public key to above KEYS file</li>
		</ul>
		</li>
	</ul>
	</li>
</ul>



<p>reference:<br/>
<a href="http://maven.apache.org/developers/release/pmc-gpg-keys.html" class="external-link"
rel="nofollow">http://maven.apache.org/developers/release/pmc-gpg-keys.html</a></p>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/GMOxPMGT/Geronimo+3.0.x+Release+Process">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=27851236&revisedVersion=2&originalVersion=1">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/GMOxPMGT/Geronimo+3.0.x+Release+Process?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message