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 On Tue, Mar 3, 2015 at 9:44 PM, Andrei Chis <chisvasileandrei@gmail.com> wrote:
Hi,
We are having the following problem when trying to update GTolols to their latest version in the latest Pharo 4 image: Rubric does not get updated. We have:
-- ConfigurationOfGTInspectorCore (2.0-baseline) -- ConfigurationOfGlamourCore (3.1-baseline) -- ConfigurationOfRubric (0.2-baseline)
Performing [1] shows that rubric gets updated (atomic load : 0.2-baseline [ConfigurationOfRubric]) Performing [2] contains no trace of rubric.
[1] (ConfigurationOfGlamourCore project version: #development) record loadDirective [2] (ConfigurationOfGTInspectorCore project version: #development) record loadDirective.
Loading then the inspector [3] does not update Rubric. Loading just Glamour [4] updates it.
[3] (ConfigurationOfGTInspectorCore project version: #development) load. [4] (ConfigurationOfGlamourCore project version: #development) load
Any ideas or sugestions? Maybe we are missing something trivial. This updates the previous configurations to their latest versions:
Gofer new smalltalkhubUser: 'Moose' project: 'GToolkit'; package: 'ConfigurationOfGTInspectorCore'; load. Gofer new smalltalkhubUser: 'Moose' project: 'Glamour'; package: 'ConfigurationOfGlamourCore'; load. Gofer new smalltalkhubUser: 'AlainPlantec' project: 'Rubric'; package: 'ConfigurationOfRubric'; load.
Cheers, Andrei