> 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