<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    

    <meta name="author" content="The Apache Software Foundation">

    
      <meta name="keywords" content="python,libcloud,cloud,cloud computing,rackspace,amazon ec2,cloudfiles,openstack,cloudstack" />
    

    
      <title>Apache Libcloud | Apache Libcloud</title>
    

    <!-- fav icons -->
    <link rel="shortcut icon" href="/images/favicon.png" />
    <link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />
    <link rel="apple-touch-icon-precomposed" href="/images/apple-touch-icon.png" />

    <link href="/blog/atom.xml" type="application/atom+xml" rel="alternate" title="Apache Libcloud Blog Feed" />

    <!-- Facebook OpenGraph tags -->
    <meta content="Apache Libcloud" property="og:site_name">
    
      <meta content="Apache Libcloud" property="og:title">
    

    

    

    
      <meta content="website" property="og:type">
    

    
      <meta content="https://libcloud.apache.org/blog/tags/new-committer" property="og:url">
    
    

    

    <link href='/assets/global-0faf439f2f098e60d3f1e591316155fc.css' rel='stylesheet' type='text/css' />
  </head>

  <body data-spy="scroll" data-target=".sidebar-nav" data-offset="80">
    <nav class="navbar navbar-fixed-top navbar-inverse" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/"><img src="/images/libcloud_logo.png" class="navbar-logo" /> Apache Libcloud</a>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            
            
              
              <li ><a href="/" >Home</a></li>
            
              
              <li ><a href="/about.html" >About</a></li>
            
              
              <li ><a href="/getting-started.html" >Quick Start</a></li>
            
              
              <li ><a href="https://libcloud.readthedocs.org/en/stable/" target="_blank">Documentation</a></li>
            
              
              <li ><a href="/downloads.html" >Downloads</a></li>
            
              
              <li ><a href="/community.html" >Community</a></li>
            
              
              <li ><a href="/blog/" >Blog</a></li>
            
          </ul>

          <div class="material-switch pull-right">
              <input id="theme-switch" name="theme-switch" type="checkbox" onclick="modeSwitcher()"/>
              <label for="theme-switch" class="label-default"></label>
              <span id="theme-toggle" class="theme-switch">Dark mode</span>
          </div>

        </div><!-- /.navbar-collapse -->
      </div><!-- /.container -->
    </nav>

    <div class="container main-container">
      <div class="row section page-content">
  <div class="col-lg-8 col-lg-offset-2">
    <h1>Tag: new committer</h1>



  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2021/06/03/dimitris-moraitis-joins-our-team.html">Dimitris Moraitis (dmo) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Jun 03, 2021</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/d-mo">Dimitris Moraitis</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Dimitris
Moraitis to join us as a committer and we are pleased to announce that
they have accepted.</p>

<p>Dimitris is one of the founders and main contributors to the open source multi
cloud management project called <a href="https://github.com/mistio/mist-ce">Mist.io</a>.</p>

<p>Mist.io has been an early user and adopter of Libcloud. Over the years,
Dimitris and the rest of the Mist.io team have contributed many changes and
improvements to Libcloud.</p>

<p>For anyone who would like to know more about Dimitris here is his short bio:</p>

<blockquote>
  <p>Dimitris is an entrepreneur &amp; engineer committed to open technologies. He
holds a UoA CS BSc. He has been serving as the technical lead for organizations
around the world since 2001. He’s the co-founder &amp; CTO of Mist.io, the open
source multicloud management platform. He’s particularly interested in DevOps,
UX, AI/ML and the social impact of technology.</p>
</blockquote>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a>, <a href="/blog/tags/new-pmc-member.html" rel="tag">new pmc member</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2020/08/31/miguel-caballer-joins-our-team.html">Miguel Caballer (micafer) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Aug 31, 2020</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/micafer">Miguel Caballer</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Miguel
Caballer to join us as a committer and we are pleased to announce that he
has accepted.</p>

<p>Miguel has been part of the Libcloud community for many years now and during
his participation he made various contributions to the project, majority of
them focusing on our OpenStack drivers.</p>

<p>For anyone who would like to know more about Miguel here is his short bio:</p>

<blockquote>
  <p>Miguel Caballer is part of the Grid and High Performance Computing group of
UPV since 2001. He is the lead developer of the Infrastructure Manager (IM),
a tool that deploys complex and customized virtual infrastructures on IaaS
Cloud deployments. He has participated in different research projects about
the application of Grid and Cloud computing techniques to several areas of
engineering. Other fields of interest include green computing.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>When I start the development of the IM (in python) I found that Libcloud was
the best option to connect with different cloud back-ends using a single
library and using the same basic set of functions calls. It has improved a
lot in the last years adding extra functionality for each connector that makes
it a really good alternative to native libraries. My main contributions has been
mainly related with the OpenStack driver, one of the most user cloud providers
by the IM tool. I’m very proud to be an Apache Libcloud team member and I will
continue with my contributions.</p>
</blockquote>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2019/08/27/clemens-wolff-joins-our-team.html">Clemens Wolff (clewolff) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Aug 27, 2019</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/c-w">Clemens
Wolff</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Clemens
Wolff to join us as a committer and we are pleased to announce that he
has accepted.</p>

<p>Clemens has participated in the Libcloud community for a while now and during
his participation he made a <a href="https://github.com/apache/libcloud/pulls?q=is%3Apr+author%3Ac-w">number of high quality contributions to the
project</a>.</p>

<p>For anyone who would like to know more about Clemens here is his short bio:</p>

<blockquote>
  <p>Clemens Wolff is a tech lead in Microsoft’s Commercial Software
Engineering team, enabling customers from around the world to create scalable,
resilient and efficient software solutions applying relevant technologies and
platforms, including cloud computing, highly scalable data engines, machine
learning and analytics, and distributed messaging systems.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>I was introduced to Libcloud while working with a research group at Imperial
College London on porting OKpy, an open source computer science classroom
management system, from GCP to Azure. OKpy uses Libcloud which made
migrating the object storage needs of the application a breeze. Since this
initial exposure, I’ve been using Libcloud on many projects to ensure
cross-cloud compatibility and to simplify testing via the local provider
implementations. Most of my contributions have been about maintaining and
updating the Azure implementation of Libcloud’s storage driver and
building test automation to ensure that Libcloud can seamlessly be used
with Azure.</p>
</blockquote>

<p>We are happy to have him in our team and we are looking forward to his future
participation and contributions.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2018/06/27/rick-van-de-loo-joins-our-team.html">Rick van de Loo (vdloo) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Jun 27, 2018</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/vdloo">Rick van de
Loo</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Rick
van de Loo to join us as a committer and we are pleased to announce that he
has accepted.</p>

<p>In the last couple of years Rick has <a href="https://github.com/apache/libcloud/pulls?q=is%3Apr+author%3Avdloo+is%3Aclosed">contributed various high quality
changes</a> to the project and we are happy to have him on board.</p>

<p>For anyone who would like to know more about Rick here is his short bio:</p>

<blockquote>
  <p>Rick van de Loo is the lead developer on Hypernode, a highly automated and
cloud agnostic hosting platform specialised for Magento built on top of Apache
Libcloud. Since Rick started working on Hypernode he has seen it scale from
double digits to thousands of servers, along the road orchestrating various
high volume cross-provider migrations. His main focus is on platform
stability and feature development, of which a large part has been integrating
cloud APIs and working around their incompatibilities and unreliable nature.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>Since we started using Libcloud around four years ago the landscape has
changed a lot. But even though container-based and serverless architectures
have become more prominent, compute is still the cornerstone of cloud. Most
of my contributions have been about standardising functionality across
different compute providers and implementing new driver methods, mainly
related to the AWS, DigitalOcean and OpenStack APIs. As an Apache Libcloud
team member I will continue to contribute changes that help us scratch our
own itch and encourage other members of the Hypernode team to do the same.</p>
</blockquote>

<p>We are happy to have him in our team and we are looking forward to his future
participation and contributions.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2015/11/18/anthony-shaw-joins-our-team.html">Anthony Shaw (anthonyshaw) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Nov 18, 2015</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/tonybaloney">Anthony
Shaw</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has invited Anthony
Shaw to join us as a committer and a PMC member and we are pleased to announce
that he has accepted.</p>

<p>Anthony has joined the community fairly recently, but he has already made a lot
of <a href="https://github.com/apache/libcloud/pulls?q=is%3Apr+author%3Atonybaloney+is%3Aclosed">substantial contributions</a>. Those contributions range from new Dimension
Data drivers and various related improvements to a proposal for a new <a href="https://github.com/apache/libcloud/pull/629">backup
API</a> for Backup as a Service products and projects.</p>

<p>While we are talking about the new backup API - we would like to encourage
everyone who is either a service provider offering Backup as a Service product
or a person interested in using this API to join us and <a href="https://github.com/apache/libcloud/pull/629">participate in the
discussion</a>. The more feedback we get, the better and more widely applicable
we can make this new API.</p>

<p>For anyone who would like to know more about Anthony here is his short bio:</p>

<blockquote>
  <p>Anthony Shaw works for the global system integrator Dimension Data as Head of
Innovation. Anthony has been working in the hosting/service provider industry
for the last 10 years for MSPs within Europe, North America and Australia in
various Product Management and Product Development roles. Anthony is an
open-source advocate and has been promoting the Libcloud project internally to
Dimension Data for the last 9 months as well as maintaining its driver.</p>
</blockquote>

<p>And in his own words:</p>

<blockquote>
  <p>I think we will continue to see consolidation in IaaS providers over the next
12 months, so likelihood is the number of drivers will reduce, but the
importance of being cloud agnostic to people is becoming more apparent as some
are already being burnt by integrations into APIs that companies like Dell and
Ninefold have pulled the plug on. Libcloud is a key project for developers not
wanting to lock themselves too heavily to a vendor. I would also like to see
expansion of additional services like backup, load balancing and containers so
that users can still take advantages of these features through our driver.</p>
</blockquote>

<p>We are happy to have him in our team and we are looking forward to his future
participation and contributions.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a>, <a href="/blog/tags/new-pmc-member.html" rel="tag">new pmc member</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2015/03/17/allard-hoeve-joins-our-team.html">Allard Hoeve (allard) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Mar 17, 2015</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member <a href="https://github.com/allardhoeve">Allard
Hoeve</a>!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has asked Allard
Hoeve to join us as a committer and we are pleased to announce that he has
accepted.</p>

<p>Allard has joined the community just recently, but he has already contributed
some high quality changes and proposals.</p>

<p>We are happy to have him on our team and we are looking forward to his future
contributions.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2014/12/04/eric-johnson-joins-our-team.html">Eric Johnson (erjohnso) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Dec 04, 2014</span>

  <div class="post-content">
    <p>Please help us extend a warm welcome to our newest team member Eric Johnson!</p>

<p>The Project Management Committee (PMC) for Apache Libcloud has asked Eric
Johnson to join us as a committer and a PMC member and we are pleased to
announce that he has accepted.</p>

<p>Eric has been involved in the Libcloud community for a while now. He has made
many substantial contributions to the Google Compute Engine drivers. On top of
that, he also contributed to other projects which utilize Libcloud.</p>

<p>We are happy to have him on our team and we are looking forward to even better
and more complete Google Compute Engine drivers.</p>

  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a>, <a href="/blog/tags/new-pmc-member.html" rel="tag">new pmc member</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2014/02/17/sebastien-goasguen-joins-our-team.html">Sebastien Goasguen (sebgoa) joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Feb 17, 2014</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked Sebastien
Goasguen (sebgoa) to join us as a committer and a PMC member. We are pleased
to announce that he has accepted.</p>

<p>Sebastien is no stranger to the Libcloud project. He has been contributing and
actively participating in the Libcloud community for quite a while now.</p>

<p>On top of that, he is also a PMC member at the Apache CloudStack project and
our local “CloudStack guy”.</p>

<p>We are happy to have him and some direct CloudStack expertise in our team.</p>

  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a>, <a href="/blog/tags/new-pmc-member.html" rel="tag">new pmc member</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2014/02/07/new-committer-alex-gaynor-joins-our-team.html">New committer Alex Gaynor joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Feb 07, 2014</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked Alex
Gaynor to become a committer and we are pleased to announce that they have
accepted.</p>

<p>We are glad to have him as a committer. Everyone, please help us welcome him
to the team :)</p>

  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2013/11/25/new-committers-brian-curtin-joins-our-team.html">New committer Brian Curtin joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Nov 25, 2013</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked Brian
Curtin to become a committer and we are pleased to announce that they have
accepted.</p>

<p>We are glad to have him as a committer. Everyone, please help us welcome him
to the team :)</p>

<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201311.mbox/%3CCAJMHEmJZO0%3DPLpLXe9W9wPXTLwh2iQ3x2xXy%2BWhqjdFBv2%2BHbw%40mail.gmail.com%3E">mailing list</a>.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2013/08/04/new-committer-john-carr-joins-our-team.html">New committer John Carr joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Aug 04, 2013</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked John
Carr to become a committer and we are pleased to announce that they have
accepted.</p>

<p>We are glad to have him as a committer and a PMC member. Everyone, please
help me welcome him to the team :)</p>

<p>Source: <a href="https://mail-archives.apache.org/mod_mbox/libcloud-dev/201308.mbox/%3CCAJMHEm%2Bh7Fbqc8vWBw0PJbkzUKaDHWVziezOgECa2n7qESvLeA%40mail.gmail.com%3E">mailing list thread</a>.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a>, <a href="/blog/tags/pmc.html" rel="tag">pmc</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2012/12/28/new-committer-mahendra-maheshwara-joins-our-team.html">New committer Mahendra Maheshwara joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Dec 28, 2012</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud has asked
Mahendra Maheshwara to become a committer and we are pleased to announce
that they have accepted.</p>

<p>Mahendra Maheshwara has joined the Libcloud community fairly recently, but
he has already contributed multiple great patches -
https://issues.apache.org/jira/issues/?jql=project%20%3D%20LIBCLOUD%20AND%20reporter%20in%20(%22mahendra.m%22)
.</p>

<p>Giving him commit access will allow him to more directly contribute to the
project.</p>

<p>Everyone, please help me welcome him to the team :)</p>

<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201212.mbox/%3CCAJMHEmLyVg66Kb1Q9LRD1z9bSbtVFU=hTZGeWO2pc+s4qcEpow@mail.gmail.com%3E">mailing list thread</a>.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2012/11/16/new-committer-ilgiz-islamgulov-joins-the-team.html">New committer Ilgiz Islamgulov joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Nov 16, 2012</span>

  <div class="post-content">
    <p>The Project Management Committee (PMC) for Apache Libcloud
has asked Ilgiz Islamgulov to become a committer and we are pleased
to announce that they have accepted.</p>

<p>Ilgiz worked on the Libcloud REST GSoC project
(http://libcloud.apache.org/gsoc-2012.html) this summer and he has made a
great progress on it.</p>

<p>Giving him commit access will allow him to more directly contribute to the
project and work on integrating Libcloud REST into main line.</p>

<p>Everyone, please help me welcome him to the team :)</p>

<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201211.mbox/%3CCAJMHEmJmRDdQbfRSxOBTueSJ8u4-VgU8YaeP5LcJ2gwubfNF2g%40mail.gmail.com%3E">mailing list</a>.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  

  
    <div class="post">
  
    <h2 class="post-title"><a href="/blog/2011/11/22/new-committer-hutson-betts-join-our-team.html">New committer Hutson Betts joins our team</a></h2>
  
  <span class="post-date-author">By Tomaz Muraus on Nov 22, 2011</span>

  <div class="post-content">
    <p>Hi all,</p>

<p>I just wanted to let everyone know that the Libcloud PMC has decided to
invite a new committer - Hutson Betts (hbetts).</p>

<p>He has previously mostly contributed to the OpenNebula driver and the
networking API.</p>

<p>We believe that granting him the committer status will allow him to more
easily and directly contribute to the project.</p>

<p>Please help us welcome him!</p>

<p>Source: <a href="http://mail-archives.apache.org/mod_mbox/libcloud-dev/201111.mbox/%3CCAJMHEm+08-1MMCgHDZgULc+StDiwgR+_krVZvHOJF0odcU_OWg@mail.gmail.com%3E">mailing list</a>.</p>


  </div>

  <div class="row section post-meta">
    <div class="col-md-12 post-tags">
      <p>Tags: <a href="/blog/tags/news.html" rel="tag">news</a>, <a href="/blog/tags/new-committer.html" rel="tag">new committer</a></p>
    </div>
  </div>
</div>

  


  </div>
</div>


      <hr />

      <footer>
        <div class="row">
          <div class="col-lg-12 text-center">
            <div class="footer-links">
  <p><a href="http://www.apache.org/licenses/">License</a> | <a
  href="/security.html">Security</a> | <a
  href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
  <a href="http://www.apache.org/foundation/thanks.html">Thanks</a> |
  <a href="https://www.apache.org/events/">Events</a> |
  <a href="/credits.html">Credits</a> | <a href="/media.html">Media</a>
</div>

<div class="footer-text">
  <p><a class="acevent" data-format="wide"></a></p>
  <p class="">Copyright &copy; 2009-2023 <a href="https://www.apache.org/" target="_blank">The Apache Software Foundation</a></p>
  <p class="">Apache Libcloud, Libcloud, Apache, the Apache feather, and the Apache Libcloud project logo are trademarks of the Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
  <p class="">Site last updated on 2023-09-09 21:30:54 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-dac9eed9206cf02359a2dd1d7c03e401.js' type='text/javascript'></script>

    

    <script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
  /* We explicitly disable cookie tracking to avoid privacy issues */
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '7']);
    var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>

    <script src="https://www.apachecon.com/event-images/snippet.js"></script>

  </body>
</html>
