tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Tapestry > Release Process
Date Fri, 12 Nov 2010 20:24:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1810/9/12/_/styles/combined.css?spaceKey=TAPESTRY&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/TAPESTRY/Release+Process">Release
Process</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~hlship">Howard
M. Lewis Ship</a>
    </h4>
        <br/>
                         <h4>Changes (8)</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" > <br>* Update your _Subversion_
workspace <br></td></tr>
            <tr><td class="diff-changed-lines" >* Manually update the tapestry
version in the source code of the Tapestry archetype (found in quickstart/src/main/resources/archetype-resources/pom.xml)
to the version number <span class="diff-added-words"style="background-color: #dfd;">about</span>
to be released <span class="diff-added-words"style="background-color: #dfd;">(i.e.,
strip off &quot;-SNAPSHOT&quot;)</span> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">*
mvn release:prepare <br>* mvn release:perform <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">*
{{mvn release:prepare}} <br>* {{mvn release:perform}} <br></td></tr>
            <tr><td class="diff-unchanged" >* Generate and upload Binary / Source
distributions <br>** {{svn sw https://svn.apache.org/repos/asf/tapestry/tapestry5/tags/releases/}}_version_
<br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >** There&#39;s some manual work
to sign and upload the distributions <br>* Login to [Nexus|https://repository.apache.org/index.html#stagingRepositories]
and *close* the automatically created staging repository, and note its url <br></td></tr>
            <tr><td class="diff-changed-lines" >* Use the [Manage Versions page|https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310833]
in JIRA to add a new <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">release
(the new development release)</span> <span class="diff-added-words"style="background-color:
#dfd;">version</span> <br></td></tr>
            <tr><td class="diff-unchanged" >* *Release* the version, moving outstanding
issues to the new version <br></td></tr>
            <tr><td class="diff-changed-lines" >* Generate [HTML Release Notes|https://issues.apache.org/jira/secure/ConfigureReleaseNote.jspa?projectId=12310833]
for the <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">release</span>
<span class="diff-added-words"style="background-color: #dfd;">version</span> <br></td></tr>
            <tr><td class="diff-unchanged" >** Create a new child page of [Release
Notes] (it may already exist) <br>** Update with text about any unusual aspects of the
upgrade (especially, non-backwards compatible changes) <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >** Update [Release Notes] index page
to point to the new page  <br>* Send vote email ... *3 days pass* <br></td></tr>
            <tr><td class="diff-changed-lines" >* Login to [Nexus|https://repository.apache.org/index.html#stagingRepositories]
and *release* the <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">release</span>
<span class="diff-added-words"style="background-color: #dfd;">version&#39;s repository</span>
<br></td></tr>
            <tr><td class="diff-unchanged" >** Enter &quot;Tapestry 5.x.x
beta release&quot; (adjust as necessary) for the message <br></td></tr>
            <tr><td class="diff-changed-lines" >** The <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">release</span>
<span class="diff-added-words"style="background-color: #dfd;">version</span> will
disappear from the list of repositories after releasing it <br></td></tr>
            <tr><td class="diff-unchanged" >* SSH to people.apache.org and copy
the Binary / Source distributions to the right directory <br>* Once files reach all
mirrors, update the Downloads Page <br></td></tr>
            <tr><td class="diff-changed-lines" >* Create a Confluence blog entry
to describe the new release (this will automatically appear on the <span class="diff-added-words"style="background-color:
#dfd;">Tapestry</span> home page) <br></td></tr>
            <tr><td class="diff-unchanged" > <br> <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
        </table>
</div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h2><a name="ReleaseProcess-ReleaseSteps"></a>Release Steps</h2>

<p>The process can be summarized as:</p>

<ul>
	<li>Update your <em>Subversion</em> workspace</li>
	<li>Manually update the tapestry version in the source code of the Tapestry archetype
(found in quickstart/src/main/resources/archetype-resources/pom.xml) to the version number
about to be released (i.e., strip off "-SNAPSHOT")</li>
	<li><tt>mvn release:prepare</tt></li>
	<li><tt>mvn release:perform</tt></li>
	<li>Generate and upload Binary / Source distributions
	<ul>
		<li><tt>svn sw <a href="https://svn.apache.org/repos/asf/tapestry/tapestry5/tags/releases/"
class="external-link" rel="nofollow">https://svn.apache.org/repos/asf/tapestry/tapestry5/tags/releases/</a></tt><em>version</em></li>
		<li>The <tt>ant</tt> build script creates the distributions</li>
		<li>There's some manual work to sign and upload the distributions</li>
	</ul>
	</li>
	<li>Login to <a href="https://repository.apache.org/index.html#stagingRepositories"
class="external-link" rel="nofollow">Nexus</a> and <b>close</b> the automatically
created staging repository, and note its url</li>
	<li>Use the <a href="https://issues.apache.org/jira/secure/project/ManageVersions.jspa?pid=12310833"
class="external-link" rel="nofollow">Manage Versions page</a> in JIRA to add a new
version</li>
	<li><b>Release</b> the version, moving outstanding issues to the new version</li>
	<li>Generate <a href="https://issues.apache.org/jira/secure/ConfigureReleaseNote.jspa?projectId=12310833"
class="external-link" rel="nofollow">HTML Release Notes</a> for the version
	<ul>
		<li>Create a new child page of <a href="/confluence/display/TAPESTRY/Release+Notes"
title="Release Notes">Release Notes</a> (it may already exist)</li>
		<li>Update with text about any unusual aspects of the upgrade (especially, non-backwards
compatible changes)</li>
		<li>Paste the HTML release notes content into the new page (you'll have to use the
{html} macro)</li>
		<li>Update <a href="/confluence/display/TAPESTRY/Release+Notes" title="Release
Notes">Release Notes</a> index page to point to the new page</li>
	</ul>
	</li>
	<li>Send vote email ... <b>3 days pass</b></li>
	<li>Login to <a href="https://repository.apache.org/index.html#stagingRepositories"
class="external-link" rel="nofollow">Nexus</a> and <b>release</b> the
version's repository
	<ul>
		<li>Enter "Tapestry 5.x.x beta release" (adjust as necessary) for the message</li>
		<li>The version will disappear from the list of repositories after releasing it</li>
	</ul>
	</li>
	<li>SSH to people.apache.org and copy the Binary / Source distributions to the right
directory</li>
	<li>Once files reach all mirrors, update the Downloads Page</li>
	<li>Create a Confluence blog entry to describe the new release (this will automatically
appear on the Tapestry home page)</li>
</ul>



<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/forbidden.gif" width="16"
height="16" align="absmiddle" alt="" border="0"></td><td>Be aware that Maven
will perform some automatic Subversion commits, and even create the new release tag for you!
Make<br/>
sure to get those version numbers right; I've found to my dismay that it can be tricky to
correct this after-the-fact.</td></tr></table></div>

<p>There's a couple of steps to moving the distributions; you have to delete the prior
release (unless its a stable release) and get some permissions set up correctly:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
&gt; cd public_html/tapestry-releases/
&gt; ls -l
total 43631
-rw-r--r--  1 hlship  tapestry  8722101 Oct 24 15:58 tapestry-bin-5.2.2.tar.bz2
-rw-r--r--  1 hlship  tapestry      195 Oct 24 15:58 tapestry-bin-5.2.2.tar.bz2.asc
-rw-r--r--  1 hlship  tapestry       33 Oct 24 15:58 tapestry-bin-5.2.2.tar.bz2.md5
-rw-r--r--  1 hlship  tapestry  8750103 Oct 24 15:58 tapestry-bin-5.2.2.tar.gz
-rw-r--r--  1 hlship  tapestry      195 Oct 24 15:58 tapestry-bin-5.2.2.tar.gz.asc
-rw-r--r--  1 hlship  tapestry       33 Oct 24 15:58 tapestry-bin-5.2.2.tar.gz.md5
-rw-r--r--  1 hlship  tapestry  8823868 Oct 24 15:58 tapestry-bin-5.2.2.zip
-rw-r--r--  1 hlship  tapestry      195 Oct 24 15:58 tapestry-bin-5.2.2.zip.asc
-rw-r--r--  1 hlship  tapestry       33 Oct 24 15:58 tapestry-bin-5.2.2.zip.md5
-rw-r--r--  1 hlship  tapestry  4920211 Oct 24 15:59 tapestry-src-5.2.2.tar.bz2
-rw-r--r--  1 hlship  tapestry      195 Oct 24 15:59 tapestry-src-5.2.2.tar.bz2.asc
-rw-r--r--  1 hlship  tapestry       33 Oct 24 15:59 tapestry-src-5.2.2.tar.bz2.md5
-rw-r--r--  1 hlship  tapestry  5409252 Oct 24 15:59 tapestry-src-5.2.2.tar.gz
-rw-r--r--  1 hlship  tapestry      195 Oct 24 15:59 tapestry-src-5.2.2.tar.gz.asc
-rw-r--r--  1 hlship  tapestry       33 Oct 24 15:59 tapestry-src-5.2.2.tar.gz.md5
-rw-r--r--  1 hlship  tapestry  7618776 Oct 24 16:00 tapestry-src-5.2.2.zip
-rw-r--r--  1 hlship  tapestry      195 Oct 24 16:00 tapestry-src-5.2.2.zip.asc
-rw-r--r--  1 hlship  tapestry       33 Oct 24 16:00 tapestry-src-5.2.2.zip.md5
&gt; chmod 664 *
&gt; rm -rf /www/www.apache.org/dist/tapestry/tapestry-*5.2.1*
&gt; mv * /www/www.apache.org/dist/tapestry/
&gt; 
</pre>
</div></div>



<h2><a name="ReleaseProcess-Notes"></a>Notes</h2>

<p><tt>mvn release:prepare</tt> does a very good job at guessing the right
version numbers (i.e., stripping off the -SNAPSHOT suffix for the release version,<br/>
and incrementing the version number for the new development version). If it's one of your
first releases, consider trying <tt>mvn release:prepare -DdryRun=true</tt> and
manually observing the differences in the poms (this command will not commit the updated poms
- it'll just generate them). See <a href="http://maven.apache.org/plugins/maven-release-plugin/introduction.html"
class="external-link" rel="nofollow">the Maven documentation</a> for more details.</p>

<p>The Maven code assumes it is executing inside a Subversion (not Git+SVN) workspace.
I often create a fresh checkout into a new directory.</p>

<p>The correct response to this prompt:</p>

<div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline
p:first-child { display: inline; }</style><p>What is the SCM release tag or label
for "Tapestry 5 Project"</p></div>

<p>is</p>

<div class="indent20 inline" style="margin-left: 20px;"><style type="text/css">div.inline
p:first-child { display: inline; }</style><p>5.X.X</p></div>

<p>This reflects that Tapestry stores its SVN tags in a slightly weird way (that made
<em>perfect</em> sense at the time).</p>

<h2><a name="ReleaseProcess-Atemplateforthevoteemail%3A"></a>A template
for the vote e-mail:</h2>


<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>I've created and uploaded a release of Tapestry 5.x.x, ready to be
voted upon. 

The binary and source downloads are uploaded to:

http://people.apache.org/~XXX/tapestry-releases/

and the Maven artifacts staged to:

https://repository.apache.org/content/repositories/orgapachetapestry-XXX/

Please examine these files to determine if the new release, 5.X.X, is ready.

I've also created a 5.X.X tag in Subversion:

http://svn.apache.org/viewvc/tapestry/tapestry5/tags/releases/5.X.X/

On a successful vote, I'll move the files from these directories to
the proper distribution directories and update the Tapestry site documentation.

Vote will run for three days; on success I'll move the voted artifacts
into place and send out appropriate notifications.

</pre>
</div></div>

<p>I often embellish this template with extra detail.</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/TAPESTRY/Release+Process">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=23339205&revisedVersion=19&originalVersion=18">View
Changes</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message