On 5/6/2010 5:26 PM, Dale Henrichs wrote:
I don't think I've completely answered your questions so we might want to 
continue the dialog on this question....

We're getting close :-) Let me take my own questions and answer them in my own words to see if I understand the issues correctly:

Q1: #includes: vs. #requires:

If I understand correctly what you're saying then, in heavily simplified form, I'd say they're both dependencies, except that #requires: is loaded before the package it relates to and #includes: afterwords. Thus:

        spec package: 'B' with:[
                spec requires: 'A'.
                spec includes: 'C'.
        ].

will load A, B, and C in that order. One thing one can do with this is to have mutually dependent packages, for example if package Foo and Bar always must be loaded together (Foo before Bar) one would specify:

        spec package: 'Foo' with:[spec includes: 'Bar'].
        spec package: 'Bar' with:[spec requires: 'Foo'].

There is now no way by which Foo or Bar could be loaded without its companion. Correct?

Q2: Why is HelpSystem not loaded?

A: That's a bug which I can work around by specifying either #version: or #versionString:.

Q3: When exactly is HelpSystem loaded?
A: In the context of my configuration HelpSystem is loaded for two reasons: a) because it's a dependency for WebClient-Help and b) because no 'default' group has been specified it would be loaded implicitly.

Q4: How does one define dependencies that differ based on platform?
A: I'm not really sure about this. My understanding is that I could use #includes: to model the dependency in the "for: #pharo" branch, but one question that is still open is whether the following two expressions are equivalent:

        spec
                package:'Foo' with:[spec requires: 'Bar'];
                package:'Foo' with:[spec requires: 'Baz'];

and
        spec
                package: 'Foo' with:[spec requires: #('Bar' 'Baz')].

Are these equivalent?

Cheers,
  - Andreas


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to