Conor MacNeill wrote, On 01/08/2003 12.27:
On Fri, 1 Aug 2003 07:40 pm, Jose Alberto Fernandez wrote:...
On the other hand, if you have to import them, then it is because they have to share something or one defines some target for the other, or something.
I disagree. Importing them into a common build does not imply they have something in common other than they are both fragments I wish to use in my build process. If you want them to interact you should achieve that *explicitly* by operations in the importing build file not by some implicit coincidence of names.
Ok, let me try and comment on this multiple inheritance issue.
Multiple Inheritance ----------------------
We have showed how avoiding interactions between import lines is something that prevents unwanted interactions between targets.
But some have expressed that these interactions are instead *wanted* at times, and thus should be possible to be done. AFAIK this is the only reason for wanting these interactions, please add if there are more.
As you say above, these interactions should be explicit.
Nick Chalko wrote:
I used this "feature" in centipede.
The release antlib has a target called tag-and-release, but it depends on a target called tag However tagis expected to be defined in a different antlib. Currently it is defined in cvsbuild, but it is open for someone to make a vssbuild antlib.
So I do think cross talk is a "feature" but a feature that can be hard to grok.
How can this thing be done while shielding interactions?
With this "feature", the only <import> declaration states that we want to use cvs or vss build to override.
I write:
<project default="release"> <import file="release.xml"/> <import file="cvsbuild.xml"/> </project>
In here there are contracts that are very difficult to see, as the two antlibs have to be made basically by the same person, and know each other.
How can I do this more declaratively?
Dunno, some musings:
<project default="release"> <import file="release.xml"/> <import file="cvsbuild.xml"/> <target name="release" depends="setcvsbuild, release"/> </project>
<project default="release"> <import file="cvsbuild.xml"/> <import file="release.xml"> <property name="release.buildtarget" value="cvsbuild.release"/> </project>
<project default="release"> <import file="release.xml"> <param name="use-import" value="cvsbuild.xml"/> </import> </project>
-- Nicola Ken Barozzi [EMAIL PROTECTED] - verba volant, scripta manent - (discussions get forgotten, just code remains) ---------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]