camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Camel > Release Guide
Date Sun, 07 Apr 2013 16:03:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/1/_/styles/combined.css?spaceKey=CAMEL&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/CAMEL/Release+Guide">Release
Guide</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~muellerc">Christian
Mueller</a>
    </h4>
        <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" >{code} <br>This will create
the tag in svn and leave various stuff around locally to direct the perform phase. <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">{info}
<br>*Note:* If you&#39;re located in Europe then release:prepare may fail with &#39;_Unable
to tag SCM_&#39; and &#39;_svn: No such revision X_&#39;. Wait 10 seconds and
run <br>{code} <br>mvn release:prepare <br>{code} <br>again. <br>{info}
<br></td></tr>
            <tr><td class="diff-unchanged" ># Perform the release to the staging
repo <br>{code} <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >h2. Manually updating files <br>
<br></td></tr>
            <tr><td class="diff-changed-lines" >The {{pom.xml}} files in <span
class="diff-changed-words">{{etc}}<span class="diff-added-chars"style="background-color:
#dfd;">, {{tests/camel-itest-karaf}}, {{tests/camel-itest-osgi}}, {{tests/camel-itest-performance}}</span></span>
and <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">{{tests/camel-itest-karaf}}</span>
<span class="diff-added-words"style="background-color: #dfd;">{{tests/camel-performance}}</span>
need to be manually updated with the Camel version number in the {{&lt;parent&gt;}}
tag. <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h2. Announcing the Camel
Release <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <h1><a name="ReleaseGuide-HowtocreateandannounceaCamelrelease."></a>How
to create and announce a Camel release.</h1>

<p>This release guide is based on the <a href="http://maven.apache.org/developers/release/apache-release.html"
class="external-link" rel="nofollow">General guide for releasing Maven-based projects at
Apache</a>, so be sure to check it out before continuing and meet all prerequisites.
</p>

<p><b>Note</b>: Make sure that you are using <b>JDK 6</b>.</p>

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

<p>To prepare or perform a release you MUST BE at least an Apache Camel committer.</p>
<ul>
	<li>The artifacts for each and every release must be SIGNED; your public key should
be added to the KEYS file</li>
	<li>Your public key must also be cross-signed by other Apache committers (this can
be done at key signing parties at ApacheCon for instance)</li>
	<li>Make sure you have the correct maven configuration in <tt>~/.m2/settings.xml</tt></li>
	<li>Use Maven 2.2.1+ (Maven 2.1.x is known to produce wrong gpg pom signatures - <a
href="http://jira.codehaus.org/browse/MGPG-14" class="external-link" rel="nofollow">MGPG-14</a>)</li>
	<li>From Camel 2.10 onwards we will require to use Maven 3.0.2+</li>
	<li>From Camel 2.11 onwards we will require to use Maven 3.0.4+</li>
	<li>You may want to get familiar with the release settings in the parent apache POM.</li>
	<li>Make sure you have installed <a href="http://www.princexml.com/" class="external-link"
rel="nofollow">Prince</a> to be able to generate the Camel manual</li>
	<li>Add your Prince installation <tt>bin</tt> directory to your <tt>PATH</tt>
variable:
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
PATH=$PATH:/usr/local/lib/prince/bin
</pre>
</div></div></li>
</ul>


<h2><a name="ReleaseGuide-Maven2Setup"></a>Maven 2 Setup</h2>

<p>Before you deploy anything to the maven repository using Maven 2, you should configure
your &#126;/.m2/settings.xml file so that the file permissions of the deployed artifacts
are group writable.  If you do not do this, other developers will not able to overwrite your
SNAPSHOT releases with newer versions. The settings follow the <a href="http://maven.apache.org/developers/committer-settings.html"
class="external-link" rel="nofollow">guidelines </a> used by the Maven project. Please
pay particular attention to the <a href="http://maven.apache.org/guides/mini/guide-encryption.html"
class="external-link" rel="nofollow">password encryption recommendations</a>.</p>

<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;!-- Per http://maven.apache.org/developers/committer-settings.html
--&gt;</span></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;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.useagent&gt;</span>false<span
class="code-tag">&lt;/gpg.useagent&gt;</span>
        <span class="code-tag">&lt;gpg.passphrase&gt;</span><span class="code-tag"><span
class="code-comment">&lt;!-- YOUR GPG PASSPHRASE --&gt;</span></span><span
class="code-tag">&lt;/gpg.passphrase&gt;</span>
        <span class="code-tag">&lt;test&gt;</span>false<span class="code-tag">&lt;/test&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>

<p>It is also essential that you configure your umask to 2 on people.apache.org for
non-interactive login.  You can do that by including the snipped below in your <tt>.profile</tt>.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
umask 002
</pre>
</div></div>


<h3><a name="ReleaseGuide-CreatingtheCamelRelease"></a>Creating the Camel
Release</h3>

<p>The release plugin will prompt for a release version, tag and next release version.
Use a three digit release version of the form: 2.x.x and for the tag use a string of the form:
camel-2.x.x. The next version string should use the two digit from: 2.x-SNAPSHOT as this can
be consistent for future SNAPSHOT releases.</p>

<ol>
	<li>Grab the latest source from SVN
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
svn co https:<span class="code-comment">//svn.apache.org/repos/asf/camel/trunk camel
</span>cd camel
</pre>
</div></div></li>
	<li>Verify headers with <a href="http://incubator.apache.org/rat/apache-rat-plugin/usage.html"
class="external-link" rel="nofollow">rat</a>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn -e org.apache.rat:apache-rat-plugin:check
grep -e ' !?????' target/rat.txt -- will show any files without licenses
</pre>
</div></div></li>
	<li>Do a release dry run to check for problems
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn release:prepare -DdryRun=<span class="code-keyword">true</span>
</pre>
</div></div>
<p>Check that you are happy with the results. The poms for the proposed tags will be
in pom.xml.tag. Check also the generated signature files:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cmueller$ gpg camel-core/target/camel-core-2.7.5-SNAPSHOT.jar.asc 
gpg: Signature made Tue Jan 10 20:50:27 2012 CET using RSA key ID 2A239C2C
gpg: Good signature from <span class="code-quote">"Christian Mueller (CODE SIGNING KEY)
&lt;cmueller@apache.org&gt;"</span>
</pre>
</div></div>
<p>When you like the results, clean up:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn release:clean
</pre>
</div></div></li>
	<li>Prepare the release
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn release:prepare
</pre>
</div></div>
<p>This will create the tag in svn and leave various stuff around locally to direct
the perform phase.</p>
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/information.gif" width="16"
height="16" align="absmiddle" alt="" border="0"></td><td><b>Note:</b>
If you're located in Europe then release:prepare may fail with '<em>Unable to tag SCM</em>'
and '<em>svn: No such revision X</em>'. Wait 10 seconds and run
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn release:prepare
</pre>
</div></div>
<p>again.</p></td></tr></table></div></li>
	<li>Perform the release to the staging repo
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn release:perform
</pre>
</div></div></li>
	<li>Close the staging repository<br/>
Quote from the <a href="http://maven.apache.org/developers/release/apache-release.html"
class="external-link" rel="nofollow">Maven release guide for Apache projects</a>
<blockquote><p> Login to <a href="https://repository.apache.org" class="external-link"
rel="nofollow">https://repository.apache.org</a> using your Apache LDAP credentials.
Click on "Staging Repositories". Then select "org.apache.camel-xxx" in the list of repositories,
where xxx represents your username and ip. Click "Close" on the tool bar above. This will
close the repository from future deployments and make it available for others to view. If
you are staging multiple releases together, skip this step until you have staged everything.
Enter the name and version of the artifact being released in the "Description" field and then
click "Close". This will make it easier to identify it later.</p></blockquote>
<p>See the image in the original guide for more info.</p></li>
	<li>Verify staged artifacts<br/>
Quote from the <a href="http://maven.apache.org/developers/release/apache-release.html"
class="external-link" rel="nofollow">original guide</a>
<blockquote>
<p>If you click on your repository, a tree view will appear below. You can then browse
the contents to ensure the artifacts are as you expect them. Pay particular attention to the
existence of *.asc (signature) files. If the you don't like the content of the repository,
right click your repository and choose "Drop". You can then rollback your release and repeat
the process.<br/>
Note the repository URL, you will need this in your vote email.</p></blockquote></li>
</ol>


<h2><a name="ReleaseGuide-TestingtheCamelReleaseCandidate"></a>Testing the
Camel Release Candidate</h2>

<p>When folks need to test out a release candidate, the jars will not have been uploaded
to the central Maven repo. This means that the example programs which use Maven will not automatically
work and you need to follow the <a href="/confluence/display/CAMEL/Testing+a+release+candidate"
title="Testing a release candidate">Testing a release candidate</a> guidelines.<br/>
Afterwards send out the VOTE for this release candidate to the dev@ mailing list.</p>

<h2><a name="ReleaseGuide-Manuallyupdatingfiles"></a>Manually updating files</h2>

<p>The <tt>pom.xml</tt> files in <tt>etc</tt>, <tt>tests/camel-itest-karaf</tt>,
<tt>tests/camel-itest-osgi</tt>, <tt>tests/camel-itest-performance</tt>
and <tt>tests/camel-performance</tt> need to be manually updated with the Camel
version number in the <tt>&lt;parent&gt;</tt> tag. </p>

<h2><a name="ReleaseGuide-AnnouncingtheCamelRelease"></a>Announcing the
Camel Release</h2>
<p>If the VOTE pass, </p>

<ol>
	<li>Close it by sending the RESULT to the mailing list.</li>
	<li>Promote the artifacts to the central repo. For this login to <a href="https://repository.apache.org"
class="external-link" rel="nofollow">https://repository.apache.org</a> using your
Apache LDAP credentials. Click on "Staging Repositories". Select "org.apache.camel-xxx" in
the list of repositories, where xxx represents your username and ip. Click "Release" on the
tool bar above. This will promote all artifacts to the central maven repo. Enter the name
and version of the artifact being released in the "Description" field and then click "Release".
This will make it easier to identify it later.</li>
	<li>Perform a <a href="https://issues.apache.org/jira/plugins/servlet/project-config/CAMEL/versions"
class="external-link" rel="nofollow">release in JIRA</a> and create a new release
version in JIRA</li>
	<li>There should be already a release notes page in the <a href="/confluence/display/CAMEL/In+Progress"
title="In Progress">In Progress</a> folder (if not create one based on the <a
href="/confluence/display/CAMEL/Camel+x.y.z+Release+%28template%29" title="Camel x.y.z Release
(template)">Camel x.y.z Release &#40;template&#41;</a>). Edit it and change
the number of fixed issues and update its parent to be the <a href="/confluence/display/CAMEL/Download"
title="Download">Download</a> page. Now would be a good time to create a new release
notes page for the next release based on the template mentioned before. It is useful and simpler
to keep it up to date during the development cycle.</li>
	<li>Copy the newly deployed distribution to Apache websit
	<ol>
		<li>Copy the newly deployed apache-camel-X.Y.Z.tar.gz file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z.tar.gz.asc file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z.tar.gz.md5 file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z.tar.gz.sh1 file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z.zip file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z.zip.asc file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z.zip.md5 file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z.zip.sh1 file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z-src.tar.gz file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z-src.tar.gz.asc file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z-src.tar.gz.md5 file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z-src.tar.gz.sh1 file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z-src.zip file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z-src.zip.asc file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z-src.zip.md5 file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
		<li>Copy the newly deployed apache-camel-X.Y.Z-src.zip.sh1 file by ssh into /www/www.apache.org/dist/camel/apache-camel/X.Y.Z/
on people.apache.org</li>
	</ol>
	</li>
	<li>Copy the KEYS file by ssh into /www/www.apache.org/dist/camel/apache-camel/ on
people.apache.org <b>if</b> you changed it</li>
	<li>Update the <a href="/confluence/display/CAMEL/Download" title="Download">Download</a>
page to refer to the latest release distributions (search &amp; replace the version numbers
mostly)</li>
	<li>Upload the newly deployed schema to Apache, you need to checkout the files from
"https://svn.apache.org/repos/infra/websites/production/camel/content/schema"</li>
	<li>Upload the javadocs to Apache, you need to checkout the files from "https://svn.apache.org/repos/infra/websites/production/camel/content/maven/"
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td
valign='top'><img src="/confluence/images/icons/emoticons/information.gif" width="16"
height="16" align="absmiddle" alt="" border="0"></td><td><b>Using SVN
the first time on people.apache.org</b><br />To be able to perform a checkout
on people.apache.org from svn.apache.org, you have to trust the server certificate:
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent
panelContent">
<pre>svn list "https://svn.apache.org/repos/infra/websites/production/camel/content"
Error validating server certificate for 'https://svn.apache.org:443':
   The certificate is not issued by a trusted authority. Use the fingerprint to validate the
certificate manually!
Certificate information:
   Hostname: *.apache.org
   Valid: from Tue, 20 Dec 2011 00:00:00 GMT until Mon, 17 Feb 2014 23:59:59 GMT
   Issuer: Thawte, Inc., US
   Fingerprint: bc:5f:40:92:fd:6a:49:aa:f8:b8:35:0d:ed:27:5e:a6:64:c1:7a:1b
(R)eject, accept (t)emporarily or accept (p)ermanently?
</pre>
</div></div></td></tr></table></div>
	<ol>
		<li>Copy $<tt>CAMEL_ROOT</tt>/trunk/etc/scripts/release-website.sh to
your home directory on people.apache.org</li>
		<li>Execute this script, e.g: ./release-website.sh 2.10.0
		<ol>
			<li>It will download the XML Schema files and the Camel manual for the given release
version</li>
			<li>At the end you have to commit these changes manually to SVN (simply follow the
instructions)</li>
		</ol>
		</li>
	</ol>
	</li>
	<li>Update the <a href="/confluence/display/CAMEL/Xml+Reference" title="Xml Reference">Xml
Reference</a> page with a link to the XSD's</li>
	<li>Update the <a href="/confluence/display/CAMEL/Manual" title="Manual">Manual</a>
page with a link to the PDF/HTML <b>if</b> it's a new major/minor version</li>
	<li>Mail the <a href="mailto:dev@camel.apache.org" class="external-link" rel="nofollow">dev</a>,
<a href="mailto:user@camel.apache.org" class="external-link" rel="nofollow">user</a>
&amp; <a href="mailto:announce@apache.org" class="external-link" rel="nofollow">announce</a>
lists</li>
	<li><a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=CAMEL"
class="external-link" rel="nofollow">Post</a> a news entry in the wiki which <b>links
to the release page</b> so folks can download it!</li>
	<li>perform a full export of the Camel WIKI sites to see your blog on the Camel index
site. To do this, you have to remove the main.pageCache file in the content/cache sub directory:
	<ol>
		<li>execute: svn rm <a href="https://svn.apache.org/repos/infra/websites/production/camel/content/cache/main.pageCache"
class="external-link" rel="nofollow">https://svn.apache.org/repos/infra/websites/production/camel/content/cache/main.pageCache</a></li>
	</ol>
	</li>
	<li>Add the release version number to the following <tt>spring.schemas</tt>
file located in <tt>src/main/resources/META-INF</tt> directory of the following
components:<br/>
  camel-cxf<br/>
  camel-spring<br/>
  camel-spring-integration<br/>
  camel-spring-security</li>
	<li>Have a beer&#33; <img class="emoticon" src="/confluence/images/icons/emoticons/smile.gif"
height="20" width="20" align="absmiddle" alt="" border="0"/></li>
</ol>


<h2><a name="ReleaseGuide-Createanewmaintenancebranch"></a>Create a new
maintenance branch </h2>
<p>When we finish the major version release, we need to create a maintenance branch
to holds the bug fixes. Here are the steps for it.</p>
<ol>
	<li>Create a branch from trunk remotely
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
svn copy -m <span class="code-quote">"create camel 2.10.x fix branch"</span> https:<span
class="code-comment">//svn.apache.org/repos/asf/camel/trunk/ https://svn.apache.org/repos/asf/camel/branches/camel-2.10.x</span>
</pre>
</div></div></li>
</ol>


<ol>
	<li>Check out the remote branch in a new directory
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
svn checkout https:<span class="code-comment">//svn.apache.org/repos/asf/camel/branches/camel-2.10.x
</span>
</pre>
</div></div></li>
</ol>


<ol>
	<li>Initialize merge tracking for the new branch
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
cd camel-2.10.x
svnmerge.py init -f commit.txt https:<span class="code-comment">//svn.apache.org/repos/asf/camel/branches/camel-2.10.x
</span>svn ci -F commit.txt 
</pre>
</div></div></li>
</ol>


<ol>
	<li>Update the version number for the next patch release
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
find ./ -name pom.xml |xargs perl -pi -e 's/2.11-SNAPSHOT/2.10.x-SNAPSHOT/g'
svn ci -m <span class="code-quote">"Update the pom version <span class="code-keyword">for</span>
next patch release"</span>
</pre>
</div></div></li>
</ol>

    </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/CAMEL/Release+Guide">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=68287&revisedVersion=70&originalVersion=69">View
Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/CAMEL/Release+Guide?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message