Hi,
We fixed this but we are not sure if the behaviour that we got was a result of a bug or a feature in Metacello.
Again our setup is that we have three configurations with linear dependencies between them:
-- ConfigurationOfGTInspectorCore (2.0-baseline)
�� �� ��--��ConfigurationOfGlamourCore (3.1-baseline)
�� �� �� �� ��--��ConfigurationOfRubric (0.2-baseline)
In ConfigurationOfRubric we had version "1.2.8" that uses '0.2-baseline'.
The development version is '0.2-baseline' and the stable version '1.2.8'
[1]��(ConfigurationOfGlamourCore�� project version: #development) record loadDirective
[2]��(ConfigurationOfGTInspectorCore ��project version: #development) record loadDirective.��
When performing [1]��Metacello ��decides to load Rubric.
This because��"MetacelloNullRecordingMCSpecLoader" uses the operator "="��(since none was specified before)��to figure out whether something should be loaded. At a certain point this is executed:
�� compareCurrentVersion:targetVersionStatus:using: (from above)
�� �� ...
�� �� �� ��...
�� �� �� �� ��...
�� �� �� �� �� ��...
�� �� �� �� �� �� �� #allLoadedToSpec = #allLoadedToSpec ===> TRUE
�� �� �� �� �� �� �� �� "1.2.8 [ConfigurationOfRubric]" = "<>0.2-baseline [ConfigurationOfRubric] (MetacelloMCVersion)" ===> FALSE
�� �� �� �� �� �� �� �� ===> Rubric is not removed from the loader list
When performing [2] Metacello decides not to load Rubric.
In this case Metacello deals first with��#ConfigurationOfGlamourCore. But after "GlamorCore" has been processed, the operator in the global mcLoader is set to ">=". All further specs-to-load (MetacelloNullRecordingMCSpecLoader) will be compared using "=>". So now rubric get's removed:
�� compareCurrentVersion:targetVersionStatus:using: (from above)
�� �� ...
�� �� �� ��...
�� �� �� �� ��...
�� �� �� �� �� ��...
�� �� �� �� �� �� �� #allLoadedToSpec >= #allLoadedToSpec ===> TRUE
�� �� �� �� �� �� �� �� "1.2.8 [ConfigurationOfRubric]" >= "<>0.2-baseline [ConfigurationOfRubric] (MetacelloMCVersion)" ===> TRUE
�� �� �� �� �� �� �� �� ===> Rubric is removed from the loader list
That's why "Rubric" doesn't show up in the final loader list. The second (inner/nested) spec-to-load will remove it (after it has been successfully resolved by the previous nested configuration ConfigurationOfGlamourCore) because of the operator.
So there is a difference between #ConfigurationOfGlamourCore and #ConfigurationOfGTInspectorCore in how "Rubric" is resolved and loaded.
Anybody else encountered this?��
Cheers,
GT team