What is the #includes: directive in Metacello?

I do not understand the following passage. More precisely, it is unclear what the #includes: directive #includes: , since it looks exactly the same as the opposite of #requires:

 spec for: #'pharo3.x' do: [ spec package: 'Grease-Core' with: [ spec includes: #('Grease-Pharo30-Core' ). ]; package: 'Grease-Tests-Core' with: [ spec includes: #('Grease-Tests-Pharo20-Core' ). ]; package: 'Grease-Pharo30-Core' with: [ spec requires: #('Grease-Core' ). ]; package: 'Grease-Tests-Pharo20-Core' with: [ spec requires: #('Grease-Tests-Core' ) ] ]. 
+4
source share
1 answer

This is the opposite of demand, but he does more. If A requires: B and B includes: A , then loads the effects of B , which also loads A (because of #includes: after loading B (because of #requires ).

I talked with Dale about this behavior. After all, this is a problem with names. In the debian world, you should use something like #provides: (which is not available), and you could write

 A provides: B 

However, the fact that another A requires: B will not be reflected there.

TL DR

When A includes: B , then loading A also loads B

+7
source

All Articles