camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [CONF] Apache Camel > Contributing
Date Fri, 08 Mar 2013 05:59:00 GMT
    <base href="">
            <link rel="stylesheet" href="/confluence/s/2042/9/1/_/styles/combined.css?spaceKey=CAMEL&amp;forWysiwyg=true"
<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="">Contributing</a></h2>
    <h4>Page <b>edited</b> by             <a href="">Jan
        <div id="versionComment">
        ':' is not part of the link<br />
                         <h4>Changes (1)</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>Git is not a brand new
technology and therefore Camel is not the only ASF project thinking about using it. So here
are some more resources you mind find useful: <br></td></tr>
            <tr><td class="diff-changed-lines" >* <span class="diff-changed-words"><span
class="diff-added-chars"style="background-color: #dfd;">[</span><span
class="diff-added-chars"style="background-color: #dfd;">]</span>:</span> Some
basic notes about git@asf <br>* <span class="diff-changed-words"><span class="diff-added-chars"style="background-color:
#dfd;">[</span><span class="diff-added-chars"style="background-color:
#dfd;">]</span>:</span> List of mgit-mirrors at ASF <br>* <span class="diff-changed-words"><span
class="diff-added-chars"style="background-color: #dfd;">[</span><span
class="diff-added-chars"style="background-color: #dfd;">]</span>:</span> More
Git infos from Apache <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h2. Becoming a committer
            <tr><td class="diff-snipped" >...<br></td></tr>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <p>There are many ways you can help make Camel a better piece of software -
please dive in and help&#33;</p>

<p>Try surf the documentation - if somethings confusing or not clear, let us know. 
Download the code &amp; try it out and see what you think. Browse the source code. Got
an itch to scratch, want to tune some operation or add some feature?</p>

<p>Want to do some hacking on Camel? Try surfing the our <a href=""
class="external-link" rel="nofollow">issue tracker</a> for open issues or features
that need to be implemented, take ownership of an issue and try fix it.</p>

<p>If you are a new Camel rider and would like to help us, you can also find some <a
class="external-link" rel="nofollow">easy to resolve issues</a>. Leave a comment
on the issue to let us know you are working on it and add yourself as a watcher to get informed
about all modifications.</p>

<p>If you'd rather a more gentle introduction to working on the Camel project, how about
you try look at the<br/>
<a href="" class="external-link"
rel="nofollow">test coverage report</a> and help us get it even more green by supplying
more test cases to get us closer to 100% coverage.</p>

<h2><a name="Contributing-Gettingintouch"></a>Getting in touch</h2>

<p>There are various ways of communicating with the Camel community.</p>
<ul class="alternate" type="square">
	<li>join us on the <a href="/confluence/display/CAMEL/Discussion+Forums" title="Discussion
Forums">Discussion Forums</a> and take part in any conversations</li>
	<li>pop by on <a href="/confluence/display/CAMEL/IRC+Room" title="IRC Room">IRC</a>
and say hi</li>
	<li>add some comments to the <a href="/confluence/display/CAMEL/Navigation" title="Navigation">wiki</a></li>

<h2><a name="Contributing-Improvingthedocumentation"></a>Improving the documentation</h2>

<p>Documentation is massively important to help users make the most of Apache Camel
and its probably the area that needs the most help&#33;</p>

<p>So if you are interested in helping the documentation effort; whether its just to
fix a page here or there, correct a link or even write a tutorial or improve what documentation
is already there please do dive in and help&#33;</p>

<p>All of the documentation is stored on the wiki. See <a href="/confluence/display/CAMEL/How+does+the+website+work"
title="How does the website work">How does the website work</a> or <a href="/confluence/display/CAMEL/How+do+I+edit+the+website"
title="How do I edit the website">How do I edit the website</a> for more details.</p>

<p>To be able to edit the wiki you need to mail the <a href="/confluence/display/CAMEL/Mailing+Lists"
title="Mailing Lists">dev list</a> asking for an account (to prevent spam we only
offer access to the wiki by folks sending mail to the mailing list).</p>

<h2><a name="Contributing-Ifyoufindabugorproblem"></a>If you find a bug
or problem</h2>

<p>Please raise a new issue in our <a href=""
class="external-link" rel="nofollow">issue tracker</a></p>

<p>If you can create a JUnit test case then your issue is more likely to be resolved
e.g. take a look at some of the existing <a href=""
class="external-link" rel="nofollow">unit tests cases</a></p>

<p>Then we can add your issue to Subversion and then we'll know when its really fixed
and we can ensure that the problem stays fixed in future releases.</p>

<h2><a name="Contributing-Workingonthecode"></a>Working on the code</h2>

<p>Grab the <a href="/confluence/display/CAMEL/Source" title="Source">Source</a>
and create a project in your IDE. e.g. if you are using Eclipse the following should do the
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
svn co https:<span class="code-comment">// camel
</span>cd camel
mvn eclipse:eclipse
<p>Build the project.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
mvn install
<p>PS: You might need to build multiple times (if you get a build error) because sometimes
maven fails to download all the files.</p>

<p>Then import the projects into your workspace.</p>

<h2><a name="Contributing-Creatingpatches"></a>Creating patches</h2>

<p>We gladly accept patches if you can find ways to improve, tune or fix Camel in some

<p>Most IDEs can create nice patches now very easily. e.g. in Eclipse just right click
on a file/directory and select Team &#45;&gt; Create Patch. Then just save the patch
as a file and then submit it. (You may have to click on Team &#45;&gt; Share... first
to enable the Subversion options). Incidentally if you are an Eclipse user you should install
the <a href="" class="external-link" rel="nofollow">subclipse</a>

<p>If you're a command line person try the following to create the patch</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
diff -u &gt;&gt; patchfile.txt
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
svn diff &gt;&gt; patchfile.txt

<h2><a name="Contributing-Submittingpatches"></a>Submitting patches</h2>

<p>The easiest way to submit a patch is to</p>
	<li><a href="" class="external-link"
rel="nofollow">create a new JIRA issue</a> (you will need to register),</li>
	<li>attach the patch or tarball as an attachment</li>
	<li><b>tick the Patch Attached</b> button on the issue</li>
	<li>fire off an email to the <a href="/confluence/display/CAMEL/Discussion+Forums"
title="Discussion Forums">Discussion Forums</a> linking to the JIRA</li>

<p>When a ticket is create in JIRA it automatically sends an email to the developer
forum but an email always helps alert folks (as lots of emails are generated from every change
to every JIRA).</p>

<p>Remember to create and attach the patch in two steps, as JIRA does not support granting
ASF license to the patch in the create ticket wizard. So after creating the ticket, then attach
the patch and remember to tick off the grant ASF license, otherwise we can not commit the
patch. We prefer patches has unit tests as well and that these unit tests have proper assertions
as well, so remember to replace your system.out or logging with an assertion instead&#33;</p>

<h2><a name="Contributing-WorkingwithGit"></a>Working with Git</h2>

<p>While several committer are working with Git, it is not the primary version control
system at Apache Software Foundation. This is because the ASF has to ensure that each commit
into the codebase is correct licensed. With the current VCS - Subversion - only committers
with a signed CLA have write access.</p>

<p>But there are several ways how Git users could improve Camel with their prefered
	<li>Apache Git Mirror</li>
	<li>Pull request at Github</li>

<p>The minor "problem" is creating the local repository connected to the official repository.
Next step is modifying the codebase. The major "problem" then is getting the modifications
back to the official ASF repository.<br/>
Depending on the chosen way these steps differ which is short described here.</p>

<h3><a name="Contributing-gitsvn"></a>git-svn</h3>

<p>With Git you cannot fork another Git repository - you also could "fork" a subversion
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
git svn clone https:<span class="code-comment">//

<p>If you have write access to the codebase you could fork from the https-adress and
just "push" your changes back:</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
git svn dcommit -m <span class="code-quote">"message"</span>

<p>Without that privilege you could follow the <a href=""
class="external-link" rel="nofollow">recommended workflow</a>: working on a feature
branch, create a patch and attach it to Jira. Attaching to Jira has the benefit for the community
that you are enforced to grant explicitly the license to the ASF.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
git format-patch origin/trunk

<h3><a name="Contributing-ApacheGitMirror"></a>Apache Git Mirror</h3>

<p>Forking the Git repo from here is much smoother, because you are forking a "real"
Git repo.</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java">
git fork git:<span class="code-comment">// &lt;TargetDirectory&gt;</span>

<p>Bringing your modifications back to Apache is the <a href=""
class="external-link" rel="nofollow">same workflow as described before</a>.</p>

<p>Drawback of this Apache Git repository is that it is a "mirror" with a day relay.
So you are one day behind the community ...</p>

<h3><a name="Contributing-PullrequestatGithub"></a>Pull request at Github</h3>

<p>There is also a Git <a href="" class="external-link"
rel="nofollow">repository at Github</a> which you could fork. Then you work on a
new feature branch and send a pull request. For granting the license you also should create
a Jira issue with a reference to that pull request. One of the committers then could bring
that changesets to the ASF codebase via his/her own local repository. After closing the Jira
issue you have to close the pull request because we can't do that...</p>

<p>Same drawback here - it is one day behind ...</p>

<h3><a name="Contributing-Moreresources"></a>More resources</h3>

<p>Git is not a brand new technology and therefore Camel is not the only ASF project
thinking about using it. So here are some more resources you mind find useful:</p>
	<li><a href="" class="external-link" rel="nofollow"></a>:
Some basic notes about git@asf</li>
	<li><a href="" class="external-link" rel="nofollow"></a>:
List of mgit-mirrors at ASF</li>
	<li><a href="" class="external-link" rel="nofollow"></a>:
More Git infos from Apache</li>

<h2><a name="Contributing-Becomingacommitter"></a>Becoming a committer</h2>

<p>Once you've got involved as above, we may well invite you to be a committer. See
<a href="/confluence/display/CAMEL/How+do+I+become+a+committer" title="How do I become
a committer">How do I become a committer</a> for more details.</p>

<h2><a name="Contributing-Usingtheissuetracker"></a>Using the issue tracker</h2>

<p>Before you can raise an issue in the <a href=""
class="external-link" rel="nofollow">issue tracker</a> you need to register with
it. This is quick &amp; painless.</p>

<p>If you want to have a go at fixing an issue you need to be in the list of activemq-developers
on the issue tracker. To join the group, please mail the <tt></tt>
mail list with the email address you used to register with the issue tracker and we'll add
you to the group.</p>

<h2><a name="Contributing-Becommingacommitter"></a>Becomming a committer</h2>

<p>The first step is contributing to the project; if you want to take that a step forward
and become a fellow committer on the project then see the <a href=""
class="external-link" rel="nofollow">Committer Guide</a></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