<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Send a Pull Request</title>
    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->

    <!-- Le JavaScript -->
    <script src="/assets/js/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="/assets/js/bootstrap-dropdown.js" type="text/javascript"></script>
    <script src="/assets/js/jquery.tweet.js" type="text/javascript"></script>
    <script src="/assets/js/application.js" type="text/javascript"></script>
    <script src="/assets/js/bootstrap-transition.js"></script>
    <script src="/assets/js/bootstrap-alert.js"></script>
    <script src="/assets/js/bootstrap-modal.js"></script>
    <script src="/assets/js/bootstrap-scrollspy.js"></script>
    <script src="/assets/js/bootstrap-tab.js"></script>
    <script src="/assets/js/bootstrap-tooltip.js"></script>
    <script src="/assets/js/bootstrap-popover.js"></script>
    <script src="/assets/js/bootstrap-button.js"></script>
    <script src="/assets/js/bootstrap-collapse.js"></script>
    <script src="/assets/js/bootstrap-carousel.js"></script>
    <script src="/assets/js/bootstrap-typeahead.js"></script>

    <!-- Le styles -->
    <link href="/assets/css/bootstrap.css" rel="stylesheet">
    <link href="/assets/css/application.css" rel="stylesheet">
    <link rel="shortcut icon" href="/assets/img/favicon.ico">
  </head>

  <body><div style="background: red"><h1>2015/07/20 - Apache Deltacloud has been retired. </h1><h2>For more information, please explore the <a href="http://attic.apache.org/">Attic</a>. </h2></div>

    <div class="navbar navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <a class="brand" href="/"><img src="/assets/img/logo.png" width="152"
            alt="Deltacloud API"/></a>
          <ul class="nav top-nav">
  <li><a href="/">Home</a></li>
  <li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">About<b class="caret"></b></a>
    <ul class="dropdown-menu">
      <li><a href="/about.html">What is Deltacloud?</a></li>
      <li><a href="/drivers.html#drivers">Supported Providers</a></li>
    </ul>
  </li>
  <li><a href="/download.html">Download</a></li>
  <li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Installation<b class="caret"></b></a>
    <ul class="dropdown-menu">
      <li><a href="/install-deltacloud.html">Install Deltacloud</a></li>
      <li><a href="/run-deltacloud-server.html">Run the Deltacloud Server</a></li>
    </ul>
  </li>
  <li class="dropdown">
    <a href="/usage.html" class="dropdown-toggle" data-toggle="dropdown">Usage<b class="caret"></b></a>
    <ul class="dropdown-menu">
      <li><a href="/usage.html#usingapi">Using API</a></li>
      <li><a href="/usage.html#clients">Client Libraries</a></li>
      <li><a href="/command-tools.html">Command Line Tools</a></li>
    </ul>
  </li>
  <li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Contribute<b class="caret"></b></a>
    <ul class="dropdown-menu">
      <li><a href="/getting-sources.html">Getting Sources</a></li>
      <li><a href="/how-to-contribute.html">How Can I Contribute?</a></li>
    </ul>
  </li>
  <li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">API<b class="caret"></b></a>
    <ul class="dropdown-menu">
      <li><a href="/rest-api.html">Deltacloud REST API</a></li>
      <li><a href="/curl-examples.html">Deltacloud API cURL examples</a></li>
      <li><a href="/drivers.html">Drivers API</a></li>
    </ul>
  </li>
  <li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">CIMI<b class="caret"></b></a>
    <ul class="dropdown-menu">
      <li><a href="/cimi-rest.html">CIMI REST API</a></li>
      <li><a href="/cimi-curl.html">CIMI cURL Examples</a></li>
    </ul>
  </li>
  <li><a href="/contact.html">Contact</a></li>
</ul>

        </div>
      </div>

    </div>

    <div class="container content">

      <p><br></p>

<ul class="breadcrumb">
<li>
    <a href="how-to-contribute.html#how">How to contribute?</a> <span class="divider">/</span>
  </li>
  <li class="active">Send a pull request</li>
</ul><h3>GIT Workflow and sending a pull request</h3>

<hr><h4>Basics</h4>

<ul>
<li>Deltacloud uses Github for pull requests and patch reviews.</li>
    <li>The deltacloud/deltacloud-core repository is just a mirror for the official ASF GIT repository.</li>
    <li>The mirror script runs every 2 minutes so please be patient.</li>
    <li>In order to have your patch accepted and pushed, you need to have signed the Apache Individual Contributor License Agreement</li>
    <li>We use the official ASF repository for pushing patches (you need to be an ASF contributor with push rights for this), or you need to ask somebody with push rights to do so. If you are not Deltacloud API ASF project member with push rights, please ignore this information and issue a pull request for someone to push for you.</li>
  </ul><hr><h4>Adding Deltacloud Github repository</h4>

<ul>
<li>
<b>Fork the "deltacloud/deltacloud-core"</b>
  <a href="https://github.com/deltacloud/deltacloud-core">repository</a>
  by click on the <b>Fork</b> tab at the top of the page
  <br><br><br><div class="span8">
    <img src="assets/img/git-Fork.png" alt="git Fork diagram" align="center">
</div>
<br><br><br><br>
</li>

<li>
<b>Clone your fork</b>
  <pre>
  $ git clone https://github.com/<i>your username</i>/deltacloud-core.git
  </pre>
</li>

<li>
<p><b>Configure remotes</b></p>
  <pre>
  $ cd deltacloud-core
  $ git remote add upstream https://github.com/deltacloud/deltacloud-core.git
  $ git fetch upstream
  </pre>
</li>

<li>
  <p>For more details on forking git repositories see:
  <a href="https://help.github.com/articles/fork-a-repo">The Official GitHub Help <b>Fork A Repo</b></a></p>
</li>
</ul><p><br><br></p>

<hr><h4>Basic GIT workflow</h4>

<ul>
<li>Commit some code changes
  <pre>
  $ git checkout -b <b>my branch</b>
  <i>Coding your changes</i>
  $ git commit -m "Commit message"
  </pre>
</li>

<li><p>
   <i><b>Tip:</b></i> If there is a <a href="https://issues.apache.org/jira/browse/DTACLOUD">JIRA</a>
   ticket associated with this work <b>please</b> include the JIRA ID
   in the commit message<br><b>For example:</b> <i>This change addresses: <b>DTACLOUD-123</b></i>
</p></li>

<li>Repeat the previous step until you finish the needed changes.</li>
</ul><hr><h4>Pushing your work</h4>
<p>
  </p><ul>
<li>Update the original repo
    <br><br><p>This will avoid possible merge conflicts and problems with applying your patches.</p>
    <pre>
    $ git checkout master
    $ git pull
    </pre>
    </li>
<li>Push to your fork.
    <pre>
    $ git checkout my_work_topic
    $ git rebase -i master (Tip: You can rename/squash commits at this point)
    $ git push origin my_work_topic
    </pre>
    </li>
  


<hr>
<h4>Issue the Pull request</h4>
<p>
  </p>
<ul>
<li>Navigate to your forked Github repository <br><b>For example:</b>https://github.com/<i>your username</i>/deltacloud-core.git
    </li>
    <li>click the <i>Pull Request</i> tab</li>
    (Tip: You can use hub to automate this step)
    
    <li>
      <p>For more details on using pull requests see:
      <a href="https://help.github.com/articles/using-pull-requests">The Official GitHub Help <b>For Using Pull Request</b></a></p>
    </li>
  </ul>
<hr>
<h4>Pull request / review process</h4>

<ul>
<li>Your <b>pull request</b> will appear <a href="https://github.com/deltacloud/deltacloud-core/pulls">here</a>
  </li>
  <li>All subscribers will be notified by email that a new pull request has been issued.
  </li>
  <li>When doing a review please follow our <a href="https://cwiki.apache.org/confluence/display/DTACLOUD/Deltacloud+API+code+style+guidelines">coding guidelines</a>
  </li>
  <li>Reviewers can leave comments on your pull request directly on github.
  </li>
  <li>Help on reviewing github pull requests can be found <a href="https://help.github.com/articles/using-pull-requests#reviewing-proposed-changes">here</a>
  </li>
  <li>If your pullrequest is not being reviewed, please request one on the <b>#deltacloud</b> IRC channel on <b>irc.freenode.org</b>
  </li>
  <li>Once your pull request gets ACKed, the person who did the review should <b>close</b> the pull request <b>without merging it</b>.
  </li> 
  <li>The reviewer, or someone with push rights, should push the change to the official
  Apache GIT repository:<br><b>https://github.com/apache/deltacloud</b>
  </li>
  <li>No changes should be pushed to the mirror used to create your fork, <br><b>https://github.com/deltacloud/deltacloud-core</b>
  </li>
</ul>
<hr>
<h4>Contributors with push rights</h4>
<p>
  </p>
<ul>
<li>Adding ASF as a remote branch
    <pre>
    $ git remote add apache https://git-wip-us.apache.org/repos/asf/deltacloud.git
    $ git fetch apache
    $ git checkout -b apache apache/master
    </pre>
    </li>
<li>Pushing patches
    <pre>
    $ git checkout topic_you_want_to_push
    $ git rebase -i apache
    $ git checkout apache
    $ git merge topic_you_want_to_push
    $ git push apache refs/heads/apache:master
    </pre>
    </li>
    <li>
    <b>Note:</b> Do not forget to git pull from the <i>apache</i> branch before merging changes
    </li>
    <li>
<p>Tip: To make all pull requests appear in your local GIT repository follow <a href="https://gist.github.com/piscisaureus/3342247">these</a> instructions.<br><br>
       Then to get all pull requests locally issue:
       </p>
<pre>
       $ git fetch origin
       </pre>

       <p>Then to checkout a single pull request directly issue:</p>
       <pre>
       $ git checkout pr/NUMBER
       </pre>
 
       <p>instead of issueing:</p>
       <pre>
       $ git checkout topic_you_want_to_push
       </pre>
    
  

<br><br><br><div class="modal-footer">
    <a href="#" class="btn btn-primary" data-dismiss="modal">Close</a>
  </div>

</li>
</ul>
</ul>

      <footer class="footer">
        <p class="pull-right"><span class='icon-circle-arrow-up'>&nbsp;</span><a href="#">Back to top</a></p>
        <div class='row'>
          <div class='span3'>
            <img src="/assets/img/asf.png" alt="Apache Software Foundation"/>
          </div>
          <div class='span9'>
            <strong>Apache Deltacloud</strong> is a top-level project at the <a
              href="http://www.apache.org">Apache Software Foundation</a>,
            having graduated from the ASF Incubator in October
            2011. Through a collaborative and meritocratic development process, Apache
            projects deliver enterprise-grade, freely available software products that
            attract large communities of users. 
          </div>
        </div>
      </footer>

    </div> <!-- /container -->

<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://stats.salasaga.org/aeolus/piwik/" : "http://stats.salasaga.org/aeolus/piwik/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://stats.salasaga.org/aeolus/piwik/piwik.php?idsite=2" style="border:0" alt="" /></p></noscript>
<!-- End Piwik Tracking Code -->

  </body>
</html>
