<!DOCTYPE html><html><head><meta charset="utf-8"><title>Apache Pony Mail (Incubating)</title>
<link rel="stylesheet" type="text/css" href="/css/default.css"/>
<link rel="stylesheet" type="text/css" href="/css/fa/fa.css"/>
<link rel="apple-touch-icon" sizes="57x57" href="/icons/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/icons/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/icons/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/icons/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/icons/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/icons/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/icons/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/icons/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/icons/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192"  href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/icons/favicon-16x16.png">
<link rel="manifest" href="/icons/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/icons/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
</head><body>
<div id="titlebar">
    <a href="/contribute.html"><img align='left' style="width: 150px; height: 145px; position: relative; left: -4px; top: -4px; border: 0;" src="/images/devme.png" alt="Fork/Hack on Pony Mail"></a>
    <h1><a id="title" href="/" style="color: #FFF !important;">Apache Pony Mail&trade; (Incubating)</a></h1>
    <div id="menubar">
        <ul>
            <li><a href="/docs.html"><i class="fa fa-book"></i><span>Documentation</span></a></li>
            <li><a href="/source.html"><i class="fa fa-git-square"></i><span>Source</span></a></li>
            <li><a href="/downloads.html"><i class="fa fa-cloud-download"></i><span>Download</span></a></li>
            <li><a href="/support.html"><i class="fa fa-question-circle"></i><span>Get support</span></a></li>
            <li><a href="/contribute.html"><i class="fa fa-share-alt"></i><span>Contribute</span></a></li>
            <li><a href="/about.html"><i class="fa fa-users"></i><span>About</span></a></li>
        </ul>
    </div>
</div>
<h1 id='contributingtoponymail'>Contributing to Pony Mail<a href='#contributingtoponymail' style='color: rgba(0,0,0,0);'>&para;</a></h1>
<p>We'd LOVE if more people would contribute to Pony Mail!
Any form of contribution is most welcome, whether it be programming,
documentation, evangelism, marketing, or helping out other users.</p>
<p>To contribute to Pony Mail, follow these steps:</p>
<ul>
<li><a href="/source.html">Fork the repo</a></li>
<li>Subscribe to the Pony Mail dev list:</li>
<li>
<ul>
<li>Either send an email to dev-subscribe@ponymail.incubator.apache.org OR</li>
</ul>
</li>
<li>
<ul>
<li>Visit <a href="https://lists.apache.org/list.html?dev@ponymail.apache.org">https://lists.apache.org/list.html?dev@ponymail.apache.org</a> (You can use Persona or ASF OAuth)</li>
</ul>
</li>
<li>Find something to fix or help out with</li>
<li>Let us know what you want to do, and we'll add you to our contributors list!</li>
<li>Join us on #ponymail on the Freenode IRC network</li>
</ul>
<h2 id='gitworkflow'>Git Workflow<a href='#gitworkflow' style='color: rgba(0,0,0,0);'>&para;</a></h2>
<p>The following workflow is adapted from the <a href="https://cwiki.apache.org/confluence/display/JCLOUDS/Git+workflow">jClouds workflow</a>:</p>
<h4 id='prepareyourfork'>Prepare your fork<a href='#prepareyourfork' style='color: rgba(0,0,0,0);'>&para;</a></h4>
<p>The first thing to do is to make sure you have the ponymail Git
repository configured as a remote. In this case we will add it as a
remote called "ponymail":
<pre>
cd ponymail
git remote add ponymail https://git-wip-us.apache.org/repos/asf/incubator-ponymail.git
</pre></p>
<h4 id='createthefeaturebranch'>Create the feature branch<a href='#createthefeaturebranch' style='color: rgba(0,0,0,0);'>&para;</a></h4>
<p>When beginning working on the feature, take a branch from the latest master version:
<pre>
git checkout master
git fetch ponymail
git reset --hard ponymail/master
git checkout -b feature-branch
</pre></p>
<p>As we want a clean master and we should never use directly use the
master branch (it should be only used to sync the fork with the upstream
repo), so we can just reset hard it instead of rebasing. Develop the
feature and address the review comments</p>
<p>Develop the feature normally, commit the changes (you can create N
commits if needed), and open the pull request.</p>
<p>Once the pull request is open and has been reviewed, address any review
comments and add the changes in new commits. This will make it easier
for the reviewer to focus only in the last changes without having to go
again through the entire pull request. Once the PR is ready to be
merged, you'll be asked to squash the commits. Preparing the pull
request to be merged</p>
<p>First squash the commits, to have a cleaner rebase (it is easier to rebase having one single commit than having N commits):</p>
<pre>
git rebase -i HEAD~N     # Where N is the number of commits in the pull request
</pre>

<p>Now that there is only one commit, update the branch to the latest version of master:
<pre>
git fetch ponymail
git rebase ponymail/master
</pre></p>
<p>At this point the local branch with one single commit on top of the latest master and it can be pushed to your fork:
<pre>
git push &lt;your-fork's-remote&gt; feature-branch -f # You might need to push with --force
                                                # because of the rebase to the latest master
</pre></p>
<p>Now the pull request will be clean with one single commit and up to date
with the latest master. Ready to be merged!</p>
<h4 id='anoteaboutkeepingthepullrequestuptodate'>A note about keeping the pull request up to date<a href='#anoteaboutkeepingthepullrequestuptodate' style='color: rgba(0,0,0,0);'>&para;</a></h4>
<p>The key point is to <em>avoid</em> updating your feature branch with master
until the PR is ready to be merged (or until you're asked to rebase).
This way you'll avoid accidental merge commits and fixing conflicts when
you shouldn't be dealing with that. If for you want to keep your branch
up to date with the latest master changes anyway, always rebase it;
don't git pull or introduce merge commits, as it will complicate the
rebasing process and will make it difficult to merge the pull request in
a clean way</p>
<h4><a id="disclaimer"></a>Disclaimer</h4>
<p style="font-size: 8pt; line-height: 12pt;">
    <a href="https://incubator.apache.org"><img src="/images/podling.svg" align="right" width="220px"/></a>
    Apache Pony Mail (Incubating) is an effort undergoing incubation at
    The Apache Software Foundation (ASF), sponsored by the <a href="https://incubator.apache.org">
    Apache Incubator</a>. Incubation is required of all newly accepted projects
    until a further review indicates that the infrastructure,
    communications, and decision making process have stabilized in a
    manner consistent with other successful ASF projects. While
    incubation status is not necessarily a reflection of the
    completeness or stability of the code, it does indicate that the
    project has yet to be fully endorsed by the ASF.
</p>
<p style="font-size: 8pt; line-height: 12pt;">
    Copyright 2016, the Apache Software Foundation.<br/>
    Apache Pony Mail and the Apache Pony Mail logo are trademarks of the Apache Software Foundation.
    Apache and the Apache feather are registered trademarks of the
    Apache Software Foundation.
</p>
</body></html>
