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 Mon, 29 Apr 2013 09:10:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/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/~mlusetti">Massimo
Lusetti</a>
    </h4>
        <div id="versionComment">
        <b>Comment:</b>
        update to reflect changes on our site managements, please check and correct if something
is wrong<br />
    </div>
        <br/>
                         <h4>Changes (2)</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" >** Create (if necessary) {{/www/tapestry.apache.org/5.x.x}}
to store documentation for the release <br>** Unpack the JavaDoc archive into the directory
(it will become the {{apidocs}} directory) <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">**
Relink {{/www/tapestry.apache.org/current/}} to point to the new {{5.x.x}} directory <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">**
Update SVN PubSub repo at https://svn.apache.org/repos/infra/websites/production/tapestry/content/
to clean old api dir and relink all symlinks to point to the new {{5.x.x}} directory <br></td></tr>
            <tr><td class="diff-unchanged" >* Once files reach all mirrors, update
the Downloads Page <br>* Create a Confluence blog entry to describe the new release
(this will automatically appear on the Tapestry home page) <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h2><a name="ReleaseProcess-Prerequisites"></a>Prerequisites </h2>
<div class='navmenu' style='float:right; background:#eee; margin:3px; padding:3px'><table
class="tableview" width="100%">
            <tr><th style="padding: 3px 3px 3px 0px">Related Articles</th></tr>
                        <tr>
            <td>
                                 <span class="icon icon-page" title=Page>Page:</span>
                         <a href="/confluence/display/TAPESTRY/Confluence+Site+Setup">Confluence
Site Setup</a>
        
                                            </td>
        </tr>
                <tr>
            <td>
                                 <span class="icon icon-page" title=Page>Page:</span>
                         <a href="/confluence/display/TAPESTRY/Developer+Bible">Developer
Bible</a>
        
                                            </td>
        </tr>
                <tr>
            <td>
                                 <span class="icon icon-page" title=Page>Page:</span>
                         <a href="/confluence/display/TAPESTRY/Version+Numbers">Version
Numbers</a>
        
                                            </td>
        </tr>
                <tr>
            <td>
                                 <span class="icon icon-page" title=Page>Page:</span>
                         <a href="/confluence/display/TAPESTRY/Release+Process">Release
Process</a>
        
                                            </td>
        </tr>
                <tr>
            <td>
                                 <span class="icon icon-page" title=Page>Page:</span>
                         <a href="/confluence/display/TAPESTRY/Developer+Information">Developer
Information</a>
        
                                            </td>
        </tr>
                <tr>
            <td>
                                 <span class="icon icon-page" title=Page>Page:</span>
                         <a href="/confluence/display/TAPESTRY/Building+Tapestry+from+Source">Building
Tapestry from Source</a>
        
                                            </td>
        </tr>
            </table>
</div>

<p>Before creating a release ensure:</p>

<ul>
	<li>You have setup your own public OpenGPG key signature for signing the distribution</li>
	<li>You can login to <a href="https://repository.apache.org/index.html#stagingRepositories"
class="external-link" rel="nofollow">Nexus</a></li>
	<li>Your local <em>settings.xml</em> contains valid SVN and deployment
credentials</li>
</ul>



<h2><a name="ReleaseProcess-SVNandDeploymentCredentials"></a>SVN and Deployment
Credentials</h2>

<p>To successfully create a release, you will need to update your Maven Settings with
the credentials for your SVN user and the deployment user. These credentials are stored in
the Gradle configuration file <tt>~/.gradle/gradle.properties</tt>:</p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
apacheDeployUserName=hlship
apacheDeployPassword=...

signing.keyId=7CC19136
signing.secretKeyRingFile=/Users/hlship/.gnupg/secring.gpg
signing.password=...
</pre>
</div></div>

<h2><a name="ReleaseProcess-ReleaseSteps"></a>Release Steps</h2>

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

<ul>
	<li>Update your workspace to the release branch, currently 5.3:  <tt>git co 5.3</tt>
	<ul>
		<li>It is normal for the release branch to be created a week or more before the planned
release</li>
	</ul>
	</li>
	<li>Update <tt>build.gradle</tt> to set the version number, then <tt>git
commit</tt>
	<ul>
		<li>Don't forget to set it back to 5.x-SNAPSHOT after the release</li>
	</ul>
	</li>
	<li>Run the build using <tt>gradle generateRelease</tt>
	<ul>
		<li>This will create, sign, and upload JAR files and other artifacts to the Nexus
repository</li>
		<li>It will also create, sign, and upload the source and javadoc archives to your
<tt>~/public_html/tapestry-releases</tt> folder of your Apache home directory
(at people.apache.org)</li>
	</ul>
	</li>
	<li>Tag the release in Git, then push the changes up to the Apache repository:
	<ul>
		<li><tt>git tag 5.x.x</tt></li>
		<li><tt>git push --tags</tt></li>
	</ul>
	</li>
	<li>Update <tt>build.gradle</tt> to bump the version number to 5.x(.y)?-SNAPSHOT,
then <tt>git commit</tt></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/plugins/servlet/project-config/TAP5/versions"
class="external-link" rel="nofollow">Manage Versions page</a> in JIRA to add a new
version (this is often not necessary as it is often created by someone earlier)</li>
	<li><b>Release</b> the version, moving outstanding issues to the next version</li>
	<li>Generate HTML Release Notes
	<ul>
		<li>Visit the <a href="https://issues.apache.org/jira/browse/TAP5#selectedTab=com.atlassian.jira.plugin.system.project:versions-panel&amp;subset=-1"
class="external-link" rel="nofollow">TAP5 Versions pages in JIRA</a></li>
		<li>Choose the correct version number</li>
		<li>Click "Release Notes" (upper right corner of the page)</li>
		<li>Create a new Confluence 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>Rename the "Bug" heading to "Bugs Fixed", "Improvement" to "Improvements Made",
"New Feature" to "New Features Added"</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 "Apache Tapestry 5.x.x" (adjust as necessary) for the message</li>
		<li>The version will disappear from the list of repositories after releasing it</li>
		<li>Releasing will ultimately get the artifacts up to the central Maven repository</li>
	</ul>
	</li>
	<li>Documentation and Downloads:
	<ul>
		<li>SSH to people.apache.org and move the source and javadoc archives to <tt>/www/www.apache.org/dist/tapestry/</tt></li>
		<li>Create (if necessary) <tt>/www/tapestry.apache.org/5.x.x</tt> to store
documentation for the release</li>
		<li>Unpack the JavaDoc archive into the directory (it will become the <tt>apidocs</tt>
directory)</li>
		<li>Update SVN PubSub repo at <a href="https://svn.apache.org/repos/infra/websites/production/tapestry/content/"
class="external-link" rel="nofollow">https://svn.apache.org/repos/infra/websites/production/tapestry/content/</a>
to clean old api dir and relink all symlinks to point to the new <tt>5.x.x</tt>
directory</li>
	</ul>
	</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>
	<li>Edit <tt>/www/tapestry.apache.org/archetype-catalog.xml</tt> to add
or update a new entry for the release</li>
	<li>Update the release number listed in the following pages in the Confluence wiki:
	<ul>
		<li><a href="/confluence/display/TAPESTRY/Download" title="Download">Download</a>
page</li>
		<li>(Optional) Tutorial <a href="/confluence/display/TAPESTRY/Creating+The+Skeleton+Application"
title="Creating The Skeleton Application">Creating The Skeleton Application</a> page:
Tapestry version number in the archetype</li>
		<li>(Optional) <a href="/confluence/display/TAPESTRY/Getting+Started" title="Getting
Started">Getting Started</a> page: Tapestry version number in the archetype</li>
	</ul>
	</li>
	<li>Update the release number and date at <a href="http://svn.apache.org/repos/asf/tapestry/tapestry-site/branches/post-5.2-site/publish/doap_Tapestry.rdf"
class="external-link" rel="nofollow">http://svn.apache.org/repos/asf/tapestry/tapestry-site/branches/post-5.2-site/publish/doap_Tapestry.rdf</a></li>
</ul>


<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 source and source downloads are uploaded to:

http://people.apache.org/~USER/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 Git:

https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git;a=commit;h=c5600a8de7645fb7bd5cc21b38f8902a36c1b840

Vote will run for three days; On a successful vote, I'll release the Maven
artifacts, and move the source and javadoc distributions from these directories
to the proper distribution directories and update the Tapestry site
documentation, and send out appropriate notifications.
</pre>
</div></div>

<p>I often embellish this template with extra detail.</p>

<p>Lately, I append a text version of the JIRA release notes as well.</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=46&originalVersion=45">View
Changes</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message