You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by do...@apache.org on 2002/03/02 02:52:56 UTC
cvs commit: jakarta-ant/proposal/myrmidon/src/xdocs todo.xml
donaldp 02/03/01 17:52:56
Modified: proposal/myrmidon/src/xdocs todo.xml
Log:
Style and get rid of top "getinvolved" section
Revision Changes Path
1.3 +213 -231 jakarta-ant/proposal/myrmidon/src/xdocs/todo.xml
Index: todo.xml
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/xdocs/todo.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- todo.xml 27 Feb 2002 13:19:40 -0000 1.2
+++ todo.xml 2 Mar 2002 01:52:56 -0000 1.3
@@ -1,237 +1,219 @@
<document>
-<properties>
-<author email="adammurdoch@apache.org">Adam Murdoch</author>
-<title>Get Involved</title>
-</properties>
-
-<body>
-<section name="Get Involved">
-
-<p>There are plenty of things you can do to help out with Myrmidon. The Todo
-list below describes items which still need to be done. Of course, since
-this is an open-source project, there's plenty of scope for experimentation,
-and you can pretty much make up your own items to work on.</p>
-
-<p>Some things that are worth reading if you do want to get involved:</p>
-<ul>
-<li>The <a href="http://jakarta.apache.org/ant/ant2/">Ant 2</a> goals and requirements.</li>
-<li>The <a href="http://jakarta.apache.org/ant/ant2/actionlist.html">Ant 1.9 Action List</a>.</li>
-<li>The Jakarta Project's <a href="http://jakarta.apache.org/site/getinvolved.html">Get Involved</a> page.</li>
-</ul>
-
-<p>There is no Ant 2 or Myrmidon mailing list yet, so direct any questions
-or comments you have to the ant-dev mailing list.</p>
-
-</section>
-
-<section name="Todo List">
-
-<p>The broad goal is to grow Myrmidon from a prototype task engine into a fully
-fledged build system, that can serve as the basis for Ant 2. The following
-sections describe some of the many things which still need to be done to
-achieve that goal. This list is currently under construction.</p>
-
-<subsection name="Self Hosting">
-
-<p>Myrmidon must be able to build itself. Currently, it is built using
-Ant 1.x. Ultimately, Myrmidon should be able to build itself from exactly the
-same build file. To start with, however, there is no need for Myrmidon to be
-able to do this. Myrmidon should also be able to be bootstrapped (that is, be
-able to be built from scratch, without using Ant 1.x at all).</p>
-
-</subsection>
-
-<subsection name="Ant 1.x Compatibility">
-
-<p>There are 2 parts to this broad topic: Allow Ant 1.x build scripts to be
-executed by Myrmidon, and allow Ant 1.x tasks to be executed unmodified
-by Myrmidon.</p>
-
-</subsection>
-
-<subsection name="Virtual File System">
-
-<p>The VFS needs plenty of work:</p>
-
-<ul>
- <li>Move and copy files/folders.</li>
- <li>Search through a file hierarchy, using Ant-style wildcards.</li>
- <li>Search through a file hierarchy, using a Selector interface.</li>
- <li>The in-memory caching mechanism is pretty rudimentary at this stage.
- It needs work to make it size capped. In addition, some mechanism needs
- to be provided to release and refresh cached info.
- </li>
- <li>Capabilities discovery.</li>
- <li>Attributes and attribute schema.</li>
- <li>File system layering. That is, the ability for a file system to
- sit on top of another file system, or a file from another file system
- (e.g. Zip/Jar/Tar file systems, gzip/encoding file systems, virtual file
- systems).
- </li>
-</ul>
-
-</subsection>
-
-<subsection name="File Data-Types and Tasks">
-
-<p>The file data-types, such as <code><fileset></code> and
-<code><path></code>, are some of the most widely used parts of Ant 1.x.
-Unfortunately, they aren't particularly extensible.</p>
-
-<ul>
- <li>Redesign the file data-types, replacing them with an interface-based
- API, plus a set of implementations. The API should use the VFS file
- <code>FileObject</code>, rather than <code>java.io.File</code>.
- This process has started, in the <code>antlib.vfile</code> package.
- </li>
- <li>File Selectors:
- <ul>
- <li>Change <code>AbstractNameFileSelector</code> to use Ant 1 style patterns
- matches, rather than Globs patterns.</li>
- <li>Add 'defaultexcludes' to <code>DefaultFileSet</code>. Also add a
- file selector implementation that matches everything except the default
- excludes.</li>
- <li>Add a condition -> file selector adaptor, so that arbitrary conditions
- can be used to select files.</li>
- <li>Add a name selector that loads patterns from a file.</li>
- <li>Add more selector implementations: size and last-modified comparisons,
- checksum comparison, byte-wise content comparison.</li>
- </ul></li>
- <li>File Name Mappers:
- <ul>
- <li>Add a file name mapper interface, and port the current Mapper
- implementations to it.</li>
- </ul></li>
- <li>File Sets:
- <ul>
- <li>Add a file set implementation that uses a mapper to transform a nested
- file set.</li>
- <li>Add a file set implementation that provides the union of several
- nested file sets (that is, a file set that merges several file sets
- together).</li>
- <li>Add a file set implementation that filters files that are up-to-date
- WRT some other file. Alternatively, this might be better done using a
- file selector.</li>
- </ul></li>
- <li>Paths:
- <ul>
- <li>Add path implementations that evaluate to the system classpath,
- and the ant runtime classpath. Or, more generally, combine this with
- <code>ClassLoaderManager</code> to evaluate to the classpath of any
- 'library' (e.g. system classpath, ant runtime, tools.jar,
- an antlib, an installed extension, or the system classes of another JVM
- for cross-compiling).</li>
- </ul></li>
- <li>File Filters:
- <ul>
- <li>Add a file filter interface, and use it in the copy task.</li>
- <li>Add a filter implementation that applies the token replacement that
- the old copy task provides.</li>
- <li>Add a filter that does cr/lf translation.</li>
- <li>Add a gzip/gunzip filter.</li>
- <li>Add a filter that applies character set encode/decode.</li>
- </ul></li>
- <li>Copy task:
- <ul>
- <li>Implement 'preservelastmodified', 'overwrite', and 'includeemptydirs'.</li>
- <li>Support a file name mapper.</li>
- <li>Support file filters.</li>
- </ul></li>
- <li>Implement the <code><move></code>, <code><delete></code>,
- <code><touch></code> and <code><mkdir></code> tasks on top
- of the VFS and the new file data-types. Might be some scope for generalising
- 'touch' and 'mkdir' into a single task.</li>
-</ul>
-
-</subsection>
-
-<subsection name="Command-line and Configuration Files">
-
-<p>One of the goals of Ant 2 is to allow the user to easily customise and
-extend Ant. The command-line and local configuration files, are two places
-where this would be done. Currently, Myrmidon some customisation from the
-command-line, but does not support configuration files.</p>
-
-<ul>
-
-<li>Load configuration from system (from $ANT_HOME) and user (from $HOME)
-configuration files.</li>
-
-<li>Allow the following via config files:
- <ul>
- <li>Add (or override) the <code>lib</code> and <code>ext</code> directories.</li>
- <li>Enable more than one listener, and configure the listeners from
- the conents of the config file.</li>
- <li>Import libraries, and set properties.</li>
- <li>Execute tasks.</li>
- <li>Install and configure runtime services.</li>
- </ul>
-</li>
-
-</ul>
-
-</subsection>
-
-<subsection name="Documentation">
-
-<p>Everyone loves writing documentation, and so a goal for Ant 2 is to
-generate a lot of reference documentation for tasks and other types directly
-from the source. Unfortunately, there's still plenty of tutorial material
-to write. In particular we need these:</p>
-
-<ul>
-<li>User documentation - describing things like the build file format,
-how properties work, how to use references, how sub-builds work, how to customise
-Myrmidon, and so on.</li>
-
-<li>Task writer documentation - describing things like an overview the task API,
-how configuration works, task lifecycle, how to assemble an antlib, a catalog
-of the runtime services, and so on.</li>
-
-<li>Myrmidon developer documentation - a broad outline of the architecture,
-how to build, how to test, and so on. Also, this todo list needs plenty
-of filling out.</li>
-
-</ul>
-
-</subsection>
-
-<subsection name="Miscellaneous">
-
-<p>A completely unordered list of items, big and small:</p>
-
-<ul>
-<li>Search through the code for 'TODO' items and fix them.</li>
-<li>Add a custom task to the build to generate antlib descriptors from source.
-It would wrap XDoclet, and replace <code>antlib.xml</code>.</li>
-<li>Tidy-up CLIMain so that it calls System.exit() with a non-zero exit code,
-if the build fails.</li>
-<li>Tidy-up the 'build failed' message, so that the stack trace is only
-printed out if the log level is verbose/debug.</li>
-<li>Allow service factories to be configured from the contents of the
-<code>ant-services.xml</code> descriptor.</li>
-<li>Route external process stdout and stderr through the logger.</li>
-<li>Add verbosity level to ProjectListener LogEvent</li>
-<li>Fire ProjectListener events taskFinished(), targetFinished() and
-projectFinished() events on build failure, adding indicator methods to
-ProjectEvent.</li>
-<li>Fire ProjectListener events projectStarted() and projectFinished()
-events on start and finish of referenced projects, adding indicator methods
-to ProjectEvent.</li>
-<li>Convert PropertyUtil to a non-static PropertyResolver service.</li>
-<li>Validate project and target names in DefaultProjectBuilder - reject dodgy
-names like "," or "", or " ". Probably want to exclude names that start or
-end with white-space (though internal whitespace is probably fine).</li>
-<li>Detect duplicate type names.</li>
-<li>Add fully qualified type names, based on antlib name and type shorthand name.
-Allow these to be used in build files in addition to the shorthand names.</li>
-<li>Unit tests.</li>
-</ul>
+ <properties>
+ <author email="adammurdoch@apache.org">Adam Murdoch</author>
+ <title>Get Involved</title>
+ </properties>
+
+ <body>
+
+ <section name="Todo List">
+
+ <p>The broad goal is to grow Myrmidon from a prototype task engine into a fully
+ fledged build system, that can serve as the basis for Ant 2. The following
+ sections describe some of the many things which still need to be done to
+ achieve that goal. This list is currently under construction.</p>
+
+ <subsection name="Self Hosting">
+
+ <p>Myrmidon must be able to build itself. Currently, it is built using
+ Ant 1.x. Ultimately, Myrmidon should be able to build itself from exactly the
+ same build file. To start with, however, there is no need for Myrmidon to be
+ able to do this. Myrmidon should also be able to be bootstrapped (that is, be
+ able to be built from scratch, without using Ant 1.x at all).</p>
+
+ </subsection>
+
+ <subsection name="Ant 1.x Compatibility">
+
+ <p>There are 2 parts to this broad topic: Allow Ant 1.x build scripts to be
+ executed by Myrmidon, and allow Ant 1.x tasks to be executed unmodified
+ by Myrmidon.</p>
+
+ </subsection>
+
+ <subsection name="Virtual File System">
+
+ <p>The VFS needs plenty of work:</p>
+
+ <ul>
+ <li>Move and copy files/folders.</li>
+ <li>Search through a file hierarchy, using Ant-style wildcards.</li>
+ <li>Search through a file hierarchy, using a Selector interface.</li>
+ <li>The in-memory caching mechanism is pretty rudimentary at this stage.
+ It needs work to make it size capped. In addition, some mechanism needs
+ to be provided to release and refresh cached info.
+ </li>
+ <li>Capabilities discovery.</li>
+ <li>Attributes and attribute schema.</li>
+ <li>File system layering. That is, the ability for a file system to
+ sit on top of another file system, or a file from another file system
+ (e.g. Zip/Jar/Tar file systems, gzip/encoding file systems, virtual file
+ systems).
+ </li>
+ </ul>
+
+ </subsection>
+
+ <subsection name="File Data-Types and Tasks">
+
+ <p>The file data-types, such as <code><fileset></code> and
+ <code><path></code>, are some of the most widely used parts of Ant 1.x.
+ Unfortunately, they aren't particularly extensible.</p>
+
+ <ul>
+ <li>Redesign the file data-types, replacing them with an interface-based
+ API, plus a set of implementations. The API should use the VFS file
+ <code>FileObject</code>, rather than <code>java.io.File</code>.
+ This process has started, in the <code>antlib.vfile</code> package.
+ </li>
+ <li>File Selectors:
+ <ul>
+ <li>Change <code>AbstractNameFileSelector</code> to use Ant 1 style patterns
+ matches, rather than Globs patterns.</li>
+ <li>Add 'defaultexcludes' to <code>DefaultFileSet</code>. Also add a
+ file selector implementation that matches everything except the default
+ excludes.</li>
+ <li>Add a condition -> file selector adaptor, so that arbitrary conditions
+ can be used to select files.</li>
+ <li>Add a name selector that loads patterns from a file.</li>
+ <li>Add more selector implementations: size and last-modified comparisons,
+ checksum comparison, byte-wise content comparison.</li>
+ </ul></li>
+ <li>File Name Mappers:
+ <ul>
+ <li>Add a file name mapper interface, and port the current Mapper
+ implementations to it.</li>
+ </ul></li>
+ <li>File Sets:
+ <ul>
+ <li>Add a file set implementation that uses a mapper to transform a nested
+ file set.</li>
+ <li>Add a file set implementation that provides the union of several
+ nested file sets (that is, a file set that merges several file sets
+ together).</li>
+ <li>Add a file set implementation that filters files that are up-to-date
+ WRT some other file. Alternatively, this might be better done using a
+ file selector.</li>
+ </ul></li>
+ <li>Paths:
+ <ul>
+ <li>Add path implementations that evaluate to the system classpath,
+ and the ant runtime classpath. Or, more generally, combine this with
+ <code>ClassLoaderManager</code> to evaluate to the classpath of any
+ 'library' (e.g. system classpath, ant runtime, tools.jar,
+ an antlib, an installed extension, or the system classes of another JVM
+ for cross-compiling).</li>
+ </ul></li>
+ <li>File Filters:
+ <ul>
+ <li>Add a file filter interface, and use it in the copy task.</li>
+ <li>Add a filter implementation that applies the token replacement that
+ the old copy task provides.</li>
+ <li>Add a filter that does cr/lf translation.</li>
+ <li>Add a gzip/gunzip filter.</li>
+ <li>Add a filter that applies character set encode/decode.</li>
+ </ul></li>
+ <li>Copy task:
+ <ul>
+ <li>Implement 'preservelastmodified', 'overwrite', and 'includeemptydirs'.</li>
+ <li>Support a file name mapper.</li>
+ <li>Support file filters.</li>
+ </ul></li>
+ <li>Implement the <code><move></code>, <code><delete></code>,
+ <code><touch></code> and <code><mkdir></code> tasks on top
+ of the VFS and the new file data-types. Might be some scope for generalising
+ 'touch' and 'mkdir' into a single task.</li>
+ </ul>
+
+ </subsection>
+
+ <subsection name="Command-line and Configuration Files">
+
+ <p>One of the goals of Ant 2 is to allow the user to easily customise and
+ extend Ant. The command-line and local configuration files, are two places
+ where this would be done. Currently, Myrmidon some customisation from the
+ command-line, but does not support configuration files.</p>
+
+ <ul>
+
+ <li>Load configuration from system (from $ANT_HOME) and user (from $HOME)
+ configuration files.</li>
+
+ <li>Allow the following via config files:
+ <ul>
+ <li>Add (or override) the <code>lib</code> and <code>ext</code> directories.</li>
+ <li>Enable more than one listener, and configure the listeners from
+ the conents of the config file.</li>
+ <li>Import libraries, and set properties.</li>
+ <li>Execute tasks.</li>
+ <li>Install and configure runtime services.</li>
+ </ul>
+ </li>
+
+ </ul>
+
+ </subsection>
+
+ <subsection name="Documentation">
+
+ <p>Everyone loves writing documentation, and so a goal for Ant 2 is to
+ generate a lot of reference documentation for tasks and other types directly
+ from the source. Unfortunately, there's still plenty of tutorial material
+ to write. In particular we need these:</p>
+
+ <ul>
+ <li>User documentation - describing things like the build file format,
+ how properties work, how to use references, how sub-builds work, how to customise
+ Myrmidon, and so on.</li>
+
+ <li>Task writer documentation - describing things like an overview the task API,
+ how configuration works, task lifecycle, how to assemble an antlib, a catalog
+ of the runtime services, and so on.</li>
+
+ <li>Myrmidon developer documentation - a broad outline of the architecture,
+ how to build, how to test, and so on. Also, this todo list needs plenty
+ of filling out.</li>
+
+ </ul>
+
+ </subsection>
+
+ <subsection name="Miscellaneous">
+
+ <p>A completely unordered list of items, big and small:</p>
+
+ <ul>
+ <li>Search through the code for 'TODO' items and fix them.</li>
+ <li>Add a custom task to the build to generate antlib descriptors from source.
+ It would wrap XDoclet, and replace <code>antlib.xml</code>.</li>
+ <li>Tidy-up CLIMain so that it calls System.exit() with a non-zero exit code,
+ if the build fails.</li>
+ <li>Tidy-up the 'build failed' message, so that the stack trace is only
+ printed out if the log level is verbose/debug.</li>
+ <li>Allow service factories to be configured from the contents of the
+ <code>ant-services.xml</code> descriptor.</li>
+ <li>Route external process stdout and stderr through the logger.</li>
+ <li>Add verbosity level to ProjectListener LogEvent</li>
+ <li>Fire ProjectListener events taskFinished(), targetFinished() and
+ projectFinished() events on build failure, adding indicator methods to
+ ProjectEvent.</li>
+ <li>Fire ProjectListener events projectStarted() and projectFinished()
+ events on start and finish of referenced projects, adding indicator methods
+ to ProjectEvent.</li>
+ <li>Convert PropertyUtil to a non-static PropertyResolver service.</li>
+ <li>Validate project and target names in DefaultProjectBuilder - reject dodgy
+ names like "," or "", or " ". Probably want to exclude names that start or
+ end with white-space (though internal whitespace is probably fine).</li>
+ <li>Detect duplicate type names.</li>
+ <li>Add fully qualified type names, based on antlib name and type shorthand name.
+ Allow these to be used in build files in addition to the shorthand names.</li>
+ <li>Unit tests.</li>
+ </ul>
-</subsection>
+ </subsection>
-</section>
+ </section>
-</body>
+ </body>
</document>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>