I think that we should go for 2) adding if/unless to all tasks.
It should have the same support as the if/unless in targets.
I do not see the need for more complicated condition support
(at least at the moment).

There would be some snags (what about tasks that do
not derive from Task, what about tasks that already provide
if and unless attributes), however I feel that the benefits far
outweigh the drawbacks.

Not that the problem with condition support for datatypes is
a far harder problem to solve as the tasks themselves do
the processing of the datatypes.

Peter

On 8/16/06, Conor MacNeill <[EMAIL PROTECTED]> wrote:

I'm pretty much in agreement with Stefan.

If if/unless is going to be in some tasks, it should be in all. It
reminds me of a principle from one of my old textbooks:

Regularity Principle:

Regular rules, without exceptions, are easier to learn, use, describe
and implement.

Once we go down the if/unless path, we have to think about what we
should *not* put in the common behaviour of all tasks.

Anyway, if we do provide it, I think we should write it once and not in
every task. I'd say we need to decide between:

1. Just adding all the logic tasks everyone uses anyway :-)
2. Adding if/unless processing to Task
3. Implementing aspect style interface(s) and providing an if/unless
aspect.

Thoughts?
Conor

Stefan Bodewig wrote:
>
> For a long time I've taken the more extreme "all tasks or no task"
> position on this 8-)
>
> Why would we want to add conditional attributes to echo (or
> sequential) and not to copy?
>
> This leads to "wouldn't a nested condition be more expressive than
> if/unless attributes" which then makes me think that adding an if task
> would be cleaner.  Once I arrive there I start to feel uncomfortable.
>
> Stefan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to