<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>
<rdf:RDF xml:lang="en"
         xmlns="http://usefulinc.com/ns/doap#" 
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
         xmlns:asfext="http://projects.apache.org/ns/asfext#"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
   
         http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
  <Project rdf:about="http://whirr.apache.org">
    <created>2011-11-21</created>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
    <name>Apache Whirr</name>
    <homepage rdf:resource="http://whirr.apache.org" />
    <asfext:pmc rdf:resource="http://whirr.apache.org" />
    <shortdesc>Apache Whirr is a set of libraries for running cloud services</shortdesc>
    <description>Apache Whirr is a set of libraries for running cloud services

Whirr provides:
1. A cloud-neutral way to run services. You don't have to worry about the idiosyncrasies of each provider.
2. A common service API. The details of provisioning are particular to the service.
3. Smart defaults for services. You can get a properly configured system running quickly, while still being able to override settings as needed.

You can also use Whirr as a command line tool for deploying clusters.</description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/WHIRR" />
    <mailing-list rdf:resource="http://whirr.apache.org/mail-lists.html" />
    <download-page rdf:resource="http://www.apache.org/dyn/closer.cgi/whirr/" />
    <programming-language>Java</programming-language>
    <programming-language>Bash</programming-language>
    <category rdf:resource="http://projects.apache.org/category/network-server" />
    <release>
      <Version>
        <name>Whirr 0.7.0</name>
        <created>2011-12-20</created>
        <revision>0.7.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Whirr 0.6.0-incubating</name>
        <created>2011-08-27</created>
        <revision>0.6.0-incubating</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Whirr 0.5.0-incubating</name>
        <created>2011-06-03</created>
        <revision>0.5.0-incubating</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Whirr 0.4.0-incubating</name>
        <created>2011-03-30</created>
        <revision>0.4.0-incubating</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Whirr 0.3.0-incubating</name>
        <created>2011-01-30</created>
        <revision>0.3.0-incubating</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Whirr 0.2.0-incubating</name>
        <created>2010-11-15</created>
        <revision>0.2.0-incubating</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Whirr 0.1.0-incubating</name>
        <created>2010-09-20</created>
        <revision>0.1.0-incubating</revision>
      </Version>
    </release>
    <repository>
      <SVNRepository>
        <location rdf:resource="http://svn.apache.org/repos/asf/whirr/"/>
        <browse rdf:resource="http://svn.apache.org/viewvc/whirr/"/>
      </SVNRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Apache Whirr Development Team</foaf:name>
        <foaf:mbox rdf:resource="mailto:dev@whirr.apache.org"/>
      </foaf:Person>
    </maintainer> 
  </Project>
</rdf:RDF>
