This is not about the mutability of properties.  We'd need a separate
thread here and I don't want to start too many on one day, especially
after four months of silence 8-)

When I say properties in the subject, I'm actually talking about data
types in general as properties will only be a special case of data
types in Ant2.

Possible scopes for properties:

(1) Hierarchical scope - properties that are available everywhere in
the build file that defines them as well as in all subbuilds that are
invoked from this buildfile (and subbuilds invoked from subbuilds and
so on).  This basically is the Ant 1.x model, as long as we leave the
inheritall attribute of <ant> aside.

(2) Global scope - properties that are available throughout the whole
build process.  The difference to (1) would be that subbuild defined
properties could be accessed in the parent build file.

(3) Build file scope - properties that are available everywhere in the
build file that defines them, but not in subbuilds - this is Ant 1.x
with inheritall="false" on <ant> tasks.

(4) Target scope - properties that are available only in the target
that defines them.

(5) Container scope - even finer grained than (4) for things like
<parallel> or similar.

Are there other scopes?  Which of these do we really need?

We should think about syntax, after we've decided which scopes we need
to cover by syntax IMHO.

Stefan

Reply via email to