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
<[email protected]
<mailto:[email protected]>> 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