Metacello / metacello

Metacello is a package management system for Smalltalk
MIT License
87 stars 43 forks source link

"many more configurations and packages are being loaded" from Johan #264

Closed dalehenrich closed 10 years ago

dalehenrich commented 10 years ago

I found out why this was happening in my case. In a fresh 3.1.0.6 image, the Metacello registry has version 0.231 (or something) registered as the load GLASS, although 1.0-beta.9 is loaded.

Since my ConfigurationOf references GLASS 1.0-beta.9, a load conflict occurred and it seems Metacello went down the path of fetching all configurations needed for GLASS 0.231. It starts with ConfigurationOfGsSeaside28 and then the entire referenced enchillada gets fetched.

When I remove that entry from the registry, the conflict does not occur and my load is 'fine'.

I guess the registry entry is erroneous, no?

On 24 Jun 2014, at 16:08, Dale Henrichs <dale.henrichs@gemtalksystems.com> wrote:

> How do you get things to break in 3.1.0.6?

I created a small ConfigurationOfTest with the following baseline in a freshly download 3.1.0.6 extent.

baseline: spec
        <version: '1.0-baseline'>

        spec for: #common do:[

                spec
                        project: 'GLASS'
                        with: [ spec
                                                className: 'ConfigurationOfGLASS';
                                                versionString: '1.0-beta.9.2';
                                                repository: 'http://seaside.gemtalksystems.com/ss/MetacelloRepository'].

                        spec
                                project: 'Seaside30'
                                with:
                                        [ spec
                                                className: 'ConfigurationOfSeaside3';
                                                versionString: '3.0.13';
                                                loads: #('Core');
                                                repository: 'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main'].

                spec group: 'default' with: #('GLASS' 'Seaside30')]

Next, I execute this in topaz:

"Load the MetacelloPreview bleeding edge master"
(Smalltalk at: #Metacello) new
 baseline: 'Metacello';
 repository: 'github://dalehenrich/metacello-work:master/repository';
 load.

"Load Seaside 3.0.13"
Metacello new
  configuration: 'Seaside3';
  repository:  'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
  version: '3.0.13';
  load.

"Load My project, prevent upgrades of referenced projects"
Metacello new
  configuration: 'Test';
  version: '1.0-baseline';
  onConflict:[:ex | Transcript show: 'CONFLICT: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow.];
  onUpgrade: [:ex | Transcript show: 'UPGRADE: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow. ];
  load

The last load expression breaks as follows:

--transcript--'Loading 1.0-baseline of ConfigurationOfTest...'
--transcript--'UPGRADE: a MetacelloAllowProjectUpgrade occurred (notification 2741) GLASS (0.231)->GLASS (1.0-beta.9.2)'
--transcript--'...RETRY->ConfigurationOfGLASS'
--transcript--'...RETRY->ConfigurationOfGLASS'
--transcript--'...FAILED->ConfigurationOfGLASS'
ERROR 2710 , a MetacelloPackageSpecResolutionError occurred (error 2710) (MetacelloPackageSpecResolutionError)

This is a little different from what I see in my case but I believe it boils down to the same problem:
Because the registry still points to GLASS 0.231, a conflict occurs and Metacello starts fetching that version. In the example I mention in this email it breaks because the repository of that version 0.231 no longer exists (it is a local directory on your servers I believe). In my case, it breaks because I use repositoryOverrides which does not include the necessary packages (see load transcript below). If I leave out the repositoryOverrides, the load goes fetching _a lot_ of configurations and packages I never loaded (transitive closure of GsSeaside28, I believe).

This is the end of the transcript of a load in my full case. it shows how Metacello starts loading a configuration I am not referencing.

--transcript--'Project: Seaside Tests 3.0.10'
--transcript--'Fetched -> Seaside-REST-Core-dkh.39 --- http://dev.yesplan.be/gsreplication --- http://dev.yesplan.be/gsreplication'
--transcript--'Fetched -> Seaside-GemStone-REST-Core-topa.2 --- http://dev.yesplan.be/gsreplication --- http://dev.yesplan.be/gsreplication'
--transcript--'Fetched -> Seaside-Swagger-KrisGybels.35 --- http://dev.yesplan.be/common --- http://dev.yesplan.be/common'
--transcript--'Fetched -> CSV-AndyKellens.12 --- http://dev.yesplan.be/gsreplication --- http://dev.yesplan.be/gsreplication'
--transcript--'Fetched -> JQWidgetBox-Core-JohanBrichau.4 --- http://dev.yesplan.be/jqwidgetbox --- http://dev.yesplan.be/jqwidgetbox'
--transcript--'Fetched -> JQWidgetBox-JEditable-Core-JohanBrichau.4 --- http://dev.yesplan.be/jqwidgetbox --- http://dev.yesplan.be/jqwidgetbox'
--transcript--'Fetched -> JQWidgetBox-HoverIntent-Core-JohanBrichau.3 --- http://dev.yesplan.be/jqwidgetbox --- http://dev.yesplan.be/jqwidgetbox'
--transcript--'Fetched -> JQWidgetBox-MbMenu-Core-JohanBrichau.21 --- http://dev.yesplan.be/jqwidgetbox --- http://dev.yesplan.be/jqwidgetbox'
--transcript--'Fetched -> JQWidgetBox-TableSorter-Core-ThomasCleenewerck.9 --- http://dev.yesplan.be/jqwidgetbox --- http://dev.yesplan.be/jqwidgetbox'
--transcript--'Fetched -> SeasideDynamicSVG-Core-JohanBrichau.120 --- http://dev.yesplan.be/SeasideDynamicSVG --- http://dev.yesplan.be/SeasideDynamicSVG'
--transcript--'Fetched -> SeasideDynamicSVG-JQuery-JohanBrichau.27 --- http://dev.yesplan.be/SeasideDynamicSVG --- http://dev.yesplan.be/SeasideDynamicSVG'
--transcript--'Fetched -> SeasideDynamicSVG-DragDrop-JohanBrichau.15 --- http://dev.yesplan.be/SeasideDynamicSVG --- http://dev.yesplan.be/SeasideDynamicSVG'
--transcript--'Fetched -> Seaside-GemStone-ServiceTask-NickAger.20 --- http://dev.yesplan.be/gsreplication --- http://dev.yesplan.be/gsreplication'
--transcript--'CONFLICT: a MetacelloAllowConflictingProjectUpgrade occurred (notification 2741) GLASS (0.231)->GLASS (1.0-beta.9)'
--transcript--'Project: GLASS 1.0-beta.9'
--transcript--'...RETRY->ConfigurationOfGsSeaside28'
--transcript--'...RETRY->ConfigurationOfGsSeaside28'
--transcript--'...FAILED->ConfigurationOfGsSeaside28'
ERROR 2710 , a MetacelloPackageSpecResolutionError occurred (error 2710) (MetacelloPackageSpecResolutionError)

Mind that removing/reseting the registry's entry for GLASS fixes this problem immediately.

Hope I made some sense...
dalehenrich commented 10 years ago

I think that GsUpgrader should address this problem ...

dalehenrich commented 10 years ago

I setup you test configuration and promptly failed simply running your setup script during the Seaside load in a fresh 3.1.0.6 extent:

topaz 1> list
   "Load the MetacelloPreview bleeding edge master"
   (Smalltalk at: #Metacello) new
    baseline: 'Metacello';
    repository: 'github://dalehenrich/metacello-work:master/repository';
    load.

   "Load Seaside 3.0.13"
   Metacello new
     configuration: 'Seaside3';
     repository:  'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
     version: '3.0.13';
     load.
 *   ^11                                                              *******

   "Load My project, prevent upgrades of referenced projects"
   Metacello new
     configuration: 'Test';
     repository: 'server:/opt/git/gsUpgrader/monticello'; 
     get.
   Metacello new
     configuration: 'Test';
     version: '1.0-baseline';
     onConflict:[:ex | Transcript show: 'CONFLICT: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow.];
     onUpgrade: [:ex | Transcript show: 'UPGRADE: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow. ];
     load

the error is:

ERROR 2010 , a MessageNotUnderstood occurred (error 2010), a MetacelloProjectRegistration does not understand  #'projectSpec' (MessageNotUnderstood)
topaz 1> where
==> 1 MessageNotUnderstood >> defaultAction         (envId 0) @2 line 3
2 AbstractException >> _signalWith:             (envId 0) @5 line 25
3 AbstractException >> signal                   (envId 0) @2 line 47
4 Object >> doesNotUnderstand:                  (envId 0) @9 line 10
5 Object >> _doesNotUnderstand:args:envId:reason: (envId 0) @7 line 12
6 MetacelloScriptEngine >> lookupProjectSpecFor: (envId 0) @4 line 21

and is due to the fact that auto migration is disabled in topaz runs ...

I'm going to change your script to use GsDeployer (which sets autoMigrate):

GsDepoyer deploy: [ 
  "Load the MetacelloPreview bleeding edge master"
  (Smalltalk at: #Metacello) new
     baseline: 'Metacello';
     repository: 'github://dalehenrich/metacello-work:master/repository';
     load.

  "Load Seaside 3.0.13"
  Metacello new
    configuration: 'Seaside3';
    repository:  'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
    version: '3.0.13';
    load.

  "Load My project, prevent upgrades of referenced projects"
  Metacello new
    configuration: 'Test';
    version: '1.0-baseline';
    onConflict:[:ex | Transcript show: 'CONFLICT: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow.];
    onUpgrade: [:ex | Transcript show: 'UPGRADE: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow. ];
    load.
]

and see what happens ... on reflection the dependence upon ConfigurationOfGLASS is the weak link in the ConfigurationOfTest, I think that moving forward we should only have dependencies on GLASS1 ... (and soonly GsDevKit) ... but I am still interested in seeing how things go ... I will probably want to replace things with GsUpdater, but first things first ...

dalehenrich commented 10 years ago

Okay the following script loaded into virgin 3.1.0.6 does go haywire:

GsDeployer
    deploy: [ 
      "Load the MetacelloPreview bleeding edge master"
      (Smalltalk at: #'Metacello') new
        baseline: 'Metacello';
        repository: 'github://dalehenrich/metacello-work:master/repository';
        load.   "Load Seaside 3.0.13"
      Metacello new
        configuration: 'Seaside3';
        repository:
            'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
        version: '3.0.13';
        load.   "Load My project, prevent upgrades of referenced projects"
      Metacello new
        configuration: 'Test';
        version: '1.0.0';
        repository: 'server:///opt/git/gsUpgrader/monticello';
        get.      
      Metacello new
        configuration: 'Test';
        version: '1.0.0';
        onConflict: [ :ex | 
              Transcript
                show:
                  'CONFLICT: ' , ex description , ' ' , ex existingProjectRegistration baseName
                    , ' (' , ex existingProjectRegistration version , ')->'
                    , ex newProjectRegistration baseName , ' ('
                    , ex newProjectRegistration version , ')'.
              ex disallow ];
        onUpgrade: [ :ex | 
              Transcript
                show:
                  'UPGRADE: ' , ex description , ' ' , ex existingProjectRegistration baseName
                    , ' (' , ex existingProjectRegistration version , ')->'
                    , ex newProjectRegistration baseName , ' ('
                    , ex newProjectRegistration version , ')'.
              ex disallow ];
        load ]

In my case, I see configurations being loaded that are from that very ancient version of glass:

--transcript--'Fetched -> ConfigurationOfGsSeaside28-DaleHenrichs.22 --- http://seaside.gemstone.com/ss/seaside --- http://seaside.gemstone.com/ss/seaside'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/seaside/ConfigurationOfGsSeaside28-DaleHenrichs.22.mcz'
--transcript--'Loaded -> ConfigurationOfGsSeaside28-DaleHenrichs.22 --- http://seaside.gemstone.com/ss/seaside --- http://seaside.gemstone.com/ss/seaside'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/ScaffoldingGS/?C=M;O=D'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/ScaffoldingGS/ConfigurationOfGsScaffolding-DaleHenrichs.10.mcz'
--transcript--'Fetched -> ConfigurationOfGsScaffolding-DaleHenrichs.10 --- http://seaside.gemstone.com/ss/ScaffoldingGS --- http://seaside.gemstone.com/ss/ScaffoldingGS'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/ScaffoldingGS/ConfigurationOfGsScaffolding-DaleHenrichs.10.mcz'
--transcript--'Loaded -> ConfigurationOfGsScaffolding-DaleHenrichs.10 --- http://seaside.gemstone.com/ss/ScaffoldingGS --- http://seaside.gemstone.com/ss/ScaffoldingGS'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/hyper/?C=M;O=D'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/hyper/ConfigurationOfGsHyper-DaleHenrichs.6.mcz'
--transcript--'Fetched -> ConfigurationOfGsHyper-DaleHenrichs.6 --- http://seaside.gemstone.com/ss/hyper --- http://seaside.gemstone.com/ss/hyper'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/hyper/ConfigurationOfGsHyper-DaleHenrichs.6.mcz'
--transcript--'Loaded -> ConfigurationOfGsHyper-DaleHenrichs.6 --- http://seaside.gemstone.com/ss/hyper --- http://seaside.gemstone.com/ss/hyper'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/magritte/?C=M;O=D'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/magritte/ConfigurationOfGsMagritte-dkh.11.mcz'
--transcript--'Fetched -> ConfigurationOfGsMagritte-dkh.11 --- http://seaside.gemstone.com/ss/magritte --- http://seaside.gemstone.com/ss/magritte'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/magritte/ConfigurationOfGsMagritte-dkh.11.mcz'
--transcript--'Loaded -> ConfigurationOfGsMagritte-dkh.11 --- http://seaside.gemstone.com/ss/magritte --- http://seaside.gemstone.com/ss/magritte'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/pier/?C=M;O=D'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/pier/ConfigurationOfGsPier-dkh.14.mcz'
--transcript--'Fetched -> ConfigurationOfGsPier-dkh.14 --- http://seaside.gemstone.com/ss/pier --- http://seaside.gemstone.com/ss/pier'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/pier/ConfigurationOfGsPier-dkh.14.mcz'
--transcript--'Loaded -> ConfigurationOfGsPier-dkh.14 --- http://seaside.gemstone.com/ss/pier --- http://seaside.gemstone.com/ss/pier'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/SeasideTesting/?C=M;O=D'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/SeasideTesting/ConfigurationOfGsSeasideTesting28-DaleHenrichs.13.mcz'
--transcript--'Fetched -> ConfigurationOfGsSeasideTesting28-DaleHenrichs.13 --- http://seaside.gemstone.com/ss/SeasideTesting --- http://seaside.gemstone.com/ss/SeasideTesting'
--transcript--'redirecting to http://seaside.gemtalksystems.com/ss/SeasideTesting/ConfigurationOfGsSeasideTesting28-DaleHenrichs.13.mcz'
--transcript--'Loaded -> ConfigurationOfGsSeasideTesting28-DaleHenrichs.13 --- http://seaside.gemstone.com/ss/SeasideTesting --- http://seaside.gemstone

GsMagritte, GsPier, etc. pretty crazy!!!!

You are right that things are coming in because it thinks that the old version of GLASS is loaded because currentVersion is broken ..

Now I'll try things with GsUpgrader

dalehenrich commented 10 years ago

This script (which is not quite what you had):

login
run
GsDeployer deploy: [ 
  Gofer new
    package: 'GsUpgrader-Core';
    url: 'http://ss3.gemtalksystems.com/ss/gsUpgrader';
    load.
  (Smalltalk at: #GsUpgrader) upgradeGrease.
  "Load Seaside 3.0.13"
  Metacello new
    configuration: 'Seaside3';
    repository:
        'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
    version: '3.0.13';
    load.
  Gofer new
    package: 'GsUpgrader-Core';
    url: 'http://ss3.gemtalksystems.com/ss/gsUpgrader';
    load.
  (Smalltalk at: #GsUpgrader) upgradeGLASS1.
  "Load Seaside 3.0.13 AGAIN"
  Metacello new
    configuration: 'Seaside3';
    repository:
        'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
    version: '3.0.13';
    onConflict:[:ex | Transcript show: 'CONFLICT: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow.];
    onUpgrade: [:ex | Transcript show: 'UPGRADE: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow. ];
    load: 'Core'.
 ]

ends up producing this output during the second load of Seaside3.0.13:

--transcript--'Loading 3.0.13 of ConfigurationOfSeaside3...'
--transcript--'CONFLICT: a MetacelloAllowConflictingProjectUpgrade occurred (notification 2741) Grease (baseline)->Grease (1.0.9)'
--transcript--'CONFLICT: a MetacelloAllowConflictingProjectUpgrade occurred (notification 2741) Grease (baseline)->Grease (1.0.9)'
--transcript--'CONFLICT: a MetacelloAllowConflictingProjectUpgrade occurred (notification 2741) Grease (baseline)->Grease (1.0.9)'
--transcript--'CONFLICT: a MetacelloAllowConflictingProjectUpgrade occurred (notification 2741) Grease (baseline)->Grease (1.0.9)'
--transcript--'CONFLICT: a MetacelloAllowConflictingProjectUpgrade occurred (notification 2741) Grease (baseline)->Grease (1.0.9)'
--transcript--'Project: Grease Core 1.0.9'
--transcript--'Project: System-Digital-Signatures stable'
--transcript--'Project: SMTPMail stable'
--transcript--'Project: UTF8 stable'
--transcript--'CONFLICT: a MetacelloAllowConflictingProjectUpgrade occurred (notification 2741) Grease (baseline)->Grease (1.0.9)'
--transcript--'Project: Grease Core Tests 1.0.9'
--transcript--'Project: System-Digital-Signatures stable'
--transcript--'Project: SMTPMail stable'
--transcript--'Project: UTF8 stable'
--transcript--'Project: Swazoo2 2.2.0.4'
--transcript--'CONFLICT: a MetacelloAllowConflictingProjectUpgrade occurred (notification 2741) Grease (baseline)->Grease (1.0.5.1)'
--transcript--'UPGRADE: a MetacelloAllowProjectUpgrade occurred (notification 2741) Grease (baseline)->Grease (1.0.5.1)'
--transcript--'Project: FastCGI 0.235'
--transcript--'Project: OB stable'
--transcript--' [0.242.1]'
--transcript--'Project: Announcements 0.240.1'
--transcript--'...finished 3.0.13'
--transcript--'No instance migrations performed.'

Of course there is no GLASS being loaded so no surprises ... I suppose I should actually upgrade to GLASS1 and then reload and try this experiment with Seaside3.1.3? since it already depends upon GLASS1 ...

I've run out of time tonight so I will try something along those lines tomorrow to see what's up ...

I did reproduce your problem tho:)

dalehenrich commented 10 years ago

With this load script:

GsDeployer deploy: [ 
  Gofer new
    package: 'GsUpgrader-Core';
    url: 'http://ss3.gemtalksystems.com/ss/gsUpgrader';
    load.
  (Smalltalk at: #GsUpgrader) upgradeGrease.
  "Load Seaside 3.0.13"
  Metacello new
    configuration: 'Seaside3';
    repository:
        'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
    version: '3.1.3';
    load.
  "Load Seaside 3.0.13 AGAIN"
  Metacello new
    configuration: 'Seaside3';
    repository:
        'http://www.smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main';
    version: '3.1.3';
    onConflict:[:ex | Transcript show: 'CONFLICT: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow.];
    onUpgrade: [:ex | Transcript show: 'UPGRADE: ',ex description, ' ', ex existingProjectRegistration baseName,' (',ex existingProjectRegistration version,')->', ex newProjectRegistration baseName,' (',ex newProjectRegistration version,')'. ex disallow. ];
    load: 'Core'.
 ]

The second load of Seaside produces this:

--transcript--'Loading 3.1.3 of ConfigurationOfSeaside3...'
--transcript--'Fetched -> Seaside-REST-Core-dkh.39 --- http://www.smalltalkhub.com/mc/Seaside/Seaside30Addons/main --- http://www.smalltalkhub.com/mc/Seaside/Seaside30Addons/main'
--transcript--'Fetched -> Seaside-Tests-REST-Core-JohanBrichau.23 --- http://www.smalltalkhub.com/mc/Seaside/Seaside30Addons/main --- http://www.smalltalkhub.com/mc/Seaside/Seaside30Addons/main'
--transcript--'Project: Gettext-Project'
--transcript--' [1.3]'
--transcript--'Project: Seaside3 baseline'
--transcript--'Project: GLASS1 baseline'
--transcript--'Project: Gofer stable'
--transcript--' [1.0.5.1]'
--transcript--'Project: Grease baseline'
--transcript--'Project: System-Digital-Signatures stable'
--transcript--'Project: SMTPMail stable'
--transcript--'Project: UTF8 stable'
--transcript--'Project: Metacello baseline'
--transcript--'Project: FileTree baseline'
--transcript--'Project: Gofer stable'
--transcript--'Project: GsCore 0.247'
--transcript--'Fetched -> GsSqueakCommon-Core-dkh.11 --- github://glassdb/glass:master/repository [ccbdf4c:master] --- github://glassdb/glass:master/repository'
--transcript--'Project: Gettext-Project'
--transcript--' [1.3]'
--transcript--'Project: Grease baseline'
--transcript--'Project: System-Digital-Signatures stable'
--transcript--'Project: SMTPMail stable'
--transcript--'Project: UTF8 stable'
--transcript--'Project: Grease Core Tests baseline'
--transcript--'Project: System-Digital-Signatures stable'
--transcript--'Project: SMTPMail stable'
--transcript--'Project: UTF8 stable'
--transcript--'Fetched -> Seaside-REST-Core-pmm.57 --- github://GsDevKit/Seaside31:v3.1.3-gs/repository [29bf7bd:v3.1.3-gs] --- github://GsDevKit/Seaside31:v3.1.3-gs/repository'
--transcript--'Fetched -> Seaside-Tests-REST-Core-jok.33 --- github://GsDevKit/Seaside31:v3.1.3-gs/repository [29bf7bd:v3.1.3-gs] --- github://GsDevKit/Seaside31:v3.1.3-gs/repository'
--transcript--'Evaluated -> baseline [BaselineOfMetacello] >> reprimeRegistryIssue197'
--transcript--'Loaded -> GsSqueakCommon-Core-dkh.11 --- github://glassdb/glass:master/repository [ccbdf4c:master] --- cache'
--transcript--'...finished 3.1.3'
--transcript--'Migrated 0 instances for 3 classes.'
aGsDeployer

I understand why GsSqueakCommon-Core-dkh.11 (it's actually reloading the same package - a benign bug that is the side effect of how Metacello works and is due to the existence of GsSqueakCommon-Core.3x package in image while baseline is loading GsSqueakCommon-Core).

BUT I don't understand why the REST packages come in the second time around ... I think that is a Metacello bug ... the good news is that I think modulo the rest thing the behavior is what you are looking for?

dalehenrich commented 10 years ago

Loading GLASS after loading GLASS1 was the root cause of the pile of pacakges getting loaded/re-loaded ... opened Issue #276 for the REST package mystery