Stefan Bodewig wrote:
I think it doesn't make sense that you can refer to something about
some project without depending on it.

The only use-case I know is when you really only depend on the module, not the project (i.e. the home and srcdir type of references).

ugh. Conceptually, that's a big nono. To me,

repository =~ where one gets stuff
module =~ some pragmatic unit introduced in between a repository and a
          project to approximate how old-style (ie cvs, not svn) source
          control servers are organised
project =~ the "core unit" of logical software organisation
dependency =~ relationship between projects

A relationship between a project and a module other than the one it is contained in to me signals that that referenced module is some kind of "core unit" integral to software organisation. Meaning the module is-a project. Just have

<repository>
  <module>
    <!-- nothing interesting here -->
    <project>
    ...
    </project>
  </module>
<repository>

but keep the model simple. Even if the <module/> really is empty. Make sense?

If you need to be aware of the project to do your build, isn't that
some form of dependency?

Yes, but maybe a form that is not related to building a project at all.

Right. You might depend on a project because your documentation has hyperlinks to stuff in its javadocs. Who knows? ;)


We used to have such a situation in the dom4j/jaxen situation.  dom4j
copied parts of jaxen into its own build area (or the other way
around, I don't have access to my Gump descriptors right now) and
compiled them.  So it doesn't depend on the project jaxen, just on the
presence of its sources.

good example!

Now, what I'm saying is that dom4j /does/ depend on jaxen, so there is

<project name="dom4j">
  <depend project="jaxen"/>
</project>

only we need to mark up this dependency, ie

<project name="dom4j">
  <!-- dom4j needs to get access to jaxen sources -->
  <depend project="jaxen" type="src" id="homedir"/>
</project>

<project name="subversion-python-bindings">
  <!-- subversion needs access to the python *.h files -->
  <depend project="python" type="headers" id="dev-headers"/>
</project>

Similar things could be something like "I depend on the project.xml of
another module so I can reference it".  Or just "I need the location
of some include files so I can tell configure where to find them".

totally.

If we add module level dependency and more interesting types than
"depend --> add the jars to CLASSPATH", we would address those issues.

yep. In Gump3, I made Dependency into a real object inside the model. Currently its a little broken (when you <depend/> on the same project multiple times for different artifacts, that counts as multipe dependencies, which is wrong), but the key bit is that you can have loads of information about the dependency added onto it.


(in graph theory speak, we can have arbitrarily colored edges)

If that is the case, <property/> inside <ant/> right now should
automatically mean a <depend/> (right now a <depend/> inside <ant/>
also means a <property/>).

I like things to be explicit, so I'd rather remove "<depend/> inside of <ant/>" completely and don't create any dependencies implicitly. But that may be just me - and I'm able to adapt 8-).

no, it's not just you! I guess what I should've said is that <property/> referencing a project is illegal withouth a <depend/> to the same project. Yep.


thanks for the input!


cheers,


Leo

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to