<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "strict.dtd">
<HTML> 
  <HEAD> 
     <TITLE>About Antidote</TITLE> 
  </HEAD> 

  <BODY> 

    <H1>About Antidote</H1>

    <P>Version 0.1 (2001/02/13)</P>

    <P>Authors: 
    <A HREF="mailto:simeon@fitch.net">Simeon H.K. Fitch</A>
    </P>

    <H2>Overview</H2> 

    <P>Antidote is the <A
    HREF="http://jakarta.apache.org/ant/index.html">Ant</A> subproject
    for developing a graphical user interface to facilitate the
    efficient use of Ant. In general, its purpose is to allow the
    quick generation, modification, and use of Ant build files,
    helping the user define a build process and track down build
    problems. It is not meant to be an IDE, but an enabler for the
    powerful features available in Ant, particularlyl for novice
    users, or users who want a rapid way of controlling their build
    process.</P>


    <H2>Status</H2>

    <P>Antidote is still in the early stages of development, but does
    have a set of usable features, including:
    <UL>
      <LI>Reading Ant build files.</LI>
      <LI>Selecting targets and executing them.</LI>
      <LI>Context highlighted build status console.</LI>
      <LI>Modification of (some) build file components.</LI>
      <LI>Saving modified build file.</LI>
    </UL>
    </P>

    <P>Current development tasks include:
    <UL>
      <LI>A more complete set of target and task editing
      capabilities.</LI>
      <LI>A wizard for creating basic build files, including importing
      existing code bases.</LI>
      <LI>Better build progress monitoring.</LI>
    </UL>
    </P>

    <P>The Antidote source distribution comes with requirements and
    design documentation that better cover the details of application
    architecture, how to develop against it, and what the long term
    goals are. Furthermore, there is a <code>TODO</code> file listing
    the detailed, near-term tasks that need accomplishing.</P>

    <H2>Getting Involved</H2>

    <P>The source code for Antidote is included with the <A
    HREF="http://jakarta.apache.org/site/cvsindex.html">CVS</A>
    version of <A
    HREF="http://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant">Ant</A>,
    starting in the directory <A
    HREF="http://jakarta.apache.org/cvsweb/index.cgi/jakarta-ant/src/antidote">
    jakarta-ant/src/antidote</A>. All the existing documentation can
    be found there where new contributors should read:
    <UL>
      <LI><A
      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/design-overview.html">Design
      Overview</A></LI> 
      <LI><A HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/gui-requirements.html">Feature List</A></LI>
      <LI><A
      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/gui-ideas.txt">Idea Refinement</A></LI>
      <LI><A
      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/new-module-howto.html">New Module HOWTO</A></LI>
      <LI><A
      HREF="http://jakarta.apache.org/cvsweb/index.cgi/~checkout~/jakarta-ant/src/antidote/docs/uml/index.html">Static
      Class Diagrams</A></LI>
    </UL>


    <P>Online discussions about Antidote occur on the <A
    HREF="http://jakarta.apache.org/site/mail.html">jakarta-ant
    mailing list</A>. The application infrastructure is fairly
    complete, but there are almost unlimited oppotunities for feature
    contributions.

    <P>Asipring contributors new to the Jakarta Project should
    (carefully) read the following for details on the contribution
    process:
    <UL>
      <LI><A
      HREF="http://jakarta.apache.org/site/getinvolved.html">Get
      Involved</A></LI>
      <LI><A
      HREF="http://jakarta.apache.org/site/guidelines.html">Project
      Guidelines</A></LI>
      <LI><A HREF="http://jakarta.apache.org/site/source.html">Source
      Repositories (how to contribute patches)</A></LI>
    </UL>
    

    <HR>
    <P ALIGN="center">Copyright &copy; 2000 Apache Software Foundation. All
    rights Reserved.</P>

  </BODY>
</HTML>
