> Tasks should offer functionality on a much higher level than functions ...
Here's my dream about NAnt: 1. Tasks should actually DO something. That "something" is: compile, create, delete, XSL transform, update from cvs, send email, run unit tests, install, uninstall, start/stop services, start/kill processes, compress/decompress. There'are actually some tasks that do nothing like that, but they direct the build process: <call> <description> <fail> <if> <ifnot> <include> <loadtasks> <nant> <property> <script> These should be definitely kept. 2. I would consider removing any task that is neither used to direct the build process nor noes "something" - as described above. My candidates for removal are: <sysinfo> <tstamp> <available> 3. I'm also thinking about removing: <readregistry> (maybe not, because it can be used to read many values at once) <xmlpeek> (maybe not, because it's a nice pair to <xmlpoke>) 4. I also think that <if> should be restructured to include only "test" attribute. <if propertytrue="aaaa" /> would become <if test="${aaaa}" /> <if propertyexists="aaaa" /> would become <if test=${nant::property-exists('aaaa')}" /> <if targetexists="aaaa" /> would become <if test=${nant::target-exists('aaaa')}" /> <ifnot> should be eliminated, because you can always write "not" in expressions. So: <ifnot propertytrue="aaaa"/> would become <if test="${not aaaa}" /> <ifnot propertyexists="aaaa"/> would become <if test="${not nant::property-exists('aaaa')}" /> <ifnot targetexists="aaaa"/> would become <if test="${not nant::target-exists('aaaa')}" /> 5. There's a problem with "uptodatefile", but I think this should go into another task or a function. Like: <check-up-to-date property=""> <target-files> <includes name="..." /> </target-files> <source-files> <includes name="..." /> </source-files> </check-up-to-date> A function that would be useful for single-file to single-file comparison: <if test="${file::is-newer-than('file1','file2')}" /> 6. With these changes we'd have an <if> task that would be clean and we'd get rid of <sysinfo>, <tstamp>, <available> 7. All above syntax changes could be done automatically with the help of a simple XSLT file that would rewrite buildfiles. Jarek ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers