Bruce Atherton wrote:
I think that would be very confusing at this point.
If most people in the ant community, especially committers, think that this idea breaks the philosophy of ant, then it should not be developed. Maybe this kind of needs will be better addressed using the new groovy front-end. What I have in mind is the use of ant to drive deployments. I think that although we state on the home page of ant that ant is a build tool, because all batch processes, such as cooking or chemistry or assembling a robot are also build processes in essence, ant can be used to drive any process which is a sequence of tasks. If the process is highly configurable, there can be several blocks of tasks which are optionally executed.
For better or worse, Ant was designed from the beginning to build its dependencies through backwards chaining. It is often (usually) surprising behaviour to the first time user, but once learned quickly becomes second nature. Introducing a new construct that does the reverse seems likely only to cause massive confusion, especially one with such a similar name.
What I propose does not set backward chaining in question. Another name could be found. Instead of using a different attribute name "deep-if" "deep-unless" one could use another element name such as <block, <target-block, ..., for instance <block name="foo" depends="bar" if="someproperty"/>.


The fact that often an init method is the lowest level dependency and sets many of the properties used in "if" and "unless" attributes higher in the dependency tree is, I think, a good way to introduce people to the Ant way of designing builds as lists of target dependencies.

Besides, as Jesse points out, there is a very simple workaround.

Using <ant/> or <antcall/> is not a perfect workaround.

ant and antcall create an ant subcontext. Properties and references set by targets invoked through ant and antcall do not return to the calling context.

also, targets which have already been executed when you reach <ant/> can be executed a second time, and the targets which are executed during the <ant/> invocation can be reexecuted later by the calling context.

Regards,

Antoine


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org

Reply via email to