Want History

On the Spring of 2001 several DUnit developers, including me, were complaining about the unreliability of the Make build tool on all platforms. We've just had some problems building DUnit with Make.

We discussed long about how a build tool should be like, and several of us tough that it should be like Ant, the tool used in the Apache-Jakarta project. The problem with Ant itself was that we thought it was too Java-centered to be useful in a Delphi project.

A group of us decided to create our own tool, and thus end our sufferings with Make. After a short discussion, we decided that its name would be Dante, and we went on to work.

Start

Chris Morris (chrismo) set up a Source Forge project for Dante and got authorization from his employer to contribute some useful source code. I built a basic framework for buildng projects and implemented script persistence using Delphi's DFM format (the one used for forms). We had our first working prototype by day two.

Week One

Within a week I had incorporated my SAX/XML  classes from the JAL library and Dante was able to read scripts in XML, much like the ones used by Ant. That week Chris wrote basic <exec> and <dcc> (Delphi compile) tasks for Dante. I took it from there, added exe output redirection to <exec>, filled the voids in <dcc>, and Dante became able to build itself.

Week Two

By the end of week two I had developed a file path library that could handle Ant-like wildcards in a (hopefully) platform independent way. The library let me implement <copy>, <move>, <delete>, and <touch> tasks that worked very much like Ant's. I added Nomssi Nzali's port of ZLib 1.1.2 to the mix, and implemented the Zip task with it.

Week Three

By week three Chris had incorporated a thorough set of unit and external tests using the DUnit testing framework, and the few bugs present were jumping out the door. Chris's design enabled us to create external tests without writing a single line of code.

That week Mike Taylor (mtaylor) started providing feedback on refactorings that would make the source code more efficient and clearer.

By the end of the week Dante was able to build DUnit using a fairly complex build script.

Week Four

On week four, I broke out of the Dante developers group, and continued developing the tool by myself under the name "Want" (the reasons for the breakup remain a mystery). I refactored the core classes and stripped them of dependencies to the particular XML parser, and wrote a DUnit task that is able to run DUnit test cases compiled as DLLs.

Week Five

By week five Want was the official build tool for DUnit. I was using Want for all my new projects, and gradually porting old (mostly Make) projects to Want.

Today

Want is under constant use and constant development. The project has moved to Source Forge and project administration is now in the hands of Ignacio (Nacho) Ortega <nacho at siapi dot es>. Nacho, Mike Johnson <csmajohnson at hotmail dot com> and other developers are making improvements to the tools and new releases are on the way.


$Id: history.html,v 1.4 2003/03/10 01:01:57 juanco Exp $