Not loading the classes from my package...

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

Not loading the classes from my package...

patmaddox
I'm creating my first metacello configuration. Right now it's a hello world Seaside app. I want to create two groups: Core and Development. Core loads my code and the Seaside dependencies, and Development loads Core+ extra Seaside development tools.

I've been able to work through a number of issues by reading other configurations...but now I find myself stuck. Metacello *appears* to load my Monticello package, but the class defined inside of the Monticello package is *not* loaded.

Here's my configuration:

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

        spec for: #'common' do: [
                spec blessing: #'baseline'.
                spec repository: '/Users/padillac/code/smalltalk'.
                spec
                        project: 'Seaside 3.0 Core' with: [
                                spec
                                        className: 'ConfigurationOfSeaside30';
                                        versionString: #'stable';
                                        loads: #('Base' 'Seaside-Tools-OmniBrowser' 'Seaside-Adaptors-Comanche');
                                        repository: 'http://www.squeaksource.com/MetacelloRepository' ].
                spec
                        project: 'Seaside 3.0 Development' with: [
                                spec
                                        className: 'ConfigurationOfSeaside30';
                                        versionString: #'stable';
                                        loads: #('Development');
                                        repository: 'http://www.squeaksource.com/MetacelloRepository' ].
                spec package: 'SitBuddy-Core' with: [
                        spec requires: #('Seaside 3.0 Core') ].
                spec group: 'Core' with: #('SitBuddy-Core').
                spec group: 'Development' with: #('Core' 'Seaside 3.0 Development'). ].


version10: spec
        <version: '1.0' imports: #('1.0-baseline' )>

        spec for: #'common' do: [
                spec blessing: #'development'.
                spec description: ''.
                spec author: 'PatMaddox'.
                spec timestamp: '5/21/2011 15:52'.
                spec project: 'Seaside 3.0 Core' with: '3.0.5'.
                spec project: 'Seaside 3.0 Development' with: '3.0.5'.
                spec package: 'SitBuddy-Core' with: 'SitBuddy-Core-PatMaddox.1' ].


So here's something I find interesting...when I load my ConfigurationOfSitBuddy and then pull up the MetacelloBrowser, it shows me the baselines and versions. That looks like this:






It doesn't show me the Core and Development groups. Now, if I load Core, it pulls down all the stuff and then shows me the packages and groups:





The only problem is, SitBuddy-Core doesn't show up in System Browser anywhere. Monticello seems to know about it though:




But it thinks there's nothing there :(




If I view the mcz file from the repository directly though, I see the class that I expect:






So.....I'm just a bit confused. Do I need to specify the class somewhere?

Like I said, this is my first time doing a Metacello config, so I'm assuming I'm making a stupid error with metacello or monticello somewhere.

Pat

Screen shot 2011-05-21 at 6.06.43 PM.png (88K) Download Attachment
Screen shot 2011-05-21 at 6.10.08 PM.png (116K) Download Attachment
Screen shot 2011-05-21 at 6.11.44 PM.png (44K) Download Attachment
Screen shot 2011-05-21 at 6.12.32 PM.png (63K) Download Attachment
Screen shot 2011-05-21 at 6.13.39 PM.png (70K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Not loading the classes from my package...

Dale Henrichs
Pat,

At first blush this doesn't look like a Metacello issue ... your configuration looks just fine (at least nothing obvious) ... to be sure I am curious how your configuration validates:

  (MetacelloToolBox validateConfiguration: ConfigurationOfSitBuddy) explore

You should get  back an empty collection if the configuration validates clean.

Secondly, the "missing groups" issue is a MetacelloBrowser artifact ... with no versions loaded you need to select version 1.0 and use the 'browser version' menu item to see the groups and other contents of the version.

I am suspicious that you have a bogus package in your package-cache. The package that is loaded in your image, could have come from the package-cache. When you view the package in the repository /Users/padillac/code/smalltalk, you see the expected classes ....

Before just clearing the package-cache, you might take a look at the history for the package in the image and the one from the repository .... you should be able to see a UUID ... if the UUIDs are the same, then you must have a corrupt copy in the package-cache ... if the UUIDs are different then you have two separate packages named SitBuddy-Core-PatMaddox.1 floating around.

Dale


----- Original Message -----
From: "Pat Maddox" <[hidden email]>
To: [hidden email]
Sent: Saturday, May 21, 2011 6:15:18 PM
Subject: [Metacello] Not loading the classes from my package...

I'm creating my first metacello configuration. Right now it's a hello world Seaside app. I want to create two groups: Core and Development. Core loads my code and the Seaside dependencies, and Development loads Core+ extra Seaside development tools.

I've been able to work through a number of issues by reading other configurations...but now I find myself stuck. Metacello *appears* to load my Monticello package, but the class defined inside of the Monticello package is *not* loaded.

Here's my configuration:

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

        spec for: #'common' do: [
                spec blessing: #'baseline'.
                spec repository: '/Users/padillac/code/smalltalk'.
                spec
                        project: 'Seaside 3.0 Core' with: [
                                spec
                                        className: 'ConfigurationOfSeaside30';
                                        versionString: #'stable';
                                        loads: #('Base' 'Seaside-Tools-OmniBrowser' 'Seaside-Adaptors-Comanche');
                                        repository: 'http://www.squeaksource.com/MetacelloRepository' ].
                spec
                        project: 'Seaside 3.0 Development' with: [
                                spec
                                        className: 'ConfigurationOfSeaside30';
                                        versionString: #'stable';
                                        loads: #('Development');
                                        repository: 'http://www.squeaksource.com/MetacelloRepository' ].
                spec package: 'SitBuddy-Core' with: [
                        spec requires: #('Seaside 3.0 Core') ].
                spec group: 'Core' with: #('SitBuddy-Core').
                spec group: 'Development' with: #('Core' 'Seaside 3.0 Development'). ].


version10: spec
        <version: '1.0' imports: #('1.0-baseline' )>

        spec for: #'common' do: [
                spec blessing: #'development'.
                spec description: ''.
                spec author: 'PatMaddox'.
                spec timestamp: '5/21/2011 15:52'.
                spec project: 'Seaside 3.0 Core' with: '3.0.5'.
                spec project: 'Seaside 3.0 Development' with: '3.0.5'.
                spec package: 'SitBuddy-Core' with: 'SitBuddy-Core-PatMaddox.1' ].


So here's something I find interesting...when I load my ConfigurationOfSitBuddy and then pull up the MetacelloBrowser, it shows me the baselines and versions. That looks like this:






It doesn't show me the Core and Development groups. Now, if I load Core, it pulls down all the stuff and then shows me the packages and groups:



[image/png:Screen shot 2011-05-21 at 6.06.43 PM.png]


[image/png:Screen shot 2011-05-21 at 6.10.08 PM.png]




The only problem is, SitBuddy-Core doesn't show up in System Browser anywhere. Monticello seems to know about it though:



[image/png:Screen shot 2011-05-21 at 6.11.44 PM.png]



But it thinks there's nothing there :(



[image/png:Screen shot 2011-05-21 at 6.12.32 PM.png]



If I view the mcz file from the repository directly though, I see the class that I expect:



[image/png:Screen shot 2011-05-21 at 6.13.39 PM.png]





So.....I'm just a bit confused. Do I need to specify the class somewhere?

Like I said, this is my first time doing a Metacello config, so I'm assuming I'm making a stupid error with metacello or monticello somewhere.

Pat
Reply | Threaded
Open this post in threaded view
|

Re: Not loading the classes from my package...

patmaddox
Okay cool it must have been something with package-cache. I saw a SitBuddy-PatMaddox.1.mcz and a SitBuddy-PatMaddox.3.mcz separate from SitBuddy-Core ... I deleted those from package-cache and tried again and it's working. Didn't do the investigation because I had already deleted them.

Thanks Dale :)

Pat



On May 23, 2011, at 10:10 AM, Dale Henrichs wrote:

> Pat,
>
> At first blush this doesn't look like a Metacello issue ... your configuration looks just fine (at least nothing obvious) ... to be sure I am curious how your configuration validates:
>
>  (MetacelloToolBox validateConfiguration: ConfigurationOfSitBuddy) explore
>
> You should get  back an empty collection if the configuration validates clean.
>
> Secondly, the "missing groups" issue is a MetacelloBrowser artifact ... with no versions loaded you need to select version 1.0 and use the 'browser version' menu item to see the groups and other contents of the version.
>
> I am suspicious that you have a bogus package in your package-cache. The package that is loaded in your image, could have come from the package-cache. When you view the package in the repository /Users/padillac/code/smalltalk, you see the expected classes ....
>
> Before just clearing the package-cache, you might take a look at the history for the package in the image and the one from the repository .... you should be able to see a UUID ... if the UUIDs are the same, then you must have a corrupt copy in the package-cache ... if the UUIDs are different then you have two separate packages named SitBuddy-Core-PatMaddox.1 floating around.
>
> Dale
>
>
> ----- Original Message -----
> From: "Pat Maddox" <[hidden email]>
> To: [hidden email]
> Sent: Saturday, May 21, 2011 6:15:18 PM
> Subject: [Metacello] Not loading the classes from my package...
>
> I'm creating my first metacello configuration. Right now it's a hello world Seaside app. I want to create two groups: Core and Development. Core loads my code and the Seaside dependencies, and Development loads Core+ extra Seaside development tools.
>
> I've been able to work through a number of issues by reading other configurations...but now I find myself stuck. Metacello *appears* to load my Monticello package, but the class defined inside of the Monticello package is *not* loaded.
>
> Here's my configuration:
>
> baseline10: spec
> <version: '1.0-baseline'>
>
> spec for: #'common' do: [
> spec blessing: #'baseline'.
> spec repository: '/Users/padillac/code/smalltalk'.
> spec
> project: 'Seaside 3.0 Core' with: [
> spec
> className: 'ConfigurationOfSeaside30';
> versionString: #'stable';
> loads: #('Base' 'Seaside-Tools-OmniBrowser' 'Seaside-Adaptors-Comanche');
> repository: 'http://www.squeaksource.com/MetacelloRepository' ].
> spec
> project: 'Seaside 3.0 Development' with: [
> spec
> className: 'ConfigurationOfSeaside30';
> versionString: #'stable';
> loads: #('Development');
> repository: 'http://www.squeaksource.com/MetacelloRepository' ].
> spec package: 'SitBuddy-Core' with: [
> spec requires: #('Seaside 3.0 Core') ].
> spec group: 'Core' with: #('SitBuddy-Core').
> spec group: 'Development' with: #('Core' 'Seaside 3.0 Development'). ].
>
>
> version10: spec
> <version: '1.0' imports: #('1.0-baseline' )>
>
> spec for: #'common' do: [
> spec blessing: #'development'.
> spec description: ''.
> spec author: 'PatMaddox'.
> spec timestamp: '5/21/2011 15:52'.
> spec project: 'Seaside 3.0 Core' with: '3.0.5'.
> spec project: 'Seaside 3.0 Development' with: '3.0.5'.
> spec package: 'SitBuddy-Core' with: 'SitBuddy-Core-PatMaddox.1' ].
>
>
> So here's something I find interesting...when I load my ConfigurationOfSitBuddy and then pull up the MetacelloBrowser, it shows me the baselines and versions. That looks like this:
>
>
>
>
>
>
> It doesn't show me the Core and Development groups. Now, if I load Core, it pulls down all the stuff and then shows me the packages and groups:
>
>
>
> [image/png:Screen shot 2011-05-21 at 6.06.43 PM.png]
>
>
> [image/png:Screen shot 2011-05-21 at 6.10.08 PM.png]
>
>
>
>
> The only problem is, SitBuddy-Core doesn't show up in System Browser anywhere. Monticello seems to know about it though:
>
>
>
> [image/png:Screen shot 2011-05-21 at 6.11.44 PM.png]
>
>
>
> But it thinks there's nothing there :(
>
>
>
> [image/png:Screen shot 2011-05-21 at 6.12.32 PM.png]
>
>
>
> If I view the mcz file from the repository directly though, I see the class that I expect:
>
>
>
> [image/png:Screen shot 2011-05-21 at 6.13.39 PM.png]
>
>
>
>
>
> So.....I'm just a bit confused. Do I need to specify the class somewhere?
>
> Like I said, this is my first time doing a Metacello config, so I'm assuming I'm making a stupid error with metacello or monticello somewhere.
>
> Pat