> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Ian MacLean > Sent: Friday, December 03, 2004 09:29 > To: Gert Driesen > Cc: 'Troy Laurin'; 'J. Christopher Six'; > [EMAIL PROTECTED] > Subject: Re: [Nant-users] Re: Segfault during compilation with mono on > Linux > > > Gert Driesen wrote: > > >>>This is a legacy of Ant not having expressions or an if > >>> > >>> > >>statement, so > >> > >> > >>>the only way to conditionally perform tasks was via this depends/if > >>>mechanism: > >>> > >>><target name="foo" depends="foo-test" if="${foo-exists}"> > >>> <do-foo /> > >>></target> > >>><target name="foo-test"> > >>> <available file="foo.txt" property="foo-exists" /> > >>></target> > >>> > >>> > >>> > >>Since NAnt now does have expressions then that behaviour > >>doesn't make as > >>much sense. You can achieve the same thing by putting the if > >>test inside > >>the target. However with the current behaviour you *can't* > >>prevent both > >>a target and its dependencies from being executed just by > >>using the "if" > >>attribute. This seems like one case where diverging from Ants > >>behaviour > >>might not be a bad thing. Certainly the current behaviour > >>violates the > >>"principle of least suprise". > >> > >> > > > >I understand, but it does make sense that dependencies can have > influence on > >whether or not the target should be executed. > > > > > they can anyway : > > <target name="foo" depends="foo-test" > > <if test="${foo-exists}" > > <do-foo /> > </if> > </target> > > however right now you *can't* stop a target *and* all its dependencies > from being run by using the if attribute - and that seems like a big > functionality hole. > > I think the "stop this target and all its dependencies from running" > use-case is a more common one than the: > > "stop only this target but let all its dependencies execute" one. > > >Compatibility with Ant has never been a goal by itself, but we need very > >strong arguments if we intend to break compatibility with Ant > (in one of the > >few where we ARE compattible ;-)) > > > well - adding useful functionality seems like a pretty good reason - > especially when the Ant behaviour is only there because they lack an > expression system. > > >AND break backward compatibility for NAnt > >users. > > > > > > > Sure - of course breaking compatibility is a bad thing generally - > however in this case I think there are probably more users who are > frustrated/confused by the current behaviour than are actively relying > on it. I could be wrong though - I'd love to get peoples opinions on this.
I'm fully with you on this, Ian. One does not expect dependencies a conditional target get triggered if the condition is not met. Especially not since you can make the target's *contents* conditional in if that is really what you intend. > >If we keep the current behaviour (which I'd prefer), then we > should at least > >document it better, t make it more clear/obvious to users. > > > > > > > sure but documenting should be secondary to having it do the right thing. > > Ian Agree, Rutger ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ Nant-users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-users