cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Cayenne Website > Release Guide
Date Mon, 23 Aug 2010 10:23:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1810/9/1/_/styles/combined.css?spaceKey=CAYSITE&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/CAYSITE/Release+Guide">Release
Guide</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~andrus">Andrus
Adamchik</a>
    </h4>
        <br/>
                         <h4>Changes (4)</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" >* Export and commit the latest documentation
per [Documentation Guidelines]. <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">*
Create a report in Jira listing all issues that are FIXED but not CLOSED, paste its contents
to RELEASE-NOTES.txt. Bulk-close all involved issues. _Note that issues that affect multiple
releases are usually closed immediately when they are fixed, and the note is placed in RELEASE-NOTES.txt
immediately when this happens._ <br> <br></td></tr>
            <tr><td class="diff-unchanged" >* Edit UPGRADE-NOTES.txt if there
is anything to add there. <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >$ svn ci -m &quot;changed POM
version of the release tag&quot;{noformat} <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">*
[Build|Building Cayenne] and [test|Running Unit Tests] the release with Maven. Create platform-specific
assemblies. <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">*
Build source package and generate platform binary packages out of it: <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{noformat}mvn
clean install -Passembly,src{noformat} <br> <br>Now take {{&quot;assembly/target/cayenne-XXX-src.tar.gz&quot;}},
unpack it somewhere, and perform binary builds from the unpacked directory (NOT FROM SVN OR
GIT CHECKOUT). _Release manager may skip running unit tests from here, as sjown below, although
release evaluators should use the src assembly for [unit testing|Running Unit Tests] and other
kinds of testing._  <br> <br>{noformat}mvn clean install -Passembly,src{noformat}
<br> <br>For details on Cayenne build API check [this page|Building Cayenne].
<br> <br>{noformat}mvn clean install -Passembly,generic -Dmaven.test.skip=true{noformat}
<br>{noformat}mvn clean install -Passembly,mac -Dmaven.test.skip=true{noformat} <br>{noformat}mvn
clean install -Passembly,windows -Dmaven.test.skip=true{noformat} <br> <br></td></tr>
            <tr><td class="diff-unchanged" >* Signing release <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
        </table>
</div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <p>Note that this page is of use for committers only. It describes the general
procedure of building a Cayenne release.</p>


<h2><a name="ReleaseGuide-Prerequisites"></a>Prerequisites</h2>

<ul>
	<li>A release manager must have his public key appended to the KEYS file checked in
to SVN and the key published on one of the public key servers. More info can be found here:
<a href="http://www.apache.org/dev/release-signing.html" class="external-link" rel="nofollow">http://www.apache.org/dev/release-signing.html</a></li>
</ul>


<h2><a name="ReleaseGuide-PreparingSources"></a>Preparing Sources</h2>

<ul>
	<li>Export and commit the latest documentation per <a href="/confluence/display/CAYSITE/Documentation+Guidelines"
title="Documentation Guidelines">Documentation Guidelines</a>.</li>
</ul>


<ul>
	<li>Edit UPGRADE-NOTES.txt if there is anything to add there.</li>
</ul>


<ul>
	<li>Check Sources Compliance with ARAT. <a href="http://code.google.com/p/arat/"
class="external-link" rel="nofollow">ARAT</a> (A Release Audit Tool) is a Java tool
written by Robert Burrell Donkin for checking the release files for ASF licensing compliance.
To run ARAT, download the jar <em>(we are using version 0.5.1)</em>, and run it
against unpacked distro (or the release tag), read the report and fix any issues.</li>
</ul>


<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd cayenne
$ mvn clean
$ java -jar rat-0.5.1.jar `pwd` &gt; report.txt</pre>
</div></div>

<h2><a name="ReleaseGuide-BuildingReleaseArtifacts"></a>Building Release
Artifacts</h2>

<ul>
	<li>Tag <tt>cayenne</tt> directory under the repository trunk (assuming
<tt>X.X</tt> is a version tag identifying the release, such as <tt>"1.2B3"</tt>):</li>
</ul>


<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>svn copy https://svn.apache.org/repos/asf/cayenne/main/trunk \
   https://svn.apache.org/repos/asf/cayenne/main/tags/X.X -m "tagging X.X release"
</pre>
</div></div>

<ul>
	<li>Checkout or switch to the new tag to some directory on the build machine.</li>
</ul>


<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>svn co https://svn.apache.org/repos/asf/cayenne/main/tags/X.X cayenne-X.X</pre>
</div></div>

<p><b>Or</b> if you've done release testing before and have a dedicated
local copy:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>cd existing_checkout_dir
svn switch https://svn.apache.org/repos/asf/cayenne/main/tags/X.X/</pre>
</div></div>

<ul>
	<li>Replace SNAPSHOT version with release version. E.g. using the following Perl script:</li>
</ul>


<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ cd cayenne-X.X
$ find . -name pom.xml |xargs perl -i -n -e 's/X-SNAPSHOT/X.X/; print;'
$ svn ci -m "changed POM version of the release tag"</pre>
</div></div>

<ul>
	<li>Build source package and generate platform binary packages out of it:</li>
</ul>


<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>mvn clean install -Passembly,src</pre>
</div></div>

<p>Now take <tt>"assembly/target/cayenne-XXX-src.tar.gz"</tt>, unpack it
somewhere, and perform binary builds from the unpacked directory (NOT FROM SVN OR GIT CHECKOUT).
<em>Release manager may skip running unit tests from here, as sjown below, although
release evaluators should use the src assembly for <a href="/confluence/display/CAYSITE/Running+Unit+Tests"
title="Running Unit Tests">unit testing</a> and other kinds of testing.</em>
</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>mvn clean install -Passembly,src</pre>
</div></div>

<p>For details on Cayenne build API check <a href="/confluence/display/CAYSITE/Building+Cayenne"
title="Building Cayenne">this page</a>.</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>mvn clean install -Passembly,generic -Dmaven.test.skip=true</pre>
</div></div>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>mvn clean install -Passembly,mac -Dmaven.test.skip=true</pre>
</div></div>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>mvn clean install -Passembly,windows -Dmaven.test.skip=true</pre>
</div></div>

<ul>
	<li>Signing release</li>
</ul>


<p>For more info visit <a href="http://www.apache.org/dev/release-signing.html" class="external-link"
rel="nofollow">this page</a>. Release manager key must be in the project KEYS file.
Signing is a manual procedure not included in the Ant or Maven script. Here is how it might
work ("-u" option can be omitted if you have only one GPG key):</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>gpg --armor -u B8AF90BF --output cayenne-X.X.tar.gz.asc --detach-sig cayenne-X.X.tar.gz
gpg --print-md MD5 cayenne-X.X.tar.gz &gt; cayenne-X.X.tar.gz.md5
</pre>
</div></div>

<h2><a name="ReleaseGuide-Voting"></a>Voting</h2>

<ul>
	<li>Release files are uploaded to the release manager's web directory on <tt>people.apache.org</tt>.</li>
	<li>The vote is started on cayenne-dev mailing list.</li>
</ul>


<h2><a name="ReleaseGuide-PublishingtheRelease"></a>Publishing the Release</h2>

<ul>
	<li>Publish assemblies:
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>$ ssh people.apache.org
% cp /path/to/release/artifacts /www/www.apache.org/dist/cayenne/</pre>
</div></div>
<p>... wait till it is synched to the main site and the mirrors.</p></li>
</ul>


<ul>
	<li><a href="/confluence/display/CAYSITE/Publishing+Maven+Artifacts" title="Publishing
Maven Artifacts">Publishing Maven Artifacts</a></li>
</ul>


<h2><a name="ReleaseGuide-Aftertherelease"></a>After the release</h2>

<ul>
	<li><a href="https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310903"
class="external-link" rel="nofollow">Tell Jira</a> that the release has been released.
Ensure there is another milestone or release target already created for further work, but
this was probably already done when a branch was created in preparation for release.</li>
	<li>Update the <a href="http://svn.apache.org/repos/asf/cayenne/site/trunk/tlp-site/src/doap/cayenne.rdf"
class="external-link" rel="nofollow">DOAP file</a> (held in the Cayenne svn) which
will update <a href="http://projects.apache.org/projects/cayenne.html" class="external-link"
rel="nofollow">http://projects.apache.org/projects/cayenne.html</a> automatically</li>
	<li>Update Freshmeat with new release number (<a href="http://freshmeat.net/projects/cayenne/"
class="external-link" rel="nofollow">http://freshmeat.net/projects/cayenne/</a>)</li>
	<li>If the release is significant, consider press releases to relevant news sources</li>
	<li>Review the main website pages (front page and why-cayenne especially) to add any
new features</li>
	<li>Add a news item to the Cayenne web site</li>
	<li>Send an email to the Cayenne user and developer lists</li>
	<li>Send a notification email to announceATapachenews.org</li>
	<li>Update <a href="http://en.wikipedia.org/wiki/Apache_Cayenne" class="external-link"
rel="nofollow">http://en.wikipedia.org/wiki/Apache_Cayenne</a></li>
</ul>


<h2><a name="ReleaseGuide-Reference%3A"></a>Reference:</h2>


<ul>
	<li>Apache release publishing guide: <a href="http://www.apache.org/dev/release-publishing.html"
class="external-link" rel="nofollow">http://www.apache.org/dev/release-publishing.html</a></li>
	<li>ARAT: <a href="http://code.google.com/p/arat/" class="external-link" rel="nofollow">http://code.google.com/p/arat/</a></li>
	<li>Signing Releases: <a href="http://www.apache.org/dev/release-signing.html" class="external-link"
rel="nofollow">http://www.apache.org/dev/release-signing.html</a></li>
</ul>

    </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/CAYSITE/Release+Guide">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=9734&revisedVersion=44&originalVersion=43">View
Changes</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message