Hi Kevin

It's not user error, because my patch didn't make it into the CVS sources.
We are still using a locally patched version of NAnt here.  I would like to
see the patch applied though, which is why I responded to the thread with my
argument.

In our patched version of NAnt, the properties are always passed as
read-only properties.  The basic reasoning for this is that the properties
are presumably being passed to the child build file for a good reason, so
the child should not be messing with their values.

If you want to take a look at the patch, feel free to drop me an email
direct.

Mark

> -----Original Message-----
> From: Kevin Miller [mailto:[EMAIL PROTECTED]]
> Sent: 23 July 2002 15:40
> To: 'Mark Griffiths'; 'Nant-Developers (E-mail)'
> Subject: RE: [nant-dev] IFTask PropertyMissing parameter?
>
>
> I agree with this pattern of build script development.
>
> If you are able to explicitly set properties of nant build tasks, which
> makes sense, then this is a user error on my part. I had no idea this was
> possible. The doc example does not indicate that property is a valid child
> element of the nant task. Is it always a valid child element?
>
> I did understand (from looking at source) that command line parameters are
> ReadOnly. Would it be possible to set declared properties ReadOnly via
> property attribute? I can see that being useful.
>
> Kevin Miller
>
> -----Original Message-----
> From: Mark Griffiths [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, July 23, 2002 3:28 AM
> To: 'Nant-Developers (E-mail)'
> Subject: RE: [nant-dev] IFTask PropertyMissing parameter?
>
>
> Kevin's requirements is exactly why I submitted the patch that allows
> properties to be explicitly passed to a build file.  In the child build
> file, the properties become 'read-only' (as if passed using
> the -D:name=value command line parameter).
>
> This would allow you to write something like:
>
> main.build
> ----------
> <property name="debug" value="false" />
> <nant buildfile="foo.build" inheritall="false">
>   <property name="debug" value="$debug" />
> </nant>
>
> foo.build
> ---------
> <!-- can be overriden by command line or calling build file -->
> <property name="debug" value="true" />
>
> instead of:
>
> main.build
> ----------
> <property name="debug" value="false" />
> <nant buildfile="foo.build" inheritall="true" />
>
> foo.build:
> ----------
> <ifnot propertyexists="debug">
>   <property name="debug" value="true" />
> </ifnot>
>
> I prefer the first way, since it fits with the declarative nature of NAnt.
> I also prefer the inputs to the child build file to be explicit, to avoid
> leaking properties accidentally.    Not to mention compatibility
> (in spirit)
> with Ant, which I wrote about previously on this list.
>
> What does everybody else think?  How long will it be before we have a
> <switch/> task?
>
> Mark
>



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to