On 9/11/15 6:09 AM, Usman Bhatti wrote:
Hi,
It seems that Metacello does not consider PackageName-xyz and
PacakgeName-BranchName-xyz as the same package. I suspect it because
when I look at the packages loaded by two different configurations
with and without branch names as package name suffixes are not the
same. Could someone knowing the internals of Metacello confirm it?
So, here is a log of Metacello of the loadDirective for
ConfigOfGlamour with and without packages with branch names. I have
truncated the output to highlight important parts of the log.
----------- Metacello log follows ----------------------
Without branching (Rubric and Glamour-Morphic-Renderer loaded only once):
linear load :
atomic load : 3.3.0 [ConfigurationOfGlamour]
linear load : 3.1.3.Moose51 [ConfigurationOfGlamourCore]
--------------------List of Packages----------------
atomic load : 1.2.14.Moose51 [ConfigurationOfRubric]
load : Rubric-AndreiChis.207
load : Glamour-Morphic-Renderer-AndreiChis.324
--------------------List of Packages----------------
linear load : 1.13 [ConfigurationOfRoassal2]
linear load : 3.1.4 [ConfigurationOfGlamourCore]
--------------------List of Packages----------------
With branching (old versions overwrites the fixes):
linear load :
atomic load : 3.3.0 [ConfigurationOfGlamour]
linear load : 3.1.3.Moose51 [ConfigurationOfGlamourCore]
--------------------List of Packages----------------
atomic load : 1.2.14.Moose51 [ConfigurationOfRubric]
load : Rubric-Moose51-usmanbhatti.207
load :
Glamour-Morphic-Renderer-Moose51-usmanbhatti.324
--------------------List of Packages----------------
linear load : 1.13 [ConfigurationOfRoassal2]
linear load : 3.1.4 [ConfigurationOfGlamourCore]
atomic load : 1.2.15 [ConfigurationOfRubric]
load : Rubric-AlainPlantec.206
load : Glamour-Morphic-Renderer-AndreiChis.321
--------------------List of Packages----------------
---------------
What it actually changes is packages with branch name are overwritten
with their predecessors and hence fixes are not correctly included in
the resulting image. It seems that ensuring correct loading in the
presence of branched packages requires no other configuration is
loading previous versions of the branched packages.
While Thierry's comments (and my own) apply, I'd like to dive a little
deeper into this for a minute ... I would like to compare the Metacello
specs for Glamour-Morphic-Renderer in ConfigurationOfGlamourCore (that
resolves to Glamour-Morphic-Renderer-Moose51-usmanbhatti.324) and the
spec for Glamour-Morphic-Renderer in ConfigurationOfRubric (that
resolves to Glamour-Morphic-Renderer-AndreiChis.321)...
I see that in Glamour-Morphic-Renderer-Moose51-usmanbhatti.324 the
version number (324 ... which btw is another convention:) is greater
than 321, so I do believe that if you had been using the branch naming
conventions Glamour-Morphic-Renderer-AndreiChis.321 would not have been
loaded .... and I suppose we'll find out shortly:)
I _am_ curious about the package meta information for
Glamour-Morphic-Renderer-Moose51-usmanbhatti.324 ... when you crack open
that package (inspect the ancestry of working copy) what package name is
associated with the latest ancestor? I've seen cases where the package
meta data has drifted significantly from the name of the file used to
house the package and that has lead to interesting image state, to say
the least.
Dale