understanding difference between #record: and #load:

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

understanding difference between #record: and #load:

Nick
Hi,

I'm trying to debug ConfigurationOfPier3AddOns, when I execute:

   ((Smalltalk at: #ConfigurationOfPier3AddOns) project version:
'3.0.1') record: 'Code-Exporter'

I see what I expect:
a MetacelloNullRecordingMCSpecLoader(linear load :
        linear load : 3.0.1 [ConfigurationOfPier3AddOns]
                load : Pier-Exporter-Code-NickAger.22)

however when I execute the same but replace #record: with #load: the
configuration kicks-off a load of the whole of Pier 3/Seaside 3 etc.
not what I expect from my configuration. Is the 'default'
configuration loaded anyway?

The spec looks something like:

spec
    repository: 'http://source.lukas-renggli.ch/pier3addons'.
spec group: 'Code-Exporter' with: 'Pier-Exporter-Code'.
spec package: 'Pier-Exporter-Code'. "no dependencies"

Thanks

Nick
Reply | Threaded
Open this post in threaded view
|

Re: understanding difference between #record: and #load:

Dale Henrichs
Nick,

When I try the experiment in a virgin Pharo1.3 image, the two expressions work as you expect ... with #load: an attempt is made to load just the Pier-Exporter-Code package and fails because none of the dependents are present.

So I assume that you must already have some Pier packages loaded in your image?

When you do a load of a particular version of a configuration _and_ you have packages from that project, then Metacello will attempt to load the correct versions of the packages that present in the image and that may trigger a "load of the whole Pier 3/Seaside 3 etc.).

So it looks like you've found a bug in record: ...

Dale

----- Original Message -----
| From: "Nick Ager" <[hidden email]>
| To: "Metacello" <[hidden email]>
| Sent: Monday, February 20, 2012 8:11:36 AM
| Subject: [Metacello] understanding difference between #record: and #load:
|
| Hi,
|
| I'm trying to debug ConfigurationOfPier3AddOns, when I execute:
|
|    ((Smalltalk at: #ConfigurationOfPier3AddOns) project version:
| '3.0.1') record: 'Code-Exporter'
|
| I see what I expect:
| a MetacelloNullRecordingMCSpecLoader(linear load :
| linear load : 3.0.1 [ConfigurationOfPier3AddOns]
| load : Pier-Exporter-Code-NickAger.22)
|
| however when I execute the same but replace #record: with #load: the
| configuration kicks-off a load of the whole of Pier 3/Seaside 3 etc.
| not what I expect from my configuration. Is the 'default'
| configuration loaded anyway?
|
| The spec looks something like:
|
| spec
|     repository: 'http://source.lukas-renggli.ch/pier3addons'.
| spec group: 'Code-Exporter' with: 'Pier-Exporter-Code'.
| spec package: 'Pier-Exporter-Code'. "no dependencies"
|
| Thanks
|
| Nick
|
Reply | Threaded
Open this post in threaded view
|

Re: understanding difference between #record: and #load:

Nick
Dale,

> When you do a load of a particular version of a configuration _and_ you have packages from that project, then Metacello will attempt to load the correct versions of the packages that present in the image and that may trigger a "load of the whole Pier 3/Seaside 3 etc.).

Thanks that was the issue - I had versions of the Pier 3 and Seaside 3
in my image. It works as expected in a virgin image.

Nick