<?xml version="1.0"?>
<!--
  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.
-->
<status>

  <developers>
    <person name="Joe Bloggs"      email="joe@joescompany.org"      id="JB" />
    <!-- Add more people here -->
  </developers>

  <changes>
    <!-- Add new releases here -->
    <release version="0.1" date="unreleased">
      <!-- Some action types have associated images. By default, images are
      defined for 'add', 'fix', 'remove', 'update' and 'hack'. If you add
      src/documentation/resources/images/<foo>.jpg images, these will
      automatically be used for entries of type <foo>. -->

      <action dev="JB" type="add" context="admin">
        Initial Import
      </action>
      <!-- Sample action:
      <action dev="JB" type="fix" due-to="Joe Contributor"
          due-to-email="joec@apache.org" fixes-bug="123">
          Fixed a bug in the Foo class.
        </action>
        -->
    </release>
  </changes>

  <todo>
    <actions priority="high">
      <action context="docs" dev="JB">
        Customize this template project with your project's details.  This
        TODO list is generated from 'status.xml'.
      </action>
      <action context="docs" dev="JB">
        Add lots of content.  XML content goes in
        <code>src/documentation/content/xdocs</code>, or wherever the
        <code>${project.xdocs-dir}</code> property (set in
        <code>forrest.properties</code>) points.
      </action>
      <action context="feedback" dev="JB">
        Mail <link
          href="mailto:forrest-dev@xml.apache.org">forrest-dev@xml.apache.org</link>
        with feedback.
      </action>
    </actions>
    <!-- Add todo items. @context is an arbitrary string. Eg:
    <actions priority="high">
      <action context="code" dev="SN">
      </action>
    </actions>
    <actions priority="medium">
      <action context="docs" dev="open">
      </action>
    </actions>
    -->
  </todo>

</status>
