<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Contact</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>
<h2>Contact us!</h2>

<p>We'd love to hear about your experiences with Deltacloud.</p>

<ul>
<li>
  <a href="http://mail-archives.apache.org/mod_mbox/deltacloud-dev/">dev@deltacloud.apache.org</a> is our mailing list where you can ask questions or see all the latest patches and development activity at the bleeding edge of the project.
  </li>
  <li>The <a href="http://webchat.freenode.net/">#deltacloud</a> irc channel on Freenode is a place where the developers hang out and where you can usually get the fastest answers to your questions.
  </li>
</ul>

<p>Please don't hesitate to get in touch if you have any questions about the project, if you've had any issues with installing or using Deltacloud or even just to tell us how great you think Deltacloud is!</p>

<hr>

<h2>Deltacloud Community Calls</h2>

<p>We have weekly community calls that are open to anyone that is interested in Deltacloud - please contact us if you’d like to join the next call.</p>

<p>For now we’re using an <a href="http://etherpad.deltacloud.org/p/Weekly">etherpad</a> to keep track of the agenda and meeting times. Feel free to add items there that you’d like to see addressed in future calls. Calls and agenda are announced on the  <a href="http://mail-archives.apache.org/mod_mbox/deltacloud-dev/">dev@deltacloud.apache.org</a> mailing list.</p>

<p><br></p>

<h3>Past Calls:</h3>

<p><br>
<a href="http://youtu.be/TWf0o8n16uk">Deltacloud Community Call #21</a></p>

<ul>
<li>News: <a href="http://mail-archives.apache.org/mod_mbox/deltacloud-dev/201305.mbox/%3C518D0F79.4000901%40redhat.com%3E">Red Hat Announcement</a> </li>
<li> OpenStack driver update: changing from <a href="https://github.com/ruby-openstack/ruby-openstack">ruby-openstack</a> to <a href="https://github.com/fog/fog">fog</a>
</li>

</ul>

<p><br>
<a href="http://youtu.be/cPnAiFc4wh4">Deltacloud Community Call #20</a></p>

<ul>
<li>Guidelines on how to review someone else's patch: what's enough to warrant an ACK? discussion</li>
    <ul>
      <li><a href="https://cwiki.apache.org/confluence/display/DTACLOUD/Deltacloud+API+code+style+guidelines">some older style guide</a></li>
      <li>Action Item: update website - do we need to have discussion?</li>
    </ul>
    <li>Questions on the cimi tests - on mailing list (discussion/answers)</li>
    <li>Questions - dependencies for debian squeeze - ubuntu - <distro> - website docs
    <ul>
      <li>install script?(bootstrap - michal) </li>
      <li> <a href="https://github.com/deltacloud/dev-tools">an older version of a 'boostrap' script - needs tlc</a>
</li>
    </ul>
    <li>renaming deltacloud repo on github from 'deltacloud/core' to 'detacloud/deltacloud-core'</li>
    <li>NEWS: 1.1.3 release is out - https://github.com/deltacloud/core/blob/master/NEWS</li>


<br>
<a href="http://youtu.be/A2qOr16GZ30">Deltacloud Community Call #19</a>

<ul>
<li>bundle/gem install/ locking gem versions... discussion and solution</li>
<li> Release 1.1.3 - release candidate for review</li>
<li>Rename github.com/deltacloud/core to github.com/deltacloud/deltacloud?</li>
<li>Open session - "what's new" - "what I'm working on" etc - Networks API @ https://github.com/deltacloud/core/pull/10</li>
<li>Questions/discussion - onapp driver request for help - http://onapp.com/cloud/technology/api/ </li>
</ul>

<br>
<a href="http://youtu.be/NHUS-mzkd00">Deltacloud Community Call #18</a>

<ul>
<li>New github pull request model - discussion</li>
<li>Upcoming release 1.1.3</li>
<li>Question - how to contribute to the appoxy/aws rubygem (used by Deltacloud EC2 driver)</li>
</ul>

<br>
<a href="http://youtu.be/upKJM-eYeqw">Deltacloud Community Call #17</a>

<ul>
<li>Progress update and discussion around the Deltacloud Networks API</li>
</ul>

<br>
<a href="http://www.youtube.com/watch?v=_2j6v4qwfzM">Deltacloud Community Call #16</a>

<ul>
<li>Released 1.1.2</li>
<li>A high level overview of: "Complete rewrite of deltacloud-client"</li>
</ul>

<br>
<a href="http://youtu.be/e6AAJXSxR1U">Deltacloud Community Call #15</a>

<ul>
<li>Awesome features of the new deltacloud-client</li>
<li>Deltacloud upstream contributions showcase</li>
<li>Validate Contributions Using the White Box Tests</li>
</ul>

<br>
<a href="http://youtu.be/89bu_Rf_t9Y">Deltacloud Community Call #14</a>

Using the Create models in CIMI, Split CIMI models to Model/Service, deltacloud-client revamp <br>
Notes@<a href="http://etherpad.deltacloud.org/p/Weekly">http://etherpad.deltacloud.org/p/Weekly</a>

<br>
<a href="http://youtu.be/74KvoLUOmYw">Deltacloud Community Call #13</a>

Regions support in the Deltacloud Openstack driver.

<br>
<a href="http://youtu.be/zTCGRDO_3dU">Deltacloud Community Call #12</a>

Working with patches revisited - basics of rebasing and how to contribute via patch review.
The 'white box' unit tests revisited - updating vcr fixtures

<br>
<a href="http://youtu.be/HQ5aPdRSLHo">Deltacloud Community Call #11</a>

An introduction/overview of sinatra-rabbit

<br>
<a href="http://www.youtube.com/watch?v=HzRbBA8BJ-Q">Deltacloud Community Call #10</a>

How to use Deltacloud driver "features"

<br>
<a href="http://youtu.be/XWSG2knVvZI">Deltacloud Community Call #9</a>

Demo of how to use CIMI $select and $expand parameters - Introduction/overview of a deltacloud driver

<br>
<a href="http://youtu.be/KvN0xEVc_N0">Deltacloud Community Call #8</a>

Deep dive into a Deltacloud API call, a look at the Deltacloud server gemspec - gems used as clients to cloud providers

<br>
<a href="http://www.youtube.com/watch?v=YbAsWrj6UEY">Deltacloud Community Call #7</a>

The Deltacloud website - how it works, how to submit changes etc  -  Deltacloud exceptions and error handling introduction, how to catch provider errors and raise specific HTTP response codes.

<br>
<a href="http://www.youtube.com/watch?v=oP__wuCqFxQ">Deltacloud Community Call #5</a>

How to file bug reports for Deltacloud - process, what to report, following up and CIMI resourceMetadata (implementation, why it is important?) - testing scenarios.

<br>
<a href="http://www.youtube.com/watch?v=TGYTrVRxcGE">Deltacloud Community Call #4</a>

Debugging deltacloud - how to chase a bug - common steps, debugging tools. Mailing list questions: i) ovirt and the User Level API, ii) Plans for CIMI back-end driver?

<br>
<a href="http://www.youtube.com/watch?v=YOMK8jrhGoo">Deltacloud Community Call #3</a>

Adding state to Deltacloud for the CIMI frontend - Datamapper

<br>
<a href="http://www.youtube.com/watch?v=CMf73mtsIfs">Deltacloud Community Call #2</a>

Networking API discussion, Writing Deltacloud API tests

<br>
<a href="http://www.youtube.com/watch?v=cUC96SdQjaE">Deltacloud Community Call #1</a>

Working with Deltacloud API clients, Contributing patches, review process, etc
</distro>
</li>
</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>
