Scott Hernandez wrote:
FYI: The basedir attribute was removed from NAntTask before the 0.7.9.0
release. It was removed may 3rd.
We incorrectly assumed that the basedir attribute had not yet been
implemented. So we added it and then independently discovered that is was
not required! ;) It's gone from our local copy now and needs no further
consideration.
That said, I would still really like to see the NAntTask nested properties
change make it into the next release. Since Ant supports them, I can't see
how the change can do any harm. I realise that NAnt is only compatible with
Ant in spirit, but since Ant is so widely deployed it seems sensible to
follow it's lead whenever choices appear arbitrary.
Here is the behavior I would expect for properties:
1.) Default = InheritAll (this is the way Ant does it, and I think
people expect to be able to use properties from the parent build file)
2.) -D: properties should be read-only and inherited. (It was specified
on the command line for a reason. If you don't want it read-only, do it
another way.)
3.) Any property specified in nant tag should override the current
value, unless it is read-only.
1 and 2 are consistent with Ant. I tried a simple test case with Ant to
determine if 3 is consistent, and it differs in that Ant allows even user
properties to be overridden by a nested property element.
I think that both inherited properties and those specified in nested
property elements should become read-only in the new project. The
motivation is similar to your point 2) above. They have been passed for a
reason, if you don't want it read-only etc...
All this behaviour is consistent with Ant. Here is the relevent part from
the Ant task docs [1].
from Ant docs
By default, all of the properties of the current project will be available
in the new project. Alternatively, you can set the inheritAll attribute to
false and only user properties (i.e., those passed on the command-line)
will be passed to the new project. In either case, the set of properties
passed to the new project will override the properties that are set in the
new project (See also the property task).
You can also set properties in the new project from the old project by using
nested property tags. These properties are always passed regardless of the
setting of inheritAll. This allows you to parameterize your subprojects.
/from Ant docs
Unless anyone can think of concrete reasons why Ant's way of doing things is
bad, I feel we should mimick Ant on this issue. I am willing to make all
the relevant changes to NAnt if I can be assured the changes will be
accepted.
Mark
[1] http://jakarta.apache.org/ant/manual/CoreTasks/ant.html
---
This sf.net email is sponsored by:ThinkGeek
Caffeinated soap. No kidding.
http://thinkgeek.com/sf
___
Nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers