<?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://tez.apache.org">
    <created>2014-11-21</created>
    <license rdf:resource="http://spdx.org/licenses/Apache-2.0" />
    <name>Apache Tez</name>
    <homepage rdf:resource="http://tez.apache.org" />
    <asfext:pmc rdf:resource="http://tez.apache.org/pmc/tez.rdf" />
    <shortdesc>Apache Tez is an effort to develop a generic application framework which can be used to process arbitrarily complex directed-acyclic graphs (DAGs) of data-processing tasks and also a re-usable set of data-processing primitives which can be used by other projects.</shortdesc>
    <description></description>
    <bug-database rdf:resource="https://issues.apache.org/jira/browse/TEZ" />
    <mailing-list rdf:resource="http://tez.apache.org/mail-lists.html" />
    <download-page rdf:resource="http://tez.apache.org/releases/" />
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/big-data" />
    <release>
      <Version>
        <name>Version 0.10.1</name>
        <created>2021-07-01</created>
        <revision>0.10.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.10.0</name>
        <created>2020-10-15</created>
        <revision>0.10.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.9.2</name>
        <created>2019-03-29</created>
        <revision>0.9.2</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.9.1</name>
        <created>2018-01-04</created>
        <revision>0.9.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.9.0</name>
        <created>2017-07-27</created>
        <revision>0.9.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.8.5</name>
        <created>2017-03-13</created>
        <revision>0.8.5</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.8.4</name>
        <created>2016-07-08</created>
        <revision>0.8.4</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.7.1</name>
        <created>2016-05-10</created>
        <revision>0.7.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.8.3</name>
        <created>2016-04-15</created>
        <revision>0.8.3</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.8.2</name>
        <created>2016-01-19</created>
        <revision>0.8.2</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.8.1-alpha</name>
        <created>2015-10-12</created>
        <revision>0.8.1-alpha</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.8.0-alpha</name>
        <created>2015-09-01</created>
        <revision>0.8.0-alpha</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.6.2</name>
        <created>2015-08-07</created>
        <revision>0.6.2</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.7.0</name>
        <created>2015-05-18</created>
        <revision>0.7.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.6.1</name>
        <created>2015-05-18</created>
        <revision>0.6.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.6.0</name>
        <created>2015-01-23</created>
        <revision>0.6.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.5.3</name>
        <created>2014-12-10</created>
        <revision>0.5.3</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.5.2</name>
        <created>2014-11-07</created>
        <revision>0.5.2</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.5.1</name>
        <created>2014-10-08</created>
        <revision>0.5.1</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.5.0</name>
        <created>2014-09-04</created>
        <revision>0.5.0</revision>
      </Version>
    </release>
    <release>
      <Version>
        <name>Version 0.4.1-incubating</name>
        <created>2014-07-15</created>
        <revision>0.4.1-incubating</revision>
      </Version>
    </release>
    <repository>
      <GitRepository>
        <location rdf:resource="https://gitbox.apache.org/repos/asf/tez.git"/>
        <browse rdf:resource="https://gitbox.apache.org/repos/asf/tez.git"/>
      </GitRepository>
    </repository>
    <maintainer>
      <foaf:Person>
        <foaf:name>Apache Tez PMC</foaf:name>
          <foaf:mbox rdf:resource="mailto:dev@tez.apache.org"/>
      </foaf:Person>
    </maintainer>
  </Project>
</rdf:RDF>
