cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [CONF] Apache CXF > Release Management
Date Wed, 29 Jul 2009 15:54:00 GMT
    <base href="">
            <link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=CXF&amp;forWysiwyg=true"
<body style="background-color: white" bgcolor="white">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
     <h2><a href="">Release
     <h4>Page <b>edited</b> by             <a href="">Daniel
     <div class="notificationGreySide">
         <h2><a name="ReleaseManagement-Deployingsnapshots"></a>Deploying
<p>To deploy a snapshot (Apache committers only), run</p>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
<pre>mvn -Pdeploy deploy
<p>That will deploy the latest snapshot along with the javadoc and source jar bundles
to apaches snapshot repository. <b>After deploying the snapshot, you need to login to and fix the permissions. cd to /www/
and run the script.</b> </p>

<p>You can speed up the process by doing a couple things:</p>
	<li>Run with extra flags to skip the code checks and running of the tests
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
<pre>mvn -Pdeploy,nochecks deploy -Dmaven.test.skip.exec=true
	<li>HIGHLY RECOMMENDED: use a "Master Mode" ssh connection to for
the scp commands to use.  This requires a fairly recent version of ssh.   Basically, in your
~/.ssh/config, make sure you have "ControlPath /tmp/%h-%p-%r" set.    Then, in one window,
run "ssh -Mv".   Then run the deploy in another.  The -v on the ssh connection
will print things for each connection so you'll know it working.   This is MUCH faster as
SCP doesn't need to negotiate encryption stuff for every single file, doesn't need to open
up lots of connections, etc....</li>

<p>If your user name on is not the same as your user name on your
home system, you will need to add some configuration to your ~/.m2/settings.xml. The following
works on the assumption that you've published your ssh <br/>
public key to</p>

<style type="text/css">
@import url(/confluence/download/resources/confluence.ext.code:code/shStyles.css);
<!--[if IE]>
<style type="text/css">
    .code textarea, .code input { padding: 0 !important; }
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shCore.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushCSharp.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushPhp.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushJScript.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushVb.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushSql.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushXml.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushShell.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushDelphi.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushPython.js"></script>
<script class="javascript" src="/confluence/download/resources/confluence.ext.code:code/shBrushJava.js"></script>
<div class="code">
<textarea name="newcodemacro" class="xml:nocontrols:nogutter" rows="10" readonly="readonly">&lt;settings&gt;
<script class="javascript">
        window.newcodemacro_initialised = true;
        window.oldonloadmethod = window.onload;
        window.onload = function(){


<h2><a name="ReleaseManagement-Maintainingafixesbranch"></a>Maintaining
a fixes branch</h2>
<p>dkulp: I'm adding this section to document what worked for ME when maintaining the
2.0.x-fixes branch for the 2.0.x releases.  Each Release Manager may have their own style
or tools or whatever.   This is not a "set in stone" type thing.  </p>

<p>Basically, almost all development and fixes and such are usually done by the various
developers right on trunk.   Thus, the main job of the fixes branch maintainer is to triage
the commits on trunk and merge pure fixes to the fixes branch, resolve conflicts, run the
tests, and periodically deploy snapshots.   For the most part, when things go well, it doesn't
take too much time or effort.   An hour or two every couple days is about it.</p>

<p>To set up, you'll want to:</p>
	<li>use svn cp to make a branch. Use URLs for the pathnames or it will take <em>forever</em>.</li>
	<li>use bin/ to change the version in the branch</li>
	<li>use init to set up svnmerge. You may want to run this in <em>both</em>
the trunk and the new branch in case you are contemplating bidirectional merges.</li>

<p>These steps work for individual developers who want to go off into a branch in the
sandbox to work through something complex.</p>

<p>In trunk/bin, there is a program that wraps to assist in
the merging.   If the branch is setup with, if you run it from you checkout directory,
it will prompt for every commit on trunk to see if you want to "Merge" it, "Block" it, or
"Ignore" it.   It displays the commit log first so you can see what was involved.   You can
also check the  <a href="" rel="nofollow">cxf-commits</a>
archive to see the full details of the commit to help decide what action to take.  If you
select "Merge", it will merge the change and then prompt before committing.    That will allow
you to look at the merge and resolve any conflicts.  (or even revert it if you didn't mean
to hit Merge)</p>

<h2><a name="ReleaseManagement-Performingarelease"></a>Performing a release</h2>
<p>For the most part, we now follow the same instructions that the maven team uses.<br/>
<a href="" rel="nofollow"></a></p>

<p>There is one piece of poor wording or flat-out error on that page. At one point,
it says, 'make sure that there are no SNAPSHOTS in your POM.' In fact, the situation is the
opposite. The release plugin requires all the POM versions to be SNAPSHOTS, and proceeds to
create and tag a revision in which the snapshot version is replaced by the actual release

<p>One other caveat: if you use a Mac, you are prone to run into MRELEASE-355, a feud
between Apple and Subversion. Whoever hits this first on CXF will have to modify the pom to
ask for version 2.0-beta-8 of the maven-release-plugin, which seems to be the only way around

<p>Basically, setup your settings.xml file as they described except for your gpg key.
 The version of the gpg plugin we use will ask for it.  </p>

<p>After that is setup, you need to update the release_notes.txt in the distribution/src/main/release,
and run the below commands.</p>
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
<pre>mvn release:prepare -Peverything
mvn release:perform
<p>That will tag the release, update the poms, etc...  Then build it (off the tag) and
deploy everything (including source jars and javadoc jars) to the Nexus repository location
and gpg signs everything.  When the build is done staging, you need to login to the Nexus
repository and "close" the staging are.   See the Maven page above for instructions.   That
is very important.   After the staging are is closed, note the URL for the staging area as
you will need that for the vote.</p>

<p>At this point, everything "pre-vote" is done.   Call the vote.</p>

<p>After the vote passes, you'll need to promote that staging repository to the main
location. Login to Nexus to do that as well.  See above Maven team release page.</p>

<p>Also, don't forget to copy the actual distributions to</p>

<p>Unpack the javadocs.  Create a new directory in /www/ to match
the version number and then unpack the cxf-bundle/$version/*-javadoc.jar from the maven repo
into that new directory.  Update the Navigation page in confluence to point to the new javadoc

<p>Finally, update the <a href="/confluence/display/CXF/Download" title="Download">download</a>
pages and the news page.</p>

     <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href=""
class="grey">Change Notification Preferences</a>

       <a href="">View
       <a href="">View
       <a href=";showCommentArea=true#addcomment">Add

View raw message