<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="http://www.eclipse.org/projects/project-plan.xsl"?>
<plan plan-format="1.0">
  <release projectid="technology.dash" version="1.0"/>
    <introduction><![CDATA[
    The Dash project has three separate sub-projects. Currently, none of the sub-projects are
    on track to do a release. Thus this plan document is not a plan for any of the projects,
    rather it is a file for testing <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=215301">bug 215301</a>.
    ]]>
  </introduction>
  <release_deliverables><![CDATA[
    The Dash project has one sub-project that delivers an update site (Eclipse Monkey)
    and two sub-projects that deliver server software running on eclipse.org servers (Commits Explorer and Ganymatic).
  ]]></release_deliverables>
  <release_milestones>
    <!-- <preamble><![CDATA[
      
    ]]></preamble> -->
    <milestone date="7/1/2008" milestone="M1"><![CDATA[ Project refactoring ]]></milestone>
    <milestone date="12/1/2008" milestone="M2"><![CDATA[ API Freeze ]]></milestone>
    <milestone date="6/28/2009" milestone="1.0"/>
    <!-- <postamble><![CDATA[
      Some more description of the release milestones.
    ]]></postamble> -->
  </release_milestones>
  <target_environments><![CDATA[
    Eclipse Monkey operates on top of the Eclipse Platform and thus runs on
    all the target environments that the Platform itself does.
    <p>
    Ganymatic runs on the build.eclipse.org server and requires Java 5.0 and Ant 1.7.
    <p>
    Commits Explorer runs on the dash.eclipse.org server and requires a current version
    of Apache, PHP, Perl, and MySQL.
  ]]>  <internationalization><![CDATA[
    Eclipse Monkey will be internationalized via Babel, but
    the team does not commit to testing any languages.
    ]]></internationalization>
  </target_environments>
  <compatibility_with_previous_releases><![CDATA[
    This version will be compatible with all previous versions as it will include no additional features.
  ]]></compatibility_with_previous_releases>
  <themes_and_priorities>
    <preamble><![CDATA[
      The Dash project development is driven by the Requirements Council's set of Themes and Priorities.
    ]]></preamble>
    <theme name="Appealing to the Broader Community">
      <committed></committed>
      <proposed><![CDATA[
      We propose to do some work on various important features.
    ]]></proposed>
      <deferred bugzilla="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;classification=Technology&amp;product=Dash&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;emailtype1=substring&amp;email1=&amp;emailtype2=substring&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0="></deferred>
    </theme>
    <theme name="Design for Extensibility">
    </theme>
  </themes_and_priorities>
  <appendix name="Project Refactoring"><![CDATA[
    <p>The Dash project should be refactored into two separate projects: one for the
    community-driven Eclipse Monkey plug-in and one for the (mostly) EMO-driven server
    software.</p>
  ]]></appendix>  
</plan>
